HS-DHGL: ハック de 録!!(4)


そろそろ、実機で。

ハックキットのインストール

実験用 HDD に LS-GL/HS-DHGL ハックキットをインストールする。
(略)
インストールが終われば、/dev/sdb2 を /mnt/debinst/ にマウントしておく。
root@HS-DHGL276:~# mount /dev/sdb2 /mnt/debinst/

キャプチャボックスの認識

デバイスファイルとカーネルモジュールをハックキット側にコピー、 ロードすればキャプチャボックスが認識できるだろう。
デバイスファイルはいらんかな?

デバイスファイルのコピー

デバイスファイルは、jail の外?中?
プロセスが /dev/foobar をアクセスするのだから、 jail の中か。
root@HS-DHGL276:~# cd /
root@HS-DHGL276:/# ls -l dev/usb/mv7dxu2_* dev/video*
crw-r--r--    1 root     root     180, 192 Dec  8 16:06 dev/usb/mv7dxu2_0
crw-r--r--    1 root     root     180, 208 Dec  8 16:06 dev/usb/mv7dxu2_1
crw-r--r--    1 root     root     180, 224 Dec  8 16:06 dev/usb/mv7dxu2_2
crw-r--r--    1 root     root     180, 240 Dec  8 16:06 dev/usb/mv7dxu2_3
lrwxrwxrwx    1 root     root            6 Dec 23 15:51 dev/video -> video0
crwxrwxrwx    1 root     root      81,   0 Jun 17  2004 dev/video0
crw-r--r--    1 root     root      81,   1 Dec  8 16:06 dev/video1
crw-r--r--    1 root     root      81,   2 Dec  8 16:06 dev/video2
crw-r--r--    1 root     root      81,   3 Dec  8 16:06 dev/video3
root@HS-DHGL276:/# ls /mnt/debinst/usr/local/buffalo/dev/
null   ttyS1
root@HS-DHGL276:/# tar cf - dev/usb/mv7dxu2_* dev/video* | (cd /mnt/debinst/usr/local/buffalo/dev/; tar xvf -)
dev/video3
dev/video2
dev/video1
dev/video0
dev/video
dev/usb/mv7dxu2_3
dev/usb/mv7dxu2_2
dev/usb/mv7dxu2_1
dev/usb/mv7dxu2_0
root@HS-DHGL276:/#

カーネルモジュールのコピー

カーネルモジュールは、、jail の外?中?
静的にロードするんだったら、外でいいか。
root@HS-DHGL276:/# ls /lib/modules/
2.6.12.6-arm1   mv7dxu2_0.ko    mv7dxu2_2.ko    mv7dxu2_d.ko    v4l2-common.ko
averusb.ko      mv7dxu2_1.ko    mv7dxu2_3.ko    v4l1-compat.ko  videodev.ko
root@HS-DHGL276:/#
あれ???
LS-GL/HS-DHGL ハックキットのインストーラがコピーしてた。

debian の起動

HS-DHGL の電源ボタン長押しでシャットダウンして、 S-ATA で接続していた標準ファームの HDD を取り外し、
USB 経由で接続していた実験用 HDD を LS-GL に S-ATA で接続する。

電源 ON で debian が起動

モジュールのロード

hackkit:~# lsmod
Module                  Size  Used by    Not tainted
lsmod: QM_MODULES: Function not implemented

hackkit:~# 
モジュールはロードされていない。
hackkit:~# ls /proc/
1    195  30   427  472  489  53  buddyinfo  cpuinfo    driver       iomem     locks    mtd            self      sysvipc
11   2    319  428  475  494  54  buffalo    crypto     execdomains  ioports   meminfo  net            slabinfo  tty
14   216  320  431  481  5    55  bus        devices    filesystems  kallsyms  misc     partitions     stat      uptime
181  29   4    462  482  51   56  cmdline    diskstats  fs           kmsg      modules  resource_dump  swaps     version
182  3    415  468  483  52   57  cpu        dma_copy   interrupts   loadavg   mounts   scsi           sys       vmstat
hackkit:~# ls /lib/modules/
2.6.12.6-arm1  mv7dxu2_0.ko  mv7dxu2_2.ko  mv7dxu2_d.ko    v4l2-common.ko
averusb.ko     mv7dxu2_1.ko  mv7dxu2_3.ko  v4l1-compat.ko  videodev.ko
hackkit:~# 
一気にロードしてみる。
hackkit:~# insmod /lib/modules/*.ko
insmod: QM_MODULES: Function not implemented

insmod: cannot open /proc/ksyms No such file or directory
hackkit:~# lsmod
Module                  Size  Used by    Not tainted
lsmod: QM_MODULES: Function not implemented

hackkit:~#
だめ。
一つだけロードしてみる
hackkit:~# insmod /lib/modules/mv7dxu2_d.ko
insmod: QM_MODULES: Function not implemented

insmod: cannot open /proc/ksyms No such file or directory
hackkit:~#
一つでもダメ。

標準ファームを再確認。

root@HS-DHGL276:~# ls /proc/ksyms
ls: /proc/ksyms: No such file or directory
root@HS-DHGL276:~#
標準ファームにも /proc/ksyms はない。

では、どうやってロードしている?

root@HS-DHGL276:~# grep insmod /etc/init.d/*
/etc/init.d/module_loader.sh:                   insmod "/lib/modules/$m7mod.ko"
/etc/init.d/module_loader.sh:                   insmod "/lib/modules/$m5mod.ko"
root@HS-DHGL276:~# 
普通にロードしているだけ。
ロードしてみた。
root@HS-DHGL276:~# lsmod
Module                  Size  Used by
averusb               646332  0
v4l1_compat            11908  0
v4l2_common             4960  0
videodev                7744  1 averusb
mv7dxu2_3              40388  0
mv7dxu2_2              40388  0
mv7dxu2_1              40356  0
mv7dxu2_0              40324  0
mv7dxu2_d               2984  4 mv7dxu2_3,mv7dxu2_2,mv7dxu2_1,mv7dxu2_0
root@HS-DHGL276:~# /etc/init.d/module_loader.sh stop
root@HS-DHGL276:~# lsmod
Module                  Size  Used by
root@HS-DHGL276:~# insmod /lib/modules/mv7dxu2_d.ko
root@HS-DHGL276:~# lsmod
Module                  Size  Used by
mv7dxu2_d               2984  0
root@HS-DHGL276:~#
標準ファームならロードできた。

jail の中の insmod を使わないとダメ??




HS-DHGL: ハック de 録!!(3)
ハックの記録
LinkStation/玄箱 をハックしよう

HS-DHGL: ハック de 録!!(5)モジュールのロード

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