Sirius -旧ブログ、更新されません-

<< 前のページ | 次のページ >>

2007年6月7日(木) 11:13

Linkstation で KURO-RS を動かす(2)

Linkstation で KURO-RS を動かしているのですが、どうも調子がよくないようです。
スリープを設定しているので、普通なら自宅に帰ったら起動しています。が、最近、エラーの LED が点滅し、電源が切れていることが多くなりました。
でも、手動で電源を入れると普通に起動してきます。はじめ、FAN 周りでエラーが出ているのかと思い、FAN を掃除したりしたのですが、状況は変わりませんでした。

シリアルコンソールは使えるようにしてあったので、コンソールの出力を見ながら状況を調べました。
Linkstation が起動したときに地デジチューナーの電源を入れるように送信コマンドを使っているのですが、どうやらそこで起動処理がとまっていて、結局、タイムアウトして Linkstation がエラーとなり電源が切れるようです。
ただ、必ずエラーになるわけでもなく、正常に起動するときもあります。なので気づくのが遅れました。

いろいろ調べると、KURO-RS へ送信モードへの切り替え命令を送った後の、KURO-RS からの応答待ちでとまっているようでした。正常に起動したときに送信コマンドをバックグラウンドで実行するように修正しましたが、送信コマンドがうまく動かないことに変わりはありません。
とまっている送信コマンドのプロセスを殺すことは出来ました。その後、ターミナルから送信コマンドを打ち込むとやはり、送信されず、とまってしまいます。しかし、このプロセスも ctrl+C で殺し、次に送信コマンドを使うとちゃんと送信できました。

????

何でだろう。
で、対症療法ですが送信コマンドのソースを修正して、KURO-RSからの応答が無くてもブロックされないようにして、リトライするようにしました。
修正したコマンドで何度か再起動して試してみましたが大丈夫なようでした。なんか不安ですが、一週間程度これで運用して問題がなさそうであれば、パッチを公開するつもりです。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年6月4日(月) 00:08

WindowsでKURO-RS のコンパイル

KURO-RS はサポート外になるが、Buffalo の PC-OP-RS1 のドライバを入れることで Windows 上でも使えるようです。(ってハードは同じものなんでしょう?)サンプルのソースコードも付属しているので、まずこれをコンパイルしてみたいと思います。

コンパイルには MinGW5.0.0 以降と MSYS-1.0.11.2004.04.30-1 以降が必要ということなので早速インストールしてみました。

MinGW ってはじめて知りました。まず、インストーラをダウンロードして実行します。インストールしてみたところ、Windows 用の GCC のようです。インストーラがインターネットから必要なものをダウンロードしてくれます。パッケージは Current を選び、"MinGW base tools" と "g++ compiler" をインストールします。

次に MSYS をインストールします。Cygwin の最小構成のような感じです。シェルやツール類が入ります。ここでいくつかの質問に答えるだけで MinGW の設定もやってくれるようです。

早速、MSYS を動かしてコンパイルしてみました。

$ make clean
$ make

なんともあっさりコンパイルができ、irremote.exe が出来上がりました。まだ PC-OP-RS1 のドライバを入れていないので動作確認は出来ていません。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年5月31日(木) 21:06

Linkstation で KURO-RS を動かす

またまた、ほったらかしにしてしまいました。
結局、KURO-BOX/PRO も購入してしまいました。動作確認したのみでまだ箱に入ったままです。は〜、時間が無い!

さて、ソースネクストのダイレクトメールで、地デジチューナーが 2 万円を切っていたので購入してしまいました。
地デジ放送が始まる一年位前にそれまで使っていたビクターのテレビが壊てしまい、そのときに、今使っているテレビを購入しました。もうちょっとがんばってくれれば、地デジ対応のテレビを買ったのですが、地デジ非対応のシャープの液晶です。ワイドでもありません。少なくともあと 5 年は使いたいと思っています。
で、アナログ放送がある間は、地デジは必要ないと思っていたのですが、よくよく考えると地デジチューナーはどっちみち買わないといけないし、そのうち地デジチューナーも 4:3 のテレビ対応のものはだんだん無くなっていくんじゃないかと思って今回購入しました。

裏の理由は、地デジをデジタルで録画すると、著作権保護がかかっていろいろと面倒なので、アナログ出力が付いている今のうちに買った方がいいんじゃないか、ということに気がついたのです。
当然録画したものは個人で楽しみますよ。

で、Linkstation につないだ BUFFALO の USB キャプチャBOX(PC-MV71DX/U2) で録画してみました。
今回購入したものは、出力端子が S ビデオ x 1、 ビデオ x 1、音声 x 2、D1/D2/D3/D4 x 1、HDMI x 1 となっているのでアナログからHDMIまで一通りの出力がありました。
Sビデオケーブルでキャプチャ BOX とつなげました。何の問題も無く MPEG2 で録画できました。まあ、キャプチャBOX 自体の画質はそれほどよいとは思っていませんが、アナログ放送と違ってノイズが無い分がいいと思います。パソコン上で DivX へのコンバートも問題ないし。これでアナログ停波になってもしばらくはいけるかな。

となると、今度はタイマー録画で地デジを録画したくなります。が、このチューナーにはタイマーは付いていません。そこで登場するのが KURO-RS。こんなのです。
しばらく前に、ヨドバシへ KURO-BOX/Pro がないかと探しにいったときに見つけて買っておいたものです。(面白そうだからって目的もなしに買ってしまう自分って…。同時にAUDIO-FMT-USBも買ってるし)

本来はKURO-BOX/HG 用ですが何とか Linkstation で動かしてみます。
KURO-RS 用のカーネルモジュールをコンパイルしないといけませんが、以前、isofs のモジュールをコンパイルしているので何とかなるんじゃないかと思い、挑戦します。

カーネルモジュールのコンパイル。Linkstation 用のコンパイラが無いので KURO-BOX/HG でコンパイルします。
Linkstation(HD-HGLAN) のカーネルソースが必要です。linux-2.4.20_hglan_htgl.tar.gz を使いました。
カーネルソースを展開します。次に、KURO-RS についてきた CD の Linux/linux_readme.txt を参考にソースを修正し、コンパイルします。
usb のモジュールは、私が使ったソースでは drivers/usb_new でした。ftdi_sio.c も KURO-BOX/HG のソースと違っていて id_table_FT232BM にもデバイスの記述を追加しないとだめでした。また、make modules_install はやりません。Linkstation 用のモジュールなので、KURO-BOX/HG でインストールしてはいけません。
カーネルモジュール( usbserial.o と ftdi_sio.o ) を Linkstation の /lib/modules/2.4.20_mvl31-ppc_linkstation/kernel/drivers/usb/serialの下にコピーします。

# depmod -a
# modprobe ftdi_sio

KURO-RS を差してうまく認識したようです。
KURO-BOX/HG 用のリモコンの記録・再生アプリケーションは、そのまま Linkstation へコピーして動きました。
これで、PCAST と組み合わせて地デジのタイマー録画も出来そうです。

ところが、再起動したら KURO-RS を認識しなくなりました。どうやら、linux_readme.txt に書いてあった murasaki でモジュールのロードをするのがまずいようです。
結局、/etc/modules.conf へ次の行を追加することにしました(LSUVCD の前の行に)。まあ、ずっとつなぎっぱなしにするので問題ないでしょう。

alias char-major-188 ftdi_sio

あとは、PCAST で予約したときに cron にリモコン送信コマンドの登録を手動ですれば OK かな。
(自動で cron に登録するアプリも作りたいけど時間が無い。)

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年2月23日(金) 18:14

tftp ブート

ブートローダの u-boot をコンパイルしてみましたが、元々の u-boot.buffalo のサイズとあまりにサイズの違うものが出来てしまいました。これをフラッシュに書き込む勇気はありません。

しばらくは、元々の u-boot を使っていくことにして、何とかネットワークブートさせたいと思います。シリアルコンソールをつければ大丈夫のようですが、まだ付けていません。シリアルコンソール無しで何とかできないかとだめもとでやってみます。

ネットワークブートするには、 tftp サーバが必要です。これは、玄箱で tftpd を動かすことにしました。次に、LS-GL の u-boot に 自分とサーバの IP アドレスを設定すれば何とかなるのではないかと考えました。
メンテナンスを考えると、内臓 HDD からのブート不可 -> ネットワークブートとなっていれば、HDD に障害があった場合に対応しやすいのではないか。そういった作りになっていることを期待してやって見ます。

まず、u-boot のパラメータを操作するコマンドを調べます。/usr/local/sbin に nvram というコマンドがあります。

# nvram -help
nvram Ver.1.00
nvram -c <printenv|del|set|get|eraseall|dump>
# nvram -c printenv
1: [bootargs=$(bootargs_base) $(bootargs_root)]
2: [baudrate=115200]
3: [loads_echo=0]
4: [ipaddr=192.168.11.150]
5: [serverip=192.168.11.1]
6: [rootpath=/nfs/arm]
7: [stdin=serial]
8: [stdout=serial]
9: [stderr=serial]
10: [cpuName=926]
11: [CASset=min]
12: [enaMonExt=no]
13: [enaFlashBuf=yes]
14: [enaCpuStream=no]
15: [MALLOC_len=4]
16: [ethprime=egiga0]
17: [bootargs_end=:::DB88FXX81:eth0:none]
18: [buffalo_ver=BOOTVER=1.01]
19: [build_time=10:35:38]
20: [initrd=initrd.buffalo]
21: [kernel=uImage.buffalo]
22: [bootargs_base=console=ttyS0,115200]
23: [bootargs_root=root=/dev/sda2 rw initrd=0x00800040,15M panic=5]
24: [bootcmd=ide reset; ext2load ide 1:1 0x00100000 /$(kernel);ext2load ide 1:1 0x00800000 /$(initrd);setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver);bootm 0x00100000 0x00800000]
25: [def_tftp=tftp 0x00100000 $(kernel);tftp 0x00800000 $(initrd);setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver);bootm 0x00100000 0x00800000]
26: [bootdelay=3]
27: [disaMvPnp=no]
28: [overEthAddr=no]
29: [usb0Mode=host]
30: [usb1Mode=host]
31: [ethact=egiga0]
32: [ethaddr=00:16:01:35:xx:xx]
# nvram -c get serverip
serverip=192.168.11.1

なるほど、set コマンドでデフォルトのパラメータを書き換えられそうです。
サーバと自分の IP アドレスを書き換えて見ます。
# nvram -c set serverip 192.168.1.200
>serverip=192.168.1.200
# nvram -c set ipaddr 192.168.1.16
>nvram_set:ipaddr = 192.168.1.16
# nvram -c printenv
1: [bootargs=$(bootargs_base) $(bootargs_root)]
2: [baudrate=115200]
3: [loads_echo=0]
4: [rootpath=/nfs/arm]
5: [stdin=serial]
6: [stdout=serial]
7: [stderr=serial]
8: [cpuName=926]
9: [CASset=min]
10: [enaMonExt=no]
11: [enaFlashBuf=yes]
12: [enaCpuStream=no]
13: [MALLOC_len=4]
14: [ethprime=egiga0]
15: [bootargs_end=:::DB88FXX81:eth0:none]
16: [buffalo_ver=BOOTVER=1.01]
17: [build_time=10:35:38]
18: [initrd=initrd.buffalo]
19: [kernel=uImage.buffalo]
20: [bootargs_base=console=ttyS0,115200]
21: [bootargs_root=root=/dev/sda2 rw initrd=0x00800040,15M panic=5]
22: [bootcmd=ide reset; ext2load ide 1:1 0x00100000 /$(kernel);ext2load ide 1:1 0x00800000 /$(initrd);setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver);bootm 0x00100000 0x00800000]
23: [def_tftp=tftp 0x00100000 $(kernel);tftp 0x00800000 $(initrd);setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver);bootm 0x00100000 0x00800000]
24: [bootdelay=3]
25: [disaMvPnp=no]
26: [overEthAddr=no]
27: [usb0Mode=host]
28: [usb1Mode=host]
29: [ethact=egiga0]
30: [ethaddr=00:16:01:35:xx:xx]
31: [serverip=192.168.1.200]
32: [ipaddr=192.168.1.16]

"bootcmd" を書き換えて tftp ブートするようにすればデフォルトでネットワークブートは出来そうです。しかし、失敗したら…。
…やめておこう。

では、玄箱に tftpd をインストールします。
ソースを持ってきてコンパイルし、インストールします。Debian のソースを利用しました。netkit-tftp_0.17.orig.tar.gz を使いました。
次に、inetd から tftpd が起動されるように /etc/inetd.conf の中の tftpd に関する部分のコメントを外します。
そして、カーネルイメージとラムディスクイメージを置くディレクトリ(デフォルトでは /tftpboot) へそれぞれをコピーします(uImage.buffalo, initrd.buffalo)。
最後に dhcp サーバの設定をします。bootp でも出来るようですが、dhcp サーバを立ててあるので。
dhcpd の設定ファイル /etc/dhcpd.conf に次の行を追加します。
allow booting;
allow bootp;
変更がおわったら、dhcpd と inetd を再起動。

LS-GL に戻って、カーネルイメージとラムディスクイメージをリネームし、再起動します。

# mv /boot/uImage.buffalo /boot/uImage.buffalo-
# mv /boot/initrd.buffalo /boot/initrd.buffalo-

再起動。
ディスクエラーの LED が点滅していますが起動しました。ssh でログインも出来るし、web の管理画面も開けました。

次に、IP アドレスを DHCP サーバから持ってこれないかを試してみました。ipaddr を削除します。
# nvram -c del ipaddr

再起動

…起動しませんでした。HDD を取り出して別マシンでファイル名を元に戻さないと。
Terastation へつなげてファイル名を戻しました。

起動してきたので、u-boot の ipaddr を設定しなおします。
# nvram -c set ipaddr 192.168.1.16
>nvram_set:ipaddr = 192.168.1.16

たとえば、シリアルコンソール無しでも新品のHDD をつなげてEMモードで起動して、ファームウェアの更新でファームのインストールが出来るかもしれません。今度試してみよう。
まあ、これでカーネルやラムディスクの実験がしやすくなったといえばいえるかな。HDD が壊れたときも手間が若干、省けそうです。
もっとも、一番やりたかった tftp ブートが出来てしまったし、wizd も動くし、さらにもうすぐ玄人志向から Kuro-Box/PRO が発売されるからどうなるかわかりません。

蛇足ですが、USB の外し方が悪かったのか、Terastation の調子が悪くなり、電源を切って(切れるまでにえらい時間がかかった)、再起動したら raid 修復が始まってしまいました。
ほって置いたらディスクが一台エラーを起こし、縮退モードになっていました。再起動してディスクを認識させなおして raid 修復。何とか終わりましたがそろそろ HDD が限界かな。予備を買っておこう。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(1)] [TB(0)]

この記事へのトラックバックPingURL

2007年2月8日(木) 23:11

ジャンボフレームとOpenSSH

気が付いたら ssh 関連に支障が出てくるようになりました。scp でストールする。ssh でもある程度使うと応答がなくなる。標準ファームでも同じでした。
なので、OpenSSH もインストールします。
openssl-0.9.8d.tar.gz、openssh-4.5.tar.gz を入れます。しかし、openssh-4.5.tar.gz が tar でエラーになり展開できません。
そこで、tar-1.16.tar.gz もインストール。でも展開できない。どうも解凍に失敗しているようなので、zlib もインストールしなおし。
それでも失敗。
え〜〜〜。
zcat openssh-4.5.tar.gz | tar xvf - でも失敗。
ふと気づいて、

# ls -l /bin/gzip
-rwxr-xr-x 3 root root 145635 Jan 27 11:21 /bin/gzip -> busybox*

なぁ〜んだ。busybox なんだ。
gzip-1.3.9.tar.gz をインストール。無事、openssl-0.9.8d.tar.gz、openssh-4.5.tar.gz を展開してインストール。
しかしまだストールする。

???

samba は問題なく使えている。ssh も前は問題なく使えていました。
え〜〜と、何をしたっけ。でも、標準ファームでもだめなんだよな。
気づいたのがイーサネットのフレームサイズをジャンボフレームにしたこと。
玄箱なんかはジャンボフレームを使っていますが問題はありません。だめもとでフレームサイズを元に戻しました。すると、ストールせずに scp 出来ました。転送速度を考えるとジャンボフレームは使いたいところですが、あきらめてデフォルトに戻しました。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年2月5日(月) 22:22

カーネルの入れ替え

カーネルモジュールの作成がうまくいったので、カーネルの入れ替えに挑戦してみました。

ソースのあるディレクトリに移動して、
# make uImage
カーネルは arch/arm/boot/uImage に作成されます。
# mkimage -l arch/arm/boot/uImage
Image Name: Linux-2.6.12.6-arm1
Created: Sat Feb 3 14:51:25 JST 2007
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1788276 Bytes = 1746.36 kB = 1.71 MB
Load Address: 0x00008000
Entry Point: 0x00008000

カーネル入れ替え! /boot/uImage.buffalo を別な名前にしておいて、

# cp arch/arm/boot/uImage /boot/uImage.buffalo

再起動!

…。ssh で入れない。

telnet では入れましたが、EM モードで動いていました。
ついでなのでこの状態で USB HDD をつないで見ました。まあ、当たり前ですが、EM モードでも認識しました。
と、いうことは、USB HDD にルートファイルシステムを置いて、そこを使用することも可能のようです。
実験時には便利ですが、いまはカーネルの入れ替えが先、後で時間のあるときにやってみましょう。

さて、何がいけないのでしょうか。linuxrc を見ました。
 /proc/buffalo/firmware
 /mnt/etc/linkstation_release
そうだった、この二つが一致しないと起動しないんだった。EM モードでも telnet が使えるようにしておいて助かりました。
sda3 をマウントして

# mount /dev/sda3 /mnt/disk1
# cd /mnt/disk1/etc
# mv linkstation_release linkstation_release.orig
# cat /proc/buffalo/firmware > linkstation_release
# date > boot.this
# reboot;exit

再起動後に ssh でログイン。うまくいきました。

$ cat /proc/version
Linux version 2.6.12.6-arm1 (root@EILINK04) (gcc version 3.4.4 (release) (CodeSourcery ARM 2005q3-2)) #77 Sat Feb 3 14:51:25 JST 2007

OK。

カーネルの入れ替えが可能となるとかなりカスタマイズが可能となりそう。linuxrc はチェックを外そうかと思います。
u-boot のソースもあるようなのでこちらのコンパイルもやってみようかな。ただし、u-boot はフラッシュにあるから飛ばしたら最悪です。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年2月4日(日) 22:17

wizd のコンパイル

wizd with DVDISO のコンパイル。

1、libdvdread をインストール
libdvdread-0.9.4.tar.gz
$ ./configure
$ make
$ su
# make install

2、libjpeg のインストール
jpegsrc.v6b.tar.gz
$ ./configure
$ make
$ su
# make install install-lib

3、wizd のコンパイル。
$ make

OK。

と、いうことで、wizd with DVDISOダウンロードページ に LS-GL 用を追加。
なお、LS-GL 用は、umount のオプションで -d をつけるように CGI を修正しました。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年2月3日(土) 21:15

Windows 共有と Norton Internet Security

新しい VAIO type U は Windows Vista です。が、この Vista から他のマシンの共有が見れませんでした。

いろいろ探ると、Norton Internet Security のファイアウォールがデフォルトで

Windows 共有をすべて遮断している
参照さえも遮断しています。インターネット以外は使うなって事? また、
ローカルなネットワークも信頼していない
さらに、
信頼するアドレスへの追加は単独のアドレスのみ
で範囲指定も出来ない、ということが分かりました。

サービスで付いてきたから使っているけど、こんなもんに金は出せない。サービス期間が終わったらさっさと別のソフトに変えます。
Symantec のソフトは昔から避けていました。最悪は Windows 95 のころに入れてみた Norton Utility でした。パソコンを投げつけたくなるほど重くするソフトでした。それ以来個人では Norton シリーズは一切使っていません。
今回も使いたくはないのですが、セキュリティソフトをいれずにネットワークを使う危険は避けたいです。でも、やはりお金が…。

ただ、Norton の悪口ばかり言っていますが、例えば Norton Ghost なんかは、ものすごく重宝しているし、技術もすごいなと思っています。
仕事柄、パソコンのセットアップを 50 台とか 100 台とかしなくちゃいけないときに、この Ghost は、マルチキャストを使って、HDD のイメージをネットワーク経由で配布できます。本当にマルチキャストでやっているようで 10 台やるのも 50 台やるのも殆ど時間に変わりがありません。どうせ時間がかかるだろうと思っていたのでこれは感動しました。やるな Norton と思いました。まあ、ネットワークに不都合があったりすると時間がかかりますが、これは Ghost の所為ではありません。ハブの問題だったりケーブルや LAN カードの所為だったりします。
また、Norton Anti Virus の企業向けのものを使ったときも、ドメイン構成にしているとサーバからクライアントへインストールでき、一台づつセットアップする必要がなく、これも助かりました。

個人では使いたくないが、仕事では使いたい。なんとも不思議なソフトです。

あと、Windows Vista のデフォルトでは、Linkstation をアクセス制限ありで使用していると Linkstation の共有にアクセスできませんでした。
Buffalo の Q&A に対処方がありましたが、コントロールパネル -> システムとメンテナンス -> 管理ツール -> ローカルセキュリティーポリシー -> ローカルポリシー -> セキュリティオプション -> "ネットワークセキュリティ:LAN Manager 認証レベル" を "LM とNTLM 応答を送信する" に設定しないとだめでした。

written by sirius [Vaio type U] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年2月3日(土) 13:37

カーネルモジュールのコンパイル

Linkstation wiki に LS-GL のソース一式があるので、カーネルモジュールのコンパイルをして、iso をマウントできるようにしてみます。
ソースは、gpl_ls-gl.zip です。
カーネルソースは、解凍したファイルの中の、linux-2.6.12_lsp.1.7.8.tgz です。

# tar xzvf linux-2.6.12_lsp.1.7.8.tgz
# cd linux-2.6.12_lsp.1.7.8
# make menuconfig
メニューから、iso ファイルシステムをモジュールでコンパイルするように設定します。ついでに、udf も有効にしました。

Makefile は、クロスコンパイル用の Makefile なのでこのファイルの中の
CROSS_COMPILE=arm-none-linux-gnueabi-
の先頭に # をつけてコメントにします。

次に環境変数に gcc のヘッダファイルのパスを設定します。
# export C_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/arm-gnu/buffalo-ls-gl/include:/opt/arm-gnu/buffalo-ls-gl/lib/gcc/arm-none-linux-gnueabi/3.4.4/include:/opt/arm-gnu/buffalo-ls-gl/include:/opt/arm-gnu/buffalo-ls-gl/lib/gcc/arm-none-linux-gnueabi/3.4.4/include

では、コンパイル。コンパイル時間がわかるように time コマンドを使ってみます。
# time make


real 79m15.277s
user 74m0.600s
sys 4m52.980s

約 80 分で終わりました。

# make modules_install
# mv binaries/lib/modules/2.6.12.6-arm1/kernel/fs/{isofs,udf} /lib/modules/2.6.12.6-arm1/kernel/fs/.
# depmod -a
# modprobe isofs
# lsmod
Module Size Used by
isofs 23620 0
appletalk 32372 20
psnap 3076 1 appletalk
llc 5748 1 psnap
# rmmod isofs

うん、いけそう。
マウントしてみます。
# mount -o loop test.iso /mnt/tmp
# df
 Filesystem 1k-blocks Used Available Use% Mounted on
 /dev/sda3 19532832 595524 18937308 3% /
 /dev/ram1 15360 72 15288 0% /mnt/ram
 /dev/ls_disk1_1 194443 72698 111706 39% /boot
 /dev/ls_disk1_6 57741504 6749576 50991928 12% /mnt/disk1
 /dev/sda2 493212 417064 76148 85% /mnt/rootfs
 /dev/loop0 4341354 4341354 0 100% /mnt/tmp
# ls /mnt/tmp
AUDIO_TS VIDEO_TS
# umount -d /mnt/tmp

なお、アンマウントする際に -d オプションをつけないと loop デバイスが解放されません。
ついでに USB プリンタなんかのモジュールもコンパイルしてみました。USB プリンタをつないでの確認はしていませんが、コンパイルは特にエラーもなくできました。

OK。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年2月2日(金) 22:37

VAIO のアップデート

type U と Windows Vista。
使い始めるまでに、Windows Update や VAIO Update や Norton の Live Update をかけていると2時間以上かかってしまいました。かな〜りいらいら。

何で出たばかりの OS にアップデートがあるんじゃ〜〜〜。
何で出たばっかりのハードにアップデートがあるんじゃ〜〜〜。

ま、元プログラマーとしては理解できるんですけどね。ユーザとしてはイラつきますな。
ただ、最近の MS とか、その他を見ると、バグフィックスをすれば、出荷する製品の検査を短くしても何とかなるって思っているんじゃないかと。これは冗談じゃないですよ。
もし、このような理由で出荷後のバグフィックスが多いのであれば、

責任者、ちょっと出て来い!

って思います。

コンピュータがインフラになってきているのだから、いくらソフトの規模が大きく、複雑になり、開発工数が莫大なものになったからって言っても、このままではメーカもユーザも、いつか痛いしっぺ返しを食うことになると思います。

取りあえず、この状態で一度 Vista のパーティションをバックアップします。ということで、今日はここまで。

早く Vista を使ってみたいよ〜〜。

written by sirius [Vaio type U] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年2月1日(木) 19:45

いろいろインストール2

いろいろインストールのつづきです。

pkg-config-0.21.tar.gz
w3m をインストールするため
$ ./configure
$ make
$ su
# make intstall

gc6.7.tar.gz
w3m をインストールするため
$ ./configure
$ make
$ su
# make intstall
# ldconfig

ヘッダファイルの不足分をコピーする
openssh-3.7.1p2_arm.tgz を展開し、include の下の openssl をディレクトリごと /usr/include へコピー。
zlib-1.2.3_arm.tgz を展開し、zlib.h、zconf.h を/usr/include へコピー。

w3m-0.5.1.tar.gz
若干、エラーが出るので -i オプションをつけて make する。
$ ./configure
$ make -i
$ su
# make -i install

/etc/termcap がないので適当に linux マシン(今回は玄箱)から持ってくる。

以上で、目的とした w3m が動きました。
次の目標は wizd with DVDISO を動かすこと。つまり、カーネルモジュールのコンパイルです。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月30日(火) 23:28

Vaio type U 到着

Sony Style に注文していた type U が届きました。VGN-UX91NSです。 以前とほとんど変わっていませんが、本体に Intel inside のシールと Windows Vista のシールが貼ってありました。また、以前は付いていたリカバリーディスクは今回は付いていませんでした。Windows を起動したらリカバリーディスクを早速作成しましょう。そして、キーボードの雰囲気も以前とは違うようです。打ちやすくなったかどうかはまだわかりませんが。

使い始める前に、工場出荷時のイメージを取っておきましょう。ここを参考にディスクのイメージをとっておきます。最近アップデートした TrueImage Home 10 のブータブルメディアで、ネットワーク経由でイメージを取りました。約1時間20分ほどかかりました。念のため、べりファイしたところで今日は終わりです。

ツイン VAIO
左がバックアップ中の UX91NS、右が UX90PS。う〜〜ん。やっぱり病気かもしれない。

written by sirius [Vaio type U] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月29日(月) 23:48

パーティションの追加

注意。initrd の修正をミスすると、LS-GL が起動しなくなることがあります。自己責任でお願いします。

LS-GL の rootfs は、500MB 程度しかないので、いろいろインストールするとすぐにあふれてしまいます。そこで、rootfs を拡張したいと思います。

単純にパーティションにサイズを大きくしただけでは、ファームウェアのアップデートができなくなってしまいます。そこで、標準システムはそのままで、新たにパーティションを用意したらどうなるかを実験してみました。

LS-GL でパーティションは次のようになっています。

sda1 -> /boot
sda2 -> /
sda4 -> 拡張パーティション
sda5 -> swap
sda6 -> /mnt/disk1/share

sda3 が開いているじゃないですか。ここにカスタマイズしたルートファイルシステムを作ってやればいけるかも。ただし、sda3 に不具合があった場合、sda2 を利用するようにして、また、sda2 と sda3 を切り替えて使えるようにしたいと思います。

まず初めに起動シーケンス中で、ルートファイルシステムをマウントしているファイルを探します。initrd の中です。

initrd の中の linuxrc がブートシーケンスです。この中で、ルートファイルシステムを決定し、カーネルの変数に設定します。/proc/sys/kernel/real-root-dev なんですが、ここに、デバイスのメジャー番号とマイナー番号を書き込んでやると、そのデバイスがルートファイルシステムになるみたいです。
しかし、間違うと起動不能。玉砕覚悟でやってみるか。

EM モードでも telnet を使えるようにしてあるので、念のため EM モードにしてからパーティションを操作します。
EM モードにするには、/etc/hddrootmode のファイル名を変更すればいいはず。
# mv /etc/hddrootmode /etc/hddrootmode-

再起動後に telnet でログインし、パーティションを変えます。

1、拡張パーティション内の sda5, sda6 を削除。
2、拡張パーティション (sda4) を削除。
3、新たにプライマリでパーティションを作成 (sda3)。
4、残り全部を拡張パーティションとして、sda5, sda6 を作成。
5、再起動
6、sda5 をスワップでフォーマット。
7、sda3, sda6 を xfs でフォーマット。
8、sda2 の内容を sda3 にコピー。
9、hddrootmode をもとに戻して再起動。
赤字がキーボードからの入力です。

# fdisk /dev/sda

The number of cylinders for this disk is set to 9729.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
 /dev/sda1               1          25      200781   83  Linux
 /dev/sda2              26          87      498015   83  Linux
 /dev/sda4              88        9729    77449365    5  Extended
 /dev/sda5              88         104      136521   82  Linux swap
 /dev/sda6             105        9729    77312781   83  Linux

Command (m for help): d
Partition number (1-6): 6

Command (m for help): d
Partition number (1-5): 5

Command (m for help): d
Partition number (1-5): 4

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (88-9729, default 88):
Using default value 88
Last cylinder or +size or +sizeM or +sizeK (88-9729, default 9729): +20000M

Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First cylinder (2521-9729, default 2521):
Using default value 2521
Last cylinder or +size or +sizeM or +sizeK (2521-9729, default 9729):
Using default value 9729

Command (m for help): n
First cylinder (2521-9729, default 2521):
Using default value 2521
Last cylinder or +size or +sizeM or +sizeK (2521-9729, default 9729): 2537

Command (m for help): n
First cylinder (2538-9729, default 2538):
Using default value 2538
Last cylinder or +size or +sizeM or +sizeK (2538-9729, default 9729):
Using default value 9729

Command (m for help): t
Partition number (1-6): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap)

Command (m for help): p

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
 /dev/sda1               1          25      200781   83  Linux
 /dev/sda2              26          87      498015   83  Linux
 /dev/sda3              88        2520    19543072+  83  Linux
 /dev/sda4            2521        9729    57906292+   5  Extended
 /dev/sda5            2521        2537      136521   82  Linux swap
 /dev/sda6            2538        9729    57769708+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

ここで再起動。再起動しないと、sda3 にファイルシステムが作れません。再度 telnet でログインします。

# mkswap /dev/sda5
Setting up swapspace version 1, size = 139792384 bytes
# mkfs.xfs -f /dev/sda3
meta-data=/dev/sda3              isize=256    agcount=19, agsize=262144 blks
         =                       sectsz=512
data     =                       bsize=4096   blocks=4885768, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=2560, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0

# mount /dev/sda2 /mnt/disk1
# mkdir /mnt/tmp
# mount /dev/sda3 /mnt/tmp
# cd /mnt/disk1
# mv etc/hddrootmode- etc/hddrootmode
# tar cf - * | (cd ../tmp;tar xvf -)
# cd ..
# umount /mnt/disk1
# date > /mnt/tmp/etc/boot.this
# umount /mnt/tmp
# mksf.xfs /dev/sda6
meta-data=/dev/sda6              isize=256    agcount=19, agsize=1048576 blks
         =                       sectsz=512
data     =                       bsize=4096   blocks=19328195, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=9437, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0

# mount /dev/sda6 /mnt/disk1
# mkdir /mnt/disk1/share
# chmod 777 /mnt/disk1/share

再起動。
ここまで正常起動を確認できたら、initrd の linuxrc を書き換えます。

1、sda3 をチェックし、etc の下に boot.this というファイルがあり、起動可能であれば、ルートファイルシステムを sda3 にする。このとき万一のことを考え、boot.this ファイルは削除し、正常起動しなかった場合、次回の起動時は、sda3 を使わないようにする。
この linuxrc は公開できないので (著作権が buffalo にあると思われる。)、パッチ形式のファイルをここに置いておきます。例によって無保証です。

2、sda3 の etc/init.d/rcS の最後のほうで、boot.this ファイルを作成し、次回起動時も sda3 から起動するようにする。
たとえば、date > /etc/boot.this とか。

修正した initrd から、initrd.buffalo を作成し、/boot へコピーすれば OK です。万が一のときを考え、元の initrd.buffalo は名前を変えておいてください。

再起動。

sda3 をルートファイルシステムとして起動しました。

確認のため、/etc/boot.this ファイルを削除して再起動。
sda2 をルートファイルシステムとして起動しました。
ファームを更新してみます。(当然 telnet が使えるファームです)。

まったく問題ありませんでした。これで標準ファームと切り替えて使うことが出来ます。
完了。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月28日(日) 20:01

mkimage のコンパイル

注意。initrd の修正をミスすると、LS-GL が起動しなくなることがあります。自己責任でお願いします。

今まで、initrd.buffalo の作成に mkimage がなかったので、玄箱で作成していましたが、いちいち面倒なので LS-GL で出来ないかを試しました。

海外の linkstation wiki に mkimage がありますが、ライブラリの不整合でうまく動きませんでした。
そこで、せっかくコンパイルできるのだから。コンパイルしてみました。
Linkstation wiki の uboot_1.11_MSSII.tar.bz2 を展開します。

# bzcat uboot_1.11_MSSII.tar.bz2 | tar xvf -
# make cradle_config
# make
エラーが出ますが、mkimage は作成されます。tools の下に作成されます。mkimage をパスの通った場所にコピーします。

initrd.buffalo から initrd を取り出すには次のようにします。
# dd if=initrd.buffalo of=initrd.gz bs=64 skip=1
# gunzip initrd.gz

これで initrd が取り出せます。これをマウントしますが、LS-GL には loop デバイスがないので、作成します。

# cd /dev
# mknod loop0 b 7 0
# mknod loop1 b 7 1
# mknod loop2 b 7 2
# mknod loop3 b 7 3
# mknod loop4 b 7 4
# mknod loop5 b 7 5
# mknod loop6 b 7 6
# mknod loop7 b 7 7

では、initrd.buffalo の作り方。

initrd を作り変える場合は、initrd をマウントします。
# mkdir /mnt/tmp
# mount -o loop initrd /mnt/tmp
必要に応じて /mnt/tmp 以下のファイルを修正します。

initrd.buffalo を作ります。
# umount -d /mnt/tmp
# gzip initrd
# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo
万が一を考え、/boot にある initrd.buffalo をリネームし、作成した initrd.buffalo を /boot にコピーすれば、修正した initrd で起動されます。

最近、LS-GL しかさわってないな〜。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月27日(土) 12:52

いろいろインストール

make が動くようになったのでいろいろコンパイル。
実は、apt-get は簡単でいいんですが、昔ながらのこっちのやりかたも嫌いじゃないです。

patch-2.5.4.tar.gz
ホストの指定をしないとだめだった。
$ ./configure --host=arm-none-linux-gnu
$ make
$ su
# make install

termcap-1.3.1.tar.gz
$ ./configure
$ make
$ su
# make install

perl-5.8.8.tgz
less のコンパイルで perl がエラーになるので、Linkstation wiki の perl で上書きする。
# tar xzvf perl-5.8.8.tgz -C /

ncurses-5.6.tar.gz
$ ./configure
$ make
$ su
# make install

less-382.tar.gz、 less-382-iso258.patch
$ patch -p1 < less-382-iso258.patch
$ ./configure
$ make
$ su
# make install

lv451.tar.gz
euc、jis、sjis、utf-8 等のページャー、コンバーター
$ cd src
$ ./configure
$ make
$ su
# make install

sed-4.1.tar.gz
vim のコンパイルで sed がエラーになるのでインストール。
$ ./configure
$ make
$ su
# make install

vim-7.0.tar.bz2
vi クローン。vi よりずっと高機能なのに、日本語が使えるって事以外は vi の機能しか使っていません。emacs はエディタとは思っていないので使いません。

$ ./configure --enable-multibyte --enable-rubyinterp
$ make
$ su
# make install

readline-5.1.tar.gz
$ ./configure --enable-multibyte
$ make
$ su
# make install

bash-3.2.tar.gz
$ ./configure --enable-alias --enable-directory-stack --enable-multibyte --enable-readline
$ make
$ su
# make install

--------------------------------------------
ここまでインストールしたら、ルートのパーティションの空きが 80MB になってしまいました。
これはちょっと考えないと。ファームのアップデートも出来て、ルートのパーティションサイズをもっと大きくする方法を考えないとだめです。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ | 次のページ >>

Sirius -旧ブログ、更新されません-

MySketch 2.7.2 written by 夕雨