BLR3-TX4 と WHR-G54 との違い


ここは、LinkStation/玄箱のページであるが、、、

WHR-G54 は、 BLR3-TX4 に 802.11G-MPCI を追加したものとか。

BLR3-TX4 と WHR-G54 との違いがわかれば、 802.11G-MPCI の使い方がわかるのではないかと考えた。

BLR3-TX4 ファームウェア Ver.1.41β

まずは、BLR3-TX4 から。
Buffalo から BLR3-TX4 ファームウェア Ver.1.41β を ダウンロードしてきた。
blr3_141b.exe を実行すると、 BLR3F141b.EXE, README.TXT, pppoe.txt が作成された。

例によって、strings BLR3F141b.EXE すると、またまた例によって、

[yasunari@giga BLR3-TX4]$ strings BLR3F141b.EXE  | less
	:
	:
BLR3-TX4
1.01
vmlinux
	:
	:
この並び。
[yasunari@giga BLR3-TX4]$ od -xc BLR3F141b.EXE |less
	:
	:
0166700 0000 0001 0000 0201 424c 5233 2d54 5834
         \0  \0  \0 001  \0  \0 002 001   B   L   R   3   -   T   X   4
0166720 0000 0000 0000 0000 0000 0000 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0166740 0000 0000 0000 0000 312e 3031 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0   1   .   0   1  \0  \0  \0  \0
0166760 0000 0000 0000 0000 0000 0000 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0167000 0000 0000 0000 0000 0001 0029 0000 6805
         \0  \0  \0  \0  \0  \0  \0  \0  \0 001  \0   )  \0  \0   h 005
0167020 0d0a 2c1e 005e 257a c908 194c 0000 006c
         \r  \n   , 036  \0   ^   %   z 311  \b 031   L  \0  \0  \0   l
0167040 000b 2aa7 000b 2b13 0052 fa67 1f8b 0808
         \0  \v   * 247  \0  \v   + 023  \0   R 372   g 037 213  \b  \b
0167060 fad2 a240 0203 766d 6c69 6e75 7800 e45c
        372 322 242   @ 002 003   v   m   l   i   n   u   x  \0 344   \
	:
	:
まさに firmimg.bin。
早速 vmlinux と ramdisk.image とを取り出す
[yasunari@giga BLR3-TX4]$ ls -l BLR3F141b.EXE
-rwxrw-r--    1 yasunari root      6234112 May 14 13:52 BLR3F141b.EXE*
[yasunari@giga BLR3-TX4]$ tail -c 6173248 BLR3F141b.EXE > firmimg.bin
[yasunari@giga BLR3-TX4]$ od -xc firmimg.bin |head
0000000 0000 0001 0000 0201 424c 5233 2d54 5834
         \0  \0  \0 001  \0  \0 002 001   B   L   R   3   -   T   X   4
0000020 0000 0000 0000 0000 0000 0000 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000040 0000 0000 0000 0000 312e 3031 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0   1   .   0   1  \0  \0  \0  \0
0000060 0000 0000 0000 0000 0000 0000 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000100 0000 0000 0000 0000 0001 0029 0000 6805
         \0  \0  \0  \0  \0  \0  \0  \0  \0 001  \0   )  \0  \0   h  005
[yasunari@giga BLR3-TX4]$ /home/linkstation/getfirm/getfirm firmimg.bin
info_ver 00000001
firmid 00000201
firmname BLR3-TX4
subver 1.01
ver_major 0001
ver_minor 0029
build 0000
date 6805 0d0a 2c1e
size 005e257a
chksum c908194c
kernel_offset 0000006c(108)
kernel_size 000b2aa7(731815)
initrd_offset 000b2b13(731923)
initrd_size 0052fa67(5438055)
[yasunari@giga BLR3-TX4]$ file vmlinux.gz
vmlinux.gz: gzip compressed data, was "vmlinux", from Unix, max compression
[yasunari@giga BLR3-TX4]$ file ramdisk.image.gz
ramdisk.image.gz: gzip compressed data, was "wlmr_loopfiles", from Unix, max compression
[yasunari@giga BLR3-TX4]$ gunzip ramdisk.image.gz
[yasunari@giga BLR3-TX4]$ file ramdisk.image
ramdisk.image: Linux rev 1.0 ext2 filesystem data
[yasunari@giga BLR3-TX4]$ su root
Password:
[root@giga BLR3-TX4]# mkdir root
[root@giga BLR3-TX4]# mount -o loop ramdisk.image root
[root@giga BLR3-TX4]# ls root
bin  debug  dev  etc  home  lib  lost+found  mnt  proc  root  sbin  tmp  usr  var
[root@giga BLR3-TX4]# cd root
[root@giga root]# tar zcvf ../root.tar.gz .
[root@giga root]# cd ..
[root@giga BLR3-TX4]# umount root
[root@giga BLR3-TX4]# cd root
[root@giga root]# tar zxvf ../root.tar.gz
[root@giga root]# ls -lR > ls-lR
ls -lR の結果を見ていたのだが、 LinkStation とはカーネルのベースバージョンが違うとか、 chroot とか、 ごみいっぱいとか、、、 けっこう面白い。
これは、いよいよ「BLR3-TX4 をハックしよう」のページ開設か(笑)

WHR-G54 ファームウェア Ver.2.13β

続いて Buffalo からWHR-G54 ファームウェア Ver.2.13β を ダウンロードしてきた。
whrg54-213b.bin とは、、、???
od してみる
[yasunari@giga WHR-G54]$ od -xc whrg54-213b.bin |less
0000000 0000 0001 0000 0202 5748 522d 4735 3400
         \0  \0  \0 001  \0  \0 002 002   W   H   R   -   G   5   4  \0
0000020 0000 0000 0000 0000 0000 0000 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000040 0000 0000 0000 0000 312e 3031 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0   1   .   0   1  \0  \0  \0  \0
0000060 0000 0000 0000 0000 0000 0000 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000100 0000 0000 0000 0000 0002 000d 0000 6805
         \0  \0  \0  \0  \0  \0  \0  \0  \0 002  \0  \r  \0  \0   h 005
0000120 0d11 391d 0066 2e6c d718 76d5 0000 006c
         \r 021   9 035  \0   f   .   l 327 030   v 325  \0  \0  \0   l
0000140 000b 28b1 000b 291d 005b 054f 1f8b 0808
         \0  \v   ( 261  \0  \v   ) 035  \0   [ 005   O 037 213  \b  \b
0000160 7438 a340 0203 766d 6c69 6e75 7800 e45c
          t   8 243   @ 002 003   v   m   l   i   n   u   x  \0 344   \
	:
	:
firmimg.bin そのもののようである。
早速取り出す
[yasunari@giga WHR-G54]$ /home/linkstation/getfirm/getfirm whrg54-213b.bin
info_ver 00000001
firmid 00000202
firmname WHR-G54
subver 1.01
ver_major 0002
ver_minor 000d
build 0000
date 6805 0d11 391d
size 00662e6c
chksum d71876d5
kernel_offset 0000006c(108)
kernel_size 000b28b1(731313)
initrd_offset 000b291d(731421)
initrd_size 005b054f(5965135)
yasunari@giga WHR-G54]$ ls
ramdisk.image.gz  vmlinux.gz  whrg54-213b.bin*
[yasunari@giga WHR-G54]$ gunzip ramdisk.image.gz
[yasunari@giga WHR-G54]$ su root
Password:
[root@giga WHR-G54]# mkdir root
[root@giga WHR-G54]# mount -o loop ramdisk.image root
[root@giga WHR-G54]# ls root
bin  debug  dev  etc  home  lib  lost+found  mnt  proc  root  sbin  tmp  usr  var
[root@giga WHR-G54]# cd root
[root@giga root]# tar zcvf ../root.tar.gz .
[root@giga root]# cd ..
[root@giga WHR-G54]# umount root
[root@giga WHR-G54]# cd root
[root@giga root]# tar zxvf ../root.tar.gz
ls -lR の結果

カーネルの比較

[root@giga firmware]# ls -l BLR3-TX4/vmlinux.gz WHR-G54/vmlinux.gz
-rw-r--r--    1 yasunari root       731815 Jun 26 04:43 BLR3-TX4/vmlinux.gz
-rw-r--r--    1 yasunari root       731313 Jun 27 01:40 WHR-G54/vmlinux.gz
vmlinux.gz のサイズが違う。
[root@giga firmware]# ls -l BLR3-TX4/vmlinux WHR-G54/vmlinux
-rw-r--r--    1 yasunari root      1794056 Jun 26 04:43 BLR3-TX4/vmlinux
-rw-r--r--    1 yasunari root      1789960 Jun 27 01:40 WHR-G54/vmlinux
[root@giga firmware]# cmp BLR3-TX4/vmlinux WHR-G54/vmlinux
BLR3-TX4/vmlinux WHR-G54/vmlinux 異なります: バイト 39、行 1
当然カーネルも違う。

ファイルシステムの比較

はっきりいって、よくまぁこんなに似たものを別管理できるなぁと。
構成管理をまったくやってないようだ。
(HD-120LAN ファームウェア Ver.1.23aβ のソースを請求しても、 最新のファームウェアである 1.24 のソースしか出せないというし、、、 また GPL 違反だ)

さて、、、

diff -rc BLR3-TX4/root/etc/rc.d/init.d/wireless.sh WHR-G54/root/etc/rc.d/init.d/wireless.sh
*** BLR3-TX4/root/etc/rc.d/init.d/wireless.sh   2002-08-28 15:06:33.000000000 +0900
--- WHR-G54/root/etc/rc.d/init.d/wireless.sh    2004-05-13 17:56:37.000000000 +0900
	:
	:
***************
*** 85,91 ****
  #set WDS Only mode
  if [ -f /etc/eapol.conf ]; then
    # set in the EapolRadius modules.
! eles
    if [ "$INFRAALLOW" != "" ]; then
      echo -n "airset $WIRELESS infra use $INFRAALLOW" | /bin/CLIparser
    else
--- 42,48 ----
  #set WDS Only mode
  if [ -f /etc/eapol.conf ]; then
    # set in the EapolRadius modules.
! else
    if [ "$INFRAALLOW" != "" ]; then
      echo -n "airset $WIRELESS infra use $INFRAALLOW" | /bin/CLIparser
    else
	:
	:
こんな差分を見せられたら、ハックするのいやになった。
差分のどれだけが本当の差なのやら。

802.11G-MPCI のドライバ

WHR-G54 の /lib/modules/2.4.18_mvl30-sandpoint/kernel/drivers/net/broadcom/11g あたりが 802.11G-MPCI のドライバに見える。
broadcom/11g/wl/wl.o を insmod してみる
[root@hackkit wl]# insmod wl.o
insmod: QM_MODULES: Function not implemented

えぇーー。カーネルがモジュールをサポートしていない???
LinkStation/玄箱 をハックしよう → HD-120LAN 新規 HDD の接続

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