2008年4月11日金曜日

chroot で SSD & cross compile

OpenMicroServer のクロスコンパイルをするために SSD なるディストリビューションがあるらしく Web を彷徨うと Windows 方々は VMWare-Player 上で。と言うのが多いらしい。カーネルのコンパイルしてファームに組み込み。までしか試していないけど linux ならば。と chroot で試したところ、どうもできたらしい。

# なんて言っているが VMWare や lguest でも試した後の話。

ぷらっとホームさんのドキュメント``OpenMicroServer/OpenBlockS266 のファームウェアのカスタマイズ''を多々参考にしつつ長くなるけど...i386 のバイナリ tgz を揃えた後で
# mkdir SSD
# for i in tmp/*.tgz; do
> tar xzpf $i -C SSD
# done
# pushd SSD/usr/src/dist/distfiles/
# wget -nd ftp://ftp.plathome.co.jp/pub/ssdlinux/0.4-LATEST/distfiles/linux-2.6.16.59-004-mips-obs.patch.bz2
....
# wget -nd ftp://ftp.plathome.co.jp/pub/ssdlinux/0.4-LATEST/distfiles/linux-2.6.16.59.patch.bz2
....
# wget -nd ftp://ftp.plathome.co.jp/pub/ssdlinux/0.4-LATEST/distfiles/linux-mips-2.6.16.tar.bz2
....
# wget -nd ftp://ftp.plathome.co.jp/pub/ssdlinux/0.4-LATEST/distfiles/usagi-linux26-stable-20050714-2.6.16.diff.bz2
....
# wget -nd ftp://ftp.plathome.co.jp/pub/ssdlinux/0.4-LATEST/distfiles/mtd-snapshot-20060328.tar.bz2
....
# wget -nd ftp://ftp.plathome.co.jp/pub/ssdlinux/0.4-LATEST/distfiles/pcmcia-cs-3.2.8.tar.gz
....
# cd ../../distrib/mipsel-obs1550/product/initrd/
# wget -nd ftp://ftp.plathome.co.jp/pub/ssdlinux/0.4-LATEST/mipsel-obs1550/installation/ramdisk.image-product.gz
....
# popd
# chroot SSD
# cd /etc/
# cp mk.conf mk.conf.old
# vi mk.conf
# diff -ub mk.conf.old mk.conf
--- mk.conf.old 2008-04-10 23:29:42.000000000 +0900
+++ mk.conf 2008-04-10 23:30:51.000000000 +0900
@@ -10,19 +10,19 @@
#KERNEL_CONFIG?= /any_dir/my_kernel_config

# Cross Compile for OpenBlockS
-#CROSS_BUILD?= powerpc
-#DESTDIR?= /home/dest-powerpc
-#RELEASEDIR?= /home/release-powerpc
+CROSS_BUILD= mipsel
+DESTDIR= /home/dest/mipsel
+RELEASEDIR= /home/release/mipsel

# OPENBLOCKS 'obs50','obs200','obs266' or 'none'
-OPENBLOCKS?= none
+OPENBLOCKS= obs1550

-HAVE_CVS?= yes
+HAVE_CVS?= no
DEVELOPTOOLS?= yes
USE_PAM?= yes
USE_PCMCIA?= yes
USE_EXT3FS?= yes
-IPV6?= yes
+IPV6?= no
WITH_X11?= no

SSDVERSION= 0.4
# mknod /dev/null c 1 3
# export MACHTYPE
# export HOSTTYPE
# export SHELL
# export PATH=$PATH:/usr/cross/mipsel/bin/
# cd /usr/src/mkdist/mtd
# bmake
....
# cd /usr/src/mkdist/kernel
# bmake
....
# cd /usr/src/mkdist/pcmcia-cs
# bmake
....
ごにょごにょ
# cd /usr/src
# bmake -DNOCLEAN build_kernel
....
# cd /usr/src/distrib/mipsel-obs1550/product/treeboot
# bmake
....
# ls
Makefile System-product.map zImage.initrd.treeboot-product
# exit
# ls -l SSD/usr/src/distrib/mipsel-obs1550/product/treeboot
total 9588
-rw-r--r-- 1 root root 172 Aug 23 2005 Makefile
-rw-r--r-- 1 root root 609544 Apr 11 00:03 System-product.map
-rwxr-xr-x 1 root root 9280780 Apr 11 00:03 zImage.initrd.treeboot-product
気を付ける点としては pcmcia-cs を持ってきておくことと /dev/null 作ること位かしら?

0 件のコメント: