-->

2011-06-04

kuroboxHGのカーネル更新

2.6.25 => 2.6.27, 2.6.38 などにする場合、
u-bootを1.1.4 => 1.2.0に更新する。
kuroboxHG.dtbというファイルを/boot/に設置する。

u-boot-1.2.0のバイナリは下記で配布されている。
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#g31b0b2f

u-bootの書き込みとkuroboxHG.dtbの作成は下記を参考にする。
http://www.tkn.mydns.jp/blog/?p=1441
http://yahho.ii2.cc/modules/bwiki/index.php?%B8%BC%C8%A2HG%A1%A1Debian%A1%A1%BC%AB%C2%F0%A5%B5%A1%BC%A5%D0%B2%BD%C1%ED%CA%D4








以下は詳細。

uImage作成のためmkimageをインストールする。
sudo ACCEPT_KEYWORDS="**" emerge -av =dev-embedded/u-boot-tools-2010.12

2.6.27.59で作成したが起動しなかった。
u-bootの画面ではエラーはない。(kuroboxHG.dtbが無いので起動できない)
http://www.kernel.org/pub/linux/kernel/v2.6/longterm/

2.6.25 => 2.6.27以降ではハードウェア情報が別ファイルになる。(2.6.26は未調査)
u-bootも対応済みのものを使う。バイナリを探したところあった。
2.6.27のソースにはkuroboxHGでテスト済みとあるので動く可能性は高い。(2.6.38も同じ)

u-bootを1.2へ更新する。
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#g31b0b2f
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?plugin=attach&pcmd=info&file=u-boot-1.2.0-hg.flash.bin&refer=LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel
fileu-boot-1.2.0-hg.flash.bin
    ページ:LinkStation/玄箱/kernel
    格納ファイル名:attach/4C696E6B53746174696F6E2FE78E84E7AEB12F6B65726E656C_752D626F6F742D312E322E302D68672E666C6173682E62696E
    MD5ハッシュ値:c3ae10f906db089213978b71c2a8f3f1
    サイズ:183.1KB (187488 bytes)
    Content-type:application/octet-stream
    登録日時:2009/03/26 17:19:25
    アクセス数:461 

kuroboxHG.dtb を作る。
http://www.tkn.mydns.jp/blog/?p=1441
http://yahho.ii2.cc/modules/bwiki/index.php?%B8%BC%C8%A2HG%A1%A1Debian%A1%A1%BC%AB%C2%F0%A5%B5%A1%BC%A5%D0%B2%BD%C1%ED%CA%D4
linux/arch/powerpc/boot/dtc -f -I dts -O dtb -o /tmp/kuroboxHG.dtb -V 16 linux/arch/powerpc/boot/dts/kuroboxHG.dts
cd /boot/
sudo cp -i /tmp/kuroboxHG.dtb .

EMモード。
# cp -i u-boot-1.2.0-hg.flash.bin gentoo/gentoo-20060907/gentoo-20060907-stock/root/
# cd /
# tar xvzf /root/hda3/EM_mode_binaries.tar.gz
# cd /root/hda3/gentoo/gentoo-20060907/gentoo-20060907-stock/
# mount -t proc none proc/
# mount -o bind /dev dev/
# chroot . /bin/bash

# source /etc/profile
# export PS1="(chroot) $PS1"
# md5sum /root/u-boot-1.2.0-hg.flash.bin
c3ae10f906db089213978b71c2a8f3f1  /root/u-boot-1.2.0-hg.flash.bin
# ls -al /dev/fl2
brw-rw-r-- 1 root root 250, 2 Nov 28  2002 /dev/fl2

### 引き返せないコマンド!!!表示なしで成功???
# cat /root/u-boot-1.2.0-hg.flash.bin > /dev/fl2
#

成功した。微妙にバージョン増えた。
$ uname -a
Linux kuroboxhg 2.6.27.59 #1 Fri Jun 3 00:53:28 JST 2011 ppc 82xx Linkstation I/Kurobox(HG) GNU/Linux

ncの番号が変わった。
$ sudo ifconfig br0:0 192.168.10.21 netmask 255.255.255.0
$ nc -n -u -s 192.168.10.21 -p 6666 192.168.10.145 6666
nc: using datagram socket
...

参考URL。
http://egfinal.jp/another/kuro-box/2.6.28memo.txt
http://logsoku.com/thread/hibari.2ch.net/linux/1261303328/
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#g31b0b2f
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#wa3827d5
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2FTeraStation%2F%E7%8E%84%E7%AE%B1%2FPPC%2Fkernel%2F2.6.30.5
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FU-Boot
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?plugin=attach&refer=LinkStation%2FTeraStation%2F%E7%8E%84%E7%AE%B1%2FPPC%2Fkernel%2F2.6.28&openfile=build-kernel-2.6.28-from-2ch.txt
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?plugin=attach&refer=LinkStation%2FTeraStation%2F%E7%8E%84%E7%AE%B1%2FPPC%2Fkernel%2F2.6.30.5&openfile=config-MTD-from-2ch.txt
http://www.tkn.mydns.jp/blog/?p=1441
http://yahho.ii2.cc/modules/bwiki/index.php?%B8%BC%C8%A2HG%A1%A1Debian%A1%A1%BC%AB%C2%F0%A5%B5%A1%BC%A5%D0%B2%BD%C1%ED%CA%D4

# dir_index,large_fileを追加するとEMモードのfsckが動かない。

テスト。
o vanilla-sources-2.6.38
o gentoo-sources-2.6.38-r6
x hardened-sources-2.6.38
x hardened-sources-2.6.36
x hardened-sources-2.6.32

### カーネル作成の例。

別サーバーで作成。
$ sudo ACCEPT_KEYWORDS="~*" emerge -av dev-embedded/u-boot-tools
$ cp -ri /usr/src/linux-2.6.38-gentoo-r6/ .
$ cd linux-2.6.38-gentoo-r6/
$ cp -i arch/powerpc/configs/linkstation_defconfig .config
$ yes '' | make ARCH=powerpc CROSS_COMPILE=powerpc-unknown-linux-gnu- oldconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-unknown-linux-gnu- KCFLAGS="-mcpu=603e -Os" -j4 uImage
$ make ARCH=powerpc CROSS_COMPILE=powerpc-unknown-linux-gnu- KCFLAGS="-mcpu=603e -Os" -j4 modules
$ cd ..
$ tar cvzf linux-2.6.38-gentoo-r6.tgz linux-2.6.38-gentoo-r6/
$ scp linux-2.6.38-gentoo-r6.tgz kuroboxhg:/tmp/

kuroboxhgで作業する。
$ sudo tar xvzf linux-2.6.38-gentoo-r6.tgz
$ sudo mv -i linux-2.6.38-gentoo-r6 /usr/src/linux-2.6.38-gentoo-r6-cross
$ cd /usr/src/
$ sudo rm -i linux
$ sudo ln -s linux-2.6.38-gentoo-r6-cross
$ cd linux-2.6.38-gentoo-r6-cross/
$ sudo make ARCH=powerpc CROSS_COMPILE=powerpc-unknown-linux-gnu- KCFLAGS="-mcpu=603e -Os" -j4 modules_install
$ cd /boot/
$ sudo mv -i .config System.map kuroboxHG.dtb vmlinux.UBoot vmlinux.bin 2011-06-03.2/
$ sudo cp -pi /usr/src/linux/.config .
$ sudo cp -pi /usr/src/linux/System.map .
$ sudo cp -pi /usr/src/linux/arch/powerpc/boot/uImage vmlinux.UBoot
$ /usr/src/linux/scripts/dtc/dtc -f -I dts -O dtb -o /tmp/kuroboxHG.dtb -V 16 /usr/src/linux/arch/powerpc/boot/dts/kuroboxHG.dts
bash: /usr/src/linux/scripts/dtc/dtc: バイナリファイルを実行できません

gcc-4.4.5 => 4.3.4のため?作成元で生成する。
$ ./linux-2.6.38-gentoo-r6/scripts/dtc/dtc -f -I dts -O dtb -o /tmp/kuroboxHG.dtb -V 16 ./linux-2.6.38-gentoo-r6/arch/powerpc/boot/dts/kuroboxHG.dts
$ scp /tmp/kuroboxHG.dtb kuroboxhg:/tmp/

確認、リブート。
$ sudo cp -pi /tmp/kuroboxHG.dtb .
$ sudo chown root.root .config System.map kuroboxHG.dtb vmlinux.UBoot
$ file 2011-06-03.2/.config .config
$ file 2011-06-03.2/System.map System.map
$ file 2011-06-03.2/kuroboxHG.dtb kuroboxHG.dtb
$ file 2011-06-03.2/vmlinux.UBoot vmlinux.UBoot
$ ll /lib/modules/2.6.38-gentoo-r6/
$ sudo reboot

以前より情報が多い。IPアドレスが変わる直前まで送ってくれるようになった?
$ sudo ifconfig br0:0 192.168.10.21 netmask 255.255.255.0
$ nc -n -u -s 192.168.10.21 -p 6666 192.168.10.145 6666
...
U-Boot 1.2.0 (Mar 26 2009 - 11:36:56) LinkStation HG / KuroBox HG
...
   Image Name:   Linux-2.6.38-gentoo-r6
...
linkstation: disarming the AVR watchdog:

成功。
$ uname -a
Linux kuroboxhg 2.6.38-gentoo-r6 #2 Fri Jun 3 23:04:11 JST 2011 ppc 82xx Linkstation I/Kurobox(HG) GNU/Linux

kuroboxHGでのみテスト済み?
$ head -n19 /usr/src/linux/arch/powerpc/platforms/embedded6xx/Kconfig|tail -n6
        help
          Select LINKSTATION if configuring for one of PPC- (MPC8241)
          based NAS systems from Buffalo Technology. So far only
          KuroboxHG has been tested. In the future classical Kurobox,
          Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based
          Terastation systems should be supported too.

ハードウェア情報のファイル?
$ ls /usr/src/linux/arch/powerpc/boot/dts/
...

### u-boot書き込み確認。
http://nice.kaze.com/shiro-box-hg.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230888/
http://downloads.buffalo.nas-central.org/ALL_LS_KB_PPC/Distributions/Gentoo/

EMモード => 古いgentooのシステムへchrootする。gcc-3.4.4有り。
# mkdir /root/hda3
# mount /dev/hda3 /root/hda3
# cd /
# tar xvzf /root/hda3/EM_mode_binaries.tar.gz
# cd /root/hda3/gentoo/gentoo-20060907/gentoo-20060907-stock/
# mount -t proc none proc/
# mount -o bind /dev dev/
# chroot . /bin/bash

本来書きこみ時に行うデータチェックを今行う。あまり意味ない。
# source /etc/profile
# md5sum /root/u-boot-1.2.0-hg.flash.bin
c3ae10f906db089213978b71c2a8f3f1  /root/u-boot-1.2.0-hg.flash.bin
# dd if=/dev/fl2 of=/root/bootcode-2011-06-04.bin
896+0 records in
896+0 records out
458752 bytes (459 kB) copied, 0.133927 seconds, 3.4 MB/s
# md5sum /root/bootcode-2011-06-04.bin
af906f6bbe8bfef83332c80a7d5c4273  /root/bootcode-2011-06-04.bin

違う?
# cd /root/
# chmod -w bootcode-2011-06-04.bin u-boot-1.2.0-hg.flash.bin
# cd /tmp/
# split -b 187488 /root/bootcode-2011-06-04.bin out.
# md5sum out.aa
c3ae10f906db089213978b71c2a8f3f1  out.aa

u-bootのファイルと先頭からファイルサイズ分のデータは同じ。全領域で459 kBのようです。
u-bootのchecksum badはこれが原因かもしれない。残りをnullで埋めるとか?

終了。
# exit
# umount proc/
# umount dev/
# umount /dev/hda3
# sync; sync
# reboot

ちょっと心配。起動した。
$ nc ...
s
run writeok
boot

EMモード終了前に書きこんでも同じ。
$ echo -n 'OKOK' > /dev/fl3
$ echo -n "OKOK" > /dev/mtdblock2 
$ reboot

0 件のコメント: