debian 化(25)モジュールのロード

LS-WSGL/R1

ジェイルができたので、モジュールをロードすることにする。

必要なモジュールは?

全部のモジュールの内、、、
mini:~# cd /usr/local/buffalo
mini:/usr/local/buffalo# find lib/modules -type f -print
lib/modules/2.6.16.16-arm1/kernel/fs/fat/fat.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_koi8-ru.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_ascii.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp737.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp775.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp850.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp852.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp855.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp857.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp860.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp861.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp862.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp863.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp864.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp865.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp866.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp869.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp874.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp936.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp949.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp950.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-13.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-14.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-15.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp1250.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp1251.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_cp1255.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_koi8-r.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_koi8-u.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-1.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-2.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-3.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-4.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-5.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-6.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-7.ko
lib/modules/2.6.16.16-arm1/kernel/fs/nls/nls_iso8859-9.ko
lib/modules/2.6.16.16-arm1/kernel/fs/ntfs/ntfs.ko
lib/modules/2.6.16.16-arm1/kernel/fs/vfat/vfat.ko
lib/modules/2.6.16.16-arm1/kernel/fs/msdos/msdos.ko
lib/modules/2.6.16.16-arm1/kernel/net/802/p8022.ko
lib/modules/2.6.16.16-arm1/kernel/net/802/psnap.ko
lib/modules/2.6.16.16-arm1/kernel/net/llc/llc.ko
lib/modules/2.6.16.16-arm1/kernel/net/appletalk/appletalk.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/core/usbcore.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/host/ohci-hcd.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/host/ehci-marvell-hcd.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/host/uhci-hcd.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/class/usblp.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/input/usbhid.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/storage/usb-storage.ko
lib/modules/2.6.16.16-arm1/modules.dep
lib/modules/2.6.16.16-arm1/modules.pcimap
lib/modules/2.6.16.16-arm1/modules.usbmap
lib/modules/2.6.16.16-arm1/modules.ccwmap
lib/modules/2.6.16.16-arm1/modules.ieee1394map
lib/modules/2.6.16.16-arm1/modules.isapnpmap
lib/modules/2.6.16.16-arm1/modules.inputmap
lib/modules/2.6.16.16-arm1/modules.seriomap
lib/modules/2.6.16.16-arm1/modules.alias
lib/modules/2.6.16.16-arm1/modules.symbols
mini:/usr/local/buffalo#
必要なのは、
lib/modules/2.6.16.16-arm1/kernel/fs/fat/fat.ko
lib/modules/2.6.16.16-arm1/kernel/fs/vfat/vfat.ko
lib/modules/2.6.16.16-arm1/kernel/fs/msdos/msdos.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/core/usbcore.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/host/ehci-marvell-hcd.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/storage/usb-storage.ko
lib/modules/2.6.16.16-arm1/kernel/drivers/usb/class/usblp.ko
これぐらいか。

rc を書く

mini:~# vi /etc/init.d/usb
	:
	:
mini:~# cat /etc/init.d/usb
#!/bin/sh

case "$1" in
    start)
        chroot /usr/local/buffalo mount /proc
        chroot /usr/local/buffalo insmod /lib/modules/2.6.16.16-arm1/kernel/drivers/usb/core/usbcore.ko
        chroot /usr/local/buffalo insmod /lib/modules/2.6.16.16-arm1/kernel/drivers/usb/host/ehci-marvell-hcd.ko
        chroot /usr/local/buffalo insmod /lib/modules/2.6.16.16-arm1/kernel/drivers/usb/storage/usb-storage.ko
        chroot /usr/local/buffalo insmod /lib/modules/2.6.16.16-arm1/kernel/fs/fat/fat.ko
        chroot /usr/local/buffalo insmod /lib/modules/2.6.16.16-arm1/kernel/fs/vfat/vfat.ko
        chroot /usr/local/buffalo insmod /lib/modules/2.6.16.16-arm1/kernel/fs/msdos/msdos.ko
        chroot /usr/local/buffalo insmod /lib/modules/2.6.16.16-arm1/kernel/drivers/usb/class/usblp.ko

        ;;
    stop)
        chroot /usr/local/buffalo umount /proc
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac

exit 0
mini:~#
stop はどうせシャットダウン/リブートするんだからと手抜き。

確認

実行してみる。
mini:~# chmod +x /etc/init.d/usb
mini:~# /etc/init.d/usb start
usbcore: registered new driver usbfs
usbcore: registered new driver hub
ehci_platform ehci_platform.4523: EHCI Platform Host Controller
ehci_platform ehci_platform.4523: new USB bus registered, assigned bus number 1
ehci_platform ehci_platform.4523: irq 17, io mem 0x00000000
ehci_platform ehci_platform.4523: USB 0.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ehci_platform ehci_platform.16781: EHCI Platform Host Controller
ehci_platform ehci_platform.16781: new USB bus registered, assigned bus number 2
ehci_platform ehci_platform.16781: irq 12, io mem 0x00000000
ehci_platform ehci_platform.16781: USB 0.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
mini:~#
問題なさそう。確認する。
mini:~# chroot /usr/local/buffalo lsmod
Module                  Size  Used by
usblp                  14784  0
msdos                   9888  0
vfat                   13920  0
fat                    56572  2 msdos,vfat
usb_storage            59975  0
ehci_marvell_hcd       33480  0
usbcore               127240  4 usblp,usb_storage,ehci_marvell_hcd
mini:~#

chkconfig --add usb

ブート時に起動するようシンボリックリンクを張る
mini:~# cd /etc/rc0.d/
mini:/etc/rc0.d# ln -s ../init.d/usb K10usb
mini:/etc/rc0.d# cd ../rc2.d/
mini:/etc/rc2.d# ln -s ../init.d/usb S90usb
mini:/etc/rc2.d# cd ../rc6.d/
mini:/etc/rc6.d# ln -s ../init.d/usb K10usb
mini:/etc/rc6.d# cd ..
mini:/etc# ls -l */*usb*
-rwxr-xr-x 1 root root 754 Nov  1 01:00 init.d/usb
lrwxrwxrwx 1 root root  23 Nov  1 01:08 rc0.d/K10usb -> ../init.d/usb
lrwxrwxrwx 1 root root  23 Nov  1 01:08 rc2.d/S90usb -> ../init.d/usb
lrwxrwxrwx 1 root root  23 Nov  1 01:08 rc6.d/K10usb -> ../init.d/usb
mini:/etc#

リブートして確認

mini:~# shutdown -r now
	:
	:
Debian GNU/Linux 4.0 mini ttyS0
mini login: root
Password:
Last login: Thu Nov  1 00:39:48 2007 on ttyS0
Linux mini 2.6.16.16-arm1 #316 Tue Jul 22 16:22:33 JST 2008 armv5tejl

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
mini:~# chroot /usr/local/buffalo lsmod
Module                  Size  Used by
usblp                  14784  0
msdos                   9888  0
vfat                   13920  0
fat                    56572  2 msdos,vfat
usb_storage            59975  0
ehci_marvell_hcd       33480  0
usbcore               127240  4 usblp,usb_storage,ehci_marvell_hcd
mini:~#
いけてそう。

確認

プリンタを刺してみる。
mini:~# tail -f /var/log/messages
	:
	:
しーん。何の反応もない。

USB メモリを刺してみる。
こちらも何の反応もなし。
なんか足りない。


LS-WSGL debian 化の残課題まとめ

1.debian がまともに動くようにする

1)起動時のエラーつぶし
(1)md0 の起動時マウント
・ネットワークの設定
・パッケージリストのアップデート
・mdadm のインストール
2)標準ファームによる RAID 化(md0, md1, md10)
3)電源スイッチによる電源OFF実現
4)LED の点滅解除
5)パッケージのアップデート
6)swap の有効化
7)標準ファームのジェイル化
7)HDD の標準ファームでジェイル化
8)カーネルモジュールのロード
9)シャットダウン時のエラーつぶし
10)USB 機器の認識

2.手順化、ハックキット化

要る?

1)シリアルコンソールを使わないインストール方法の検討
2)インストーラ作成



LinkStation Mini
LS-WSGL
楽天市場
Amazon
Yahoo!ショッピング
Livedoor デパート
Sofmap
TSUKUMO ネットショップ
ムラウチドットコム
ヤマダ電機WEB
パソQ


debian 化(24)HDD の標準ファームをジェイル化
ハックの記録
LinkStation/玄箱 をハックしよう

debian 化(26)USB 機器の認識

Copyright (C) 2003-2008 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市