先日、HS-DGLシリーズ ファームウェア アップデータ Ver.1.46 が
公開された。8月に発売された新製品なのに、バージョンが 1.46 なのは、
HD-HGLAN と同じレベルのファームウェアなのであろう。
ヒョッとすると、ファームウェアは HS-DGL も HD-HGLAN もほとんど同じで、
DLNA 部分だけが違うだけなのではないだろうか?
HS-DGLシリーズ ファームウェア アップデータ Ver.1.46 と
HD-HGLANシリーズ ファームウェア アップデータ Ver.1.46β2 と
の違いを見てみる。
-rwxrw-r-- 1 yasunari root 86016 Jun 28 19:49 HS-DGL FWUpdate.exe* -rwxrw-r-- 1 yasunari root 5033 Sep 30 22:02 README.TXT* -rwxrw-r-- 1 yasunari root 38228 May 17 14:11 bootcode.bin* -rwxrw-r-- 1 yasunari root 2931720 Jul 23 16:41 firmimg.bin* -rwxrw-r-- 1 yasunari root 60451705 Oct 9 03:32 hsd146.exe* -rwxrw-r-- 1 yasunari root 57448051 Sep 29 17:39 image.dat* -rwxrw-r-- 1 yasunari root 33 Sep 29 17:34 linkstation_version.txt*
-rwxrw-r-- 1 yasunari root 86016 May 9 10:42 HD-HGLAN FWUpdate.exe* -rwxrw-r-- 1 yasunari root 15180 Sep 13 17:36 README.TXT* -rwxrw-r-- 1 yasunari root 38228 May 17 14:11 bootcode.bin* -rwxrw-r-- 1 yasunari root 2903237 Aug 3 09:33 firmimg.bin* -rwxrw-r-- 1 yasunari root 56678121 Sep 19 17:30 hglan146b2.exe* -rwxrw-r-- 1 yasunari root 53701879 Sep 13 17:31 image.dat* -rwxrw-r-- 1 yasunari root 33 Sep 13 16:30 linkstation_version.txt*
[yasunari@giga firmware]$ cmp HGLAN/hglan146b2/bootcode.bin HS-DGL/hsd146/bootcode.bin [yasunari@giga firmware]$コードも全く同じ。ということは、PowerPC
[yasunari@giga hsd146]$ /home/linkstation/getfirm/getfirm firmimg.bin info_ver 00000001 firmid 00000008 firmname HS-DGL(IEHARU) subver FLASH 1.1 ver_major 0002 ver_minor 0002 build 0000 date 6907 1710 271c size 002cbc08 chksum 6532832b kernel_offset 0000006c(108) kernel_size 000d0fd2(856018) initrd_offset 000d103e(856126) initrd_size 001fabca(2075594) [yasunari@giga hsd146]$
[yasunari@giga hglan146b2]$ /home/linkstation/getfirm/getfirm firmimg.bin info_ver 00000001 firmid 00000004 firmname HD-HGLAN(IEMITSU) subver FLASH 1.2 ver_major 0002 ver_minor 0006 build 0000 date 6908 0309 2003 size 002c4cc5 chksum c3ff6bc6 kernel_offset 0000006c(108) kernel_size 000d0f6b(855915) initrd_offset 000d0fd7(856023) initrd_size 001f3cee(2047214) [yasunari@giga hglan146b2]$
[yasunari@giga firmware]$ cmp HGLAN/hglan146b2/vmlinux.gz HS-DGL/hsd146/vmlinux.gz HGLAN/hglan146b2/vmlinux.gz HS-DGL/hsd146/vmlinux.gz 異なります: バイト 5、行 1当然内容も異なる。
[yasunari@giga hsd146]$ gunzip vmlinux.gz [yasunari@giga hsd146]$ strings vmlinux |grep "Linux version" Linux version 2.4.20_mvl31-ppc_linkstation (root@sugai-linux) (gcc version 2.95.3 20010315 (release/MontaVista)) #14 Sat, 23 Jul 2005 16:35:45 +0900 [yasunari@giga hsd146]$
[yasunari@giga hglan146b2]$ gunzip vmlinux.gz [yasunari@giga hglan146b2]$ strings vmlinux |grep "Linux version" Linux version 2.4.20_mvl31-ppc_linkstation (root@yabutar) (gcc version 2.95.3 20010315 (release/MontaVista)) #2 2005どちらも 2.4.20_mvl31-ppc_linkstation
[root@giga hsd146]# gunzip ramdisk.image.gz [root@giga hsd146]# mkdir /tmp/hsdgl [root@giga hsd146]# mount -o loop ramdisk.image /tmp/hsdgl [root@giga hsdgl]# cd /tmp [root@giga /tmp]# mkdir hsdgl_root [root@giga /tmp]# (cd hsdgl; tar cf - .)|(cd hsdgl_root; tar xvf -) : [root@giga /tmp]# umount /tmp/hsdgl
[root@giga hglan146b2]# gunzip ramdisk.image.gz [root@giga hglan146b2]# mkdir /tmp/hglan [root@giga hglan146b2]# mount -o loop ramdisk.image /tmp/hglan/ [root@giga hglan146b2]# cd /tmp [root@giga /tmp]# mkdir hglan_root [root@giga /tmp]# (cd hglan; tar cf - .)|(cd hglan_root; tar xvf -) : [root@giga /tmp]# umount /tmp/hglan
違いを見てみる
[root@giga /tmp]# diff -arc hsdgl_root hglan_root > /tmp/hsdgl-hglan.diff diff: hsdgl_root/etc/mounts: そのようなファイルやディレクトリはありません diff: hglan_root/etc/mounts: そのようなファイルやディレクトリはありません diff: hsdgl_root/etc/rc.d/rc6.d/K20inetd: そのようなファイルやディレクトリはありません diff: hglan_root/etc/rc.d/rc6.d/K20inetd: そのようなファイルやディレクトリはありません diff: hsdgl_root/etc/rc.d/rc6.d/K20logoutd: そのようなファイルやディレクトリはありません diff: hglan_root/etc/rc.d/rc6.d/K20logoutd: そのようなファイルやディレクトリはありません diff: hsdgl_root/etc/rc.d/rc6.d/S31umountnfs.sh: そのようなファイルやディレクトリはありません diff: hglan_root/etc/rc.d/rc6.d/S31umountnfs.sh: そのようなファイルやディレクトリはありません diff: hsdgl_root/etc/rc.d/rc6.d/S40umountfs: そのようなファイルやディレクトリはありません diff: hglan_root/etc/rc.d/rc6.d/S40umountfs: そのようなファイルやディレクトリはありませんなんでないと言われるのか見てみたら、
[root@giga /tmp]# ls -l */etc/mounts lrwxrwxrwx 1 root root 14 Oct 9 04:33 hglan_root/etc/mounts -> ../proc/mounts [root@giga /tmp]# ls -l */etc/rc.d/rc6.d/K20inetd lrwxrwxrwx 1 root root 17 Oct 9 04:33 hglan_root/etc/rc.d/rc6.d/K20inetd -> /etc/init.d/inetd lrwxrwxrwx 1 root root 17 Oct 9 04:31 hsdgl_root/etc/rc.d/rc6.d/K20inetd -> /etc/init.d/inetdとシンボリックリンクだった。
/tmp/hsdgl-hglan.diff を見てみたが、
"HS-DGL" か "HD-HGLAN" かの違いだけで、
有意な差は見つけられなかった。
こんなの、
firminfo(/dev/mtd0) の firmname を見て表示を切り換れば、
共通にできるのに、、、
というわけで、カーネルは違うものの、boot コード、EM モードまでは同じ。
あとは、image.dat の違いか、、、
← firminfo |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ HS-DGL のファームウェア(2)image.dat |