(2006.01.04)
SL-C760+REX-CFU1でうまく使えたUSBカードリーダ(マルチ型)CMR-KINGが
SL-C3100では使えない。困った。せっかく以前使えてたのが使えないのは不満。
なので、なんとか使えるようにと奮闘中。
一つ試したのはscsi_mod.oをモジュールにsてして、改造したドライバーに
置き換えようとした。(もともとのC3100ではカーネル埋め込みなので
どうにも変更ができない。そこで.configを変更してSCSIをモジュール組み込み
にしてmake modulesして作成して /lib/modules/2.4.20/kernel/drivers/scsi/の
下において実験した。→ああ、失敗。

mountで調べると、/dev/hda3 (/hdd3)がvfat形式。これがどうにも気に入らない。
ファイル名の大文字/小文字問題もあるし。
そこで思い切って、ここをext2(/sbin/mke2fs -j /dev/hda3)に変更することに
した。fdiskでタイプをlinuxにして、形式上でもext2にした。
Documentationのディレクトリィが邪魔でumountできないから、なんとか
Documentsを移動させてうまく umount /hdd3 できるようにし、
# mke2fs -j /dev/hda3
し、それと一定期間ごとにチェックをしなければいけないのを無期限に
するために tune2fs -i0 -c0 /dev/hda3 もする。
さあ、そこでリブート → ああ、ショック途中で止まってしまう。
/dev/hda3をマウントするところで mount -t vfat /dev/hda3 /hdd3 してるらしく
ここでひっかかる。↑Cしてなんとか続行させる。
困った。そこで苦肉の策で、 /dev/hda2 の容量をばかでっかくし、
/dev/hda3を最小dict1,dict2を(あとsd_mapもか)入れるくらいの
最小容量にパーティション仕切り直ししてしのぐことにした。
これで安心か?リブートする。 → ああ、ショック途中で止まってしまう。なんで?
考え中。
パーティションの切り直しはこういう設定にした。
fdiskで見ると、
Device Boot Start End Blocks Id System
/dev/hda1 1 20 10048+ 83 Linux
/dev/hda2 21 5800 2913120 83 Linux
/dev/hda3 5801 7936 1076544 c Win95 FAT32 (LBA)


困った。あんまりいい解決案がない。
とりあえず、こうやって回避することにした。
リブートの途中で
Trying to free nonexistent resource
hda: HMS360404D5CF00, ATA DISK drive
ide0 at 0xf7000000-0xf7000007,0xf700000e on irq 136
hda: 7999488 sectors (4096 MB) w/128KiB Cache, CHS=7936/16/63
Partition check:
hda: hda1 hda2 hda3
ide_cs: hda: Vcc = 3.3, Vpp = 0.0
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS 2.4-0.9.19, 19 August 2002 on ide0(3,2), internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
MSDOS FS: IO charset utf8
Error!! HDD is not initialized!
と表示したあと動かなくなるから、ここで↑Cを打つと、先に進む。
(少し、気になるのは、以前は with ordered data mode. というのは
出なかったような気がするのだが。なにしろ前の記録を取ってなかったのが痛い)
pxa_sd_wait_response: card removed (cmd=00)
pxa_sd_wait_response: card removed (cmd=00)
pxa_sd_wait_response: card removed (cmd=00)
pxa_sd_wait_id_response: card removed (cmd=00)
SD Driver Initialized.
sharp_mmcsd 0.30 13 Oct 2004
pxa_sd_wait_response: card removed (cmd=00)
こんな具合にメッセージが続く。なので、本来
この間に現われてくるべきメッセージ(何だか知りたいよ〜)
が抜けてるので、大事な実行すべき、あるものが抜け落ちたことがわかる。
抜けてることがあるので、リブートが完了したあとに、
/etc/rc.d/rc.sysinit (つまり /etc/initttabに書かれている:in:)を
手動で実行しておく。それとLEDが点滅しっぱなしになるから
これを # ledctl ledmode 1
で止める。まあいまのところこんなところか。
さあて、どうやって本格的に直すかだ。


どこで
mount /dev/hda1 /hdd1 ext3 (ro,noatime)
mount /dev/hda2 /hdd2 ext3 (rw,noatime)
mount /dev/hda3 /hdd3 vfat (rw,noatime)
してるのか知りたい。
(2006.01.29:やっとわかった。C3100では /etc/hotplug/usbdstorage.agent だ。なるほどね。hotplugでやるんだ)
/etc/rc.d/rc.rofilesys の中身は空っぽだし。
これは私だけ?SL-C3000だと、ここにいろいろなものをマウント
するように書いてあるらしいが。



(2006.01.05 01:45)
やっと見つけた。
http://www.ayati.com/kobako/c31impr.htm および
http://club.h14m.org/kenji/diary/?200506c#200506255 に感謝。
# ls -aF /hdd1
./
../
.sys/
lost+found/

# ls -aF /hdd2
./
../
.sys/
lost+found/

# ls -aF /hdd3
./
../
Documents/
dict1/
dict2/

# ls -lait /hdd1/.sys/
1257 drwxr-xr-x 2 root root 1024 May 27 02:56 .
2 drwxr-xr-x 4 root root 1024 May 27 02:56 ..
1258 -r-------- 1 root root 2713 May 27 01:33 hdimage2.tgz
1259 -r-------- 1 root root 85 May 27 01:33 hdlist1.dat

# ls -lait /hdd2/.sys/
1265 drwxr-xr-x 2 root root 1024 Dec 31 2005 .
2 drwxr-xr-x 4 root root 1024 Dec 31 2005 ..
1268 -r-------- 1 root root 100156 May 27 01:37 contlist.dat
1267 -r-------- 1 root root 1427 May 27 01:37 hdlist2.dat
1266 -r-------- 1 root root 1519 May 27 01:37 hdlist3.dat

調べたら、/hdd1と/hdd2に隠れファイルがあったんだ。.sysというディレクトリィ。
これらをダミーで作成したら、うまく動いてくれた。感謝。
ふぅ。これを見つけるのに大事な1日をつぶしてしまった。
(後日)C3000のほうの /etc/rc.d/rc.rofilesys の中に発見。
if [ ! -f /hdd1/.sys/hdimage2.tgz ]; then
echo "Error!! HDD is not initialized!"
fi
cd /
gzip -dc /hdd1/.sys/hdimage2.tgz | tar xf -