ファームウェア 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
イケてるんでわ

LS-VL

楽天市場
Amazon
livedoor デパート
バッファローダイレクト
Yahoo!ショッピング


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 山下康成@京都府向日市