PC-P1LAN ファームウェア


PC-P1LAN のファームウェア、uImage と initrd.boot とを探る。

uImage

uImage をググると、U-Boot とか tftproot とかいっぱい出てくる。
良くわかってないので、gunzip してみた(滅)
[root@giga firm]# gunzip uImage
gunzip: uImage: unknown suffix -- ignored
[root@giga firm]# zcat uImage > vmlinux

zcat: uImage: not in gzip format
gzip された vmlinux ではないみたい(汗)
od してみた。
0000000 2705 1956 9a47 61a5 432b c753 000d b4cc
          ' 005 031   V 232   G   a 245   C   + 307   S  \0  \r 264 314
0000020 0090 8000 0090 8000 3002 3975 0502 0200
         \0 220 200  \0  \0 220 200  \0   0 002   9   u 005 002 002  \0
0000040 4c69 6e75 782d 322e 362e 352d 6974 3000
          L   i   n   u   x   -   2   .   6   .   5   -   i   t   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 a0e1 0000 a0e1 0000 a0e1 0000 a0e1
         \0  \0 240 341  \0  \0 240 341  \0  \0 240 341  \0  \0 240 341
*
	:
	:
Linux 2.6.5 らしい。
gzip のマジックナンバ、1f8b を探してみた。
	:
0026620 6c65 6e67 7468 2065 7272 6f72 0000 0000
          l   e   n   g   t   h       e   r   r   o   r  \0  \0  \0  \0
0026640 2064 6f6e 652c 2062 6f6f 7469 6e67 2074
              d   o   n   e   ,       b   o   o   t   i   n   g       t
0026660 6865 206b 6572 6e65 6c2e 0a00 1f8b 0800
          h   e       k   e   r   n   e   l   .  \n  \0 037 213  \b  \0
0026700 4dc7 2b43 0203 ecfd 0d7c 54d5 b537 8eef
          M 307   +   C 002 003 354 375  \r   |   T 325 265   7 216 357
0026720 332f c990 8c30 2189 8624 c220 4123 463d
          3   / 311 220 214   0   ! 211 206   $ 302       A   #   F   =
	:
26674(8進)=11708(10進)バイト目のところに 1f8b が見える。
11708 バイト目以降を取り出してみる
[root@giga firm]# dd if=uImage of=image.gz bs=11708 skip=1
読み込んだブロック数は 75+1
書き込んだブロック数は 75+1
[root@giga firm]# file image.gz
image.gz: gzip compressed data, from Unix, max compression
[root@giga firm]#
おお、、、いけそう。
[root@giga firm]# gunzip image.gz

gunzip: image.gz: decompression OK, trailing garbage ignored
[root@giga firm]#
なんか後ろにもデータがあるみたいだが、、、
[root@giga firm]# strings image |grep 2.6.5
2.6.5-it0 preempt ARMv5 gcc-3.4
Linux version 2.6.5-it0 (ushijima@VMWvine3.localdomain) (gcc version 3.4.1) #205 Sat Sep 17 16:35:29 JST 2005
2.6.5-it0
[root@giga firm]#
  • ARMv5 向けにコンパイルされている

  • 牛島さんは VMWare 上で Vine をお使いになっている(笑)

  • initrd.boot は、また明日。




    HS-DGL ファームウェア 1.46 と 1.47
    ハックの記録
    LinkStation/玄箱 をハックしよう

    PC-P1LAN ファームウェア(2)initrd.boot

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