ファームウェア 1.64 + ハックキットで USB

Debian LS-VL

ファームウェア 1.64 + ハックキットでは、 USB のカーネルモジュールがロードできなかった。
何かおまじないが必要なのかと、標準ファームを見てみる。

標準ファームに ssh でログイン

Last login: Sat May 11 13:48:33 2013 from shinjuw.yamasita.jp
root@LS-VL815:~#

モジュールの確認

root@LS-VL815:~# lsmod
Module Size Used by
usblp 10647 0
usb_storage 38261 0
uhci_hcd 22734 0
ohci_hcd 18487 0
ehci_hcd 38842 0
usbcore 133115 6 usblp,usb_storage,uhci_hcd,ohci_hcd,ehci_hcd
usb_common 556 1 usbcore
root@LS-VL815:~#
ちゃんとロードされている。

ん?

これまで、usb_common ってなかったのでは?

usb_common をロードしてみる

LS-VL を wheezy で起動、
telnet してログイン、
yasunari@vl:~$ ls /lib/modules/3.3.4-88f6281/kernel/drivers/usb/
class core host storage usb-common.ko
yasunari@vl:~$
あるある。

組み込んでみる。

root@vl:~# insmod /lib/modules/3.3.4-88f6281/kernel/drivers/usb/usb-common.ko
root@vl:~# lsmod
Module Size Used by
usb_common 556 0
fat 49246 0
root@vl:~# 
組み込めた。

試しに、usbcore もロードしてみる

root@vl:~# insmod /lib/modules/3.3.4-88f6281/kernel/drivers/usb/core/usbcore.ko
root@vl:~# lsmod
Module Size Used by
usbcore 133115 0
usb_common 556 1 usbcore
fat 49246 0
root@vl:~#
いけてる。

rc の修正

ハックキットに添付している rc を修正する。
root@vl:/etc/init.d# cd
root@vl:~# cd /etc/init.d/
root@vl:/etc/init.d# ls
README kernelmon networking smartmontools
bootlogd killprocs procps ssh
bootlogs kmod rc stop-bootlogd
bootmisc.sh miconapl rc.local stop-bootlogd-single
checkfs.sh motd rcS udev
checkroot-bootclean.sh mountall-bootclean.sh reboot udev-mtab
checkroot.sh mountall.sh rmnologin umountfs
cron mountdevsubfs.sh rsyslog umountnfs.sh
halt mountkernfs.sh sendsigs umountroot
hostname.sh mountnfs-bootclean.sh single urandom
hwclock.sh mountnfs.sh skeleton usb
inetutils-inetd mtab.sh smartd
root@vl:/etc/init.d# ls -l usb
-rwxr-xr-x 1 root root 2743 May 11 13:58 usb
root@vl:/etc/init.d# mv usb{,.orig}
root@vl:/etc/init.d# cp usb.orig usb
root@vl:/etc/init.d# vi usb
	:
	:
がー、他にも色々変わってる。
ぐぉー、元のスクリプトばぐってる。。。
root@vl:/etc/init.d# diff -u usb.orig usb
--- usb.orig 2013年05月11日 13:58:46.864417003 +0900
+++ usb 2013年05月20日 07:21:32.509064003 +0900
@@ -26,6 +26,10 @@
 echo on> /proc/buffalo/usb_control
 fi
+ if [ -f /lib/modules/*/kernel/drivers/usb/usb-common.ko ]
+ then
+ insmod /lib/modules/*/kernel/drivers/usb/usb-common.ko
+ fi
 if [ -f /lib/modules/*/kernel/drivers/usb/core/usbcore.ko ]
 then
 insmod /lib/modules/*/kernel/drivers/usb/core/usbcore.ko
@@ -59,44 +63,48 @@
 then
 insmod /lib/modules/*/kernel/fs/fat/fat.ko
 fi
- if [ -f /lib/modules/*/kernel/fs/vfat/vfat.ko ]
+ if [ -f /lib/modules/*/kernel/fs/fat/vfat.ko ]
 then
- insmod /lib/modules/*/kernel/fs/vfat/vfat.ko
+ insmod /lib/modules/*/kernel/fs/fat/vfat.ko
 fi
 ;;
 stop)
- if [ -f /lib/modules/*/kernel/fs/vfat/vfat.ko ]
+ if [ -f /lib/modules/*/kernel/fs/fat/vfat.ko ]
 then
 rmmod vfat.ko
 fi
- if [ -f /lib/modules/*/kernel/fs/vfat/fat.ko ]
+ if [ -f /lib/modules/*/kernel/fs/fat/fat.ko ]
 then
 rmmod fat.ko
 fi
- if [ -f /lib/modules/*/kernel/fs/vfat/usblp.ko ]
+ if [ -f /lib/modules/*/kernel/drivers/usb/class/usblp.ko ]
 then
 rmmod usblp.ko
 fi
- if [ -f /lib/modules/*/kernel/fs/vfat/usb-storage.ko ]
+ if [ -f /lib/modules/*/kernel/drivers/usb/storage/usb-storage.ko ]
 then
 rmmod usb-storage.ko
 fi
- if [ -f /lib/modules/*/kernel/fs/vfat/uhci-hcd.ko ]
+ if [ -f /lib/modules/*/kernel/drivers/usb/host/uhci-hcd.ko ]
 then
 rmmod uhci-hcd.ko
 fi
- if [ -f /lib/modules/*/kernel/fs/vfat/ohci-hcd.ko ]
+ if [ -f /lib/modules/*/kernel/drivers/usb/host/ohci-hcd.ko ]
 then
 rmmod ohci-hcd.ko
 fi
- if [ -f /lib/modules/*/kernel/fs/vfat/ehci-hcd.ko ]
+ if [ -f /lib/modules/*/kernel/drivers/usb/host/ehci-hcd.ko ]
 then
 rmmod ehci-hcd.ko
 fi
- if [ -f /lib/modules/*/kernel/fs/vfat/usbcore.ko ]
+ if [ -f /lib/modules/*/kernel/drivers/usb/core/usbcore.ko ]
 then
 rmmod usbcore.ko
 fi
+ if [ -f /lib/modules/*/kernel/drivers/usb/usb-common.ko ]
+ then
+ rmmod usb-common.ko
+ fi
 if [ -e /proc/buffalo/usb_control ]
 then
root@vl:/etc/init.d# ls -l usb*
-rwxr-xr-x 1 root root 3014 May 20 07:21 usb
-rwxr-xr-x 1 root root 2743 May 11 13:58 usb.orig
root@vl:/etc/init.d#
ロードしてみる
root@vl:/etc/init.d# sh usb start
root@vl:/etc/init.d# lsmod
Module Size Used by
vfat 9728 0
fat 49246 1 vfat
usblp 10647 0
usb_storage 38261 0
uhci_hcd 22734 0
ohci_hcd 18487 0
ehci_hcd 38842 0
usbcore 133115 6 ehci_hcd,ohci_hcd,uhci_hcd,usb_storage,usblp
usb_common 556 1 usbcore
root@vl:/etc/init.d# sh usb stop
root@vl:/etc/init.d# lsmod
Module Size Used by
root@vl:/etc/init.d#
いけてそう。

USB メモリを刺してみる

root@vl:/etc/init.d# sh usb start
root@vl:/etc/init.d# tail -f /var/log/messages
	:
	:
May 20 07:24:56 vl kernel: usb 1-1: new full-speed USB device number 2 using ehci_marvell
May 20 07:24:56 vl kernel: usb-storage 1-1:1.0: Quirks match for vid 0ea0 pid 6828: 20
May 20 07:24:56 vl kernel: scsi2 : usb-storage 1-1:1.0
May 20 07:24:57 vl kernel: scsi 2:0:0:0: Direct-Access BUFFALO ClipDrive 1.88 PQ: 0 ANSI: 2
May 20 07:24:57 vl kernel: sd 2:0:0:0: Attached scsi generic sg1 type 0
May 20 07:24:58 vl kernel: ready
May 20 07:24:58 vl kernel: sd 2:0:0:0: [sdb] 64000 512-byte logical blocks: (32.7 MB/31.2 MiB)
May 20 07:24:58 vl kernel: sd 2:0:0:0: [sdb] Write Protect is off
May 20 07:24:58 vl kernel: sdb: sdb1
May 20 07:24:58 vl kernel: sd 2:0:0:0: [sdb] Attached SCSI removable disk
ちゃんと sdb として認識された。

抜いてみる

May 20 07:25:16 vl kernel: usb 1-1: USB disconnect, device number 2
イケてるんでわ



Debian 7.0 (wheezy)へのアップグレード
ハックの記録
LinkStation/玄箱 をハックしよう
LinkStationシリーズ ファームウェア アップデーター Ver.1.65

ツイート Tweet to @yasunari_y @yasunari_yをフォロー

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

AltStyle によって変換されたページ (->オリジナル) /