2011年2月20日日曜日

obs600 で debian squeeze - その 1

squeeze がリリースされたので「OBS600でlinux-2.6.35.4 + Debian squeeze」と同じようなコトしてみた。ただ ssdlinux を走らせるのが面倒だったので極力 amd64 からのクロス環境でダーティハック込み。まずは「ファームウェアアップデートを実行したら起動しなくなりました。どうすれば復旧できますか。」の準備
# apt-get install tftpd-hpa
....
# cd /srv/tftp
# wget http://ftp.plathome.co.jp/pub/OBS600/0.5-LATEST/powerpc-obs600/installation/uImage.initrd
....
# ip addr add 192.168.253.1/24 dev eth0
# /etc/init.d/tftpd-hpa restart
ディップスイッチ操作が必要になる --- であろうとフタは外しておく。
順序はどうでもよいけど「他OSのインストール方法 (OBS600)」見つつ obs600 側の CF フォーマット。
# fdisk /dev/sda
# mke2fs -j -b 4096 -L / /dev/sda1
# mount LABEL=/ /mnt# cd /mnt/
また 開発環境の構築の中「クロス開発 (VMware等のx86環境上での開発)」の 3. 必要なパッケージを追加します。までやっとく。

で amd64 側でのカーネルのコンパイルヘ。obs600 のパッチは ssdlinux のソースから
$ mkdir obs600
$ cd obs600
$ wget http://ftp.plathome.co.jp/pub/ssdlinux/0.5-LATEST/source/src.tgz
$ tar xzf src.tgz
$ ls usr/src/mkdist/kernel
2.4.20 2.4.26 2.4.37 2.6.16 2.6.26 2.6.29 2.6.32 2.6.33 2.6.35 2.6.36 Makefile
2.6.36 も動くけど、ここは squeeze ソース使って
$ sudo apt-get install linux-source-2.6.32
$ tar xjf /usr/src/linux-source-2.6.32.tar.bz2 -C .
$ ls
linux-source-2.6.32 src.tgz usr
2.6.32 のパッチあて
$ cd linux-source-2.6.32
$ for i in ../usr/src/mkdist/kernel/2.6.32/patches/*.patch; do patch -p1 < $i; done
....
patching file Makefile
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
4 out of 4 hunks ignored -- saving rejects to file Makefile.rej
patching file scripts/Makefile.modinst
この Makefile の rej はムシしても OK な範囲。カーネルモジュールを gzip してくれなくてもよいので scripts.patch は除外。その他必要なファイルをコピーしておく
$ patch -p1 -R <  ../usr/src/mkdist/kernel/2.6.32/patches/scripts.patch
$ cp ../usr/src/mkdist/kernel/2.6.32/obs600.dts arch/powerpc/boot/dts/
$ cp ../usr/src/mkdist/kernel/2.6.32/dot.config.powerpc-obs600 .config
$ make ARCH=powerpc menuconfig
....

$ CONCURRENCY_LEVEL=4 fakeroot make-kpkg --arch=powerpc --revision 0.9 kernel_image
....
$ cd ..
$ ls
linux-image-2.6.32_0.9_powerpc.deb linux-source-2.6.32 src.tgz usr
と、その 1 はここまで。

0 件のコメント: