玄箱 カーネルソース コンパイル

user-pic
0

Eclipseのプラグインばかり開発しているのも、疲れたので、玄箱のカーネルソースのコンパイルに挑んでみる。

まず、initrd イメージが必要なので、フラッシュメモリから抽出する。

フラッシュメモリにアクセスするためにまず、デバイスを作成する。

mknod /dev/fl0 b 250 0
mknod /dev/fl1 b 250 1
mknod /dev/fl2 b 250 2
mknod /dev/fl3 b 250 3
mknod /dev/fl4 b 250 4

イメージの取り出し。

cp /dev/fl1 image

フラッシュメモリー解析スクリプト(showflash.pl)。
以下のサイトからそのままいただきました。
ねぎ式

#! /usr/bin/perl
#
read(STDIN, $tmp, 108, 0);
@tmp = unpack("LLA32A32SSSC6LLLLLL", $tmp);

print "version ". $tmp[0]."\n";
print "firm ID ". $tmp[1]."\n";
print "firm name ". $tmp[2]."\n";
print "sub Ver ". $tmp[3]."\n";
print "Maj Ver ". $tmp[4]."\n";
print "Min Ver ". $tmp[5]."\n";
print "build No ". $tmp[6]."\n";
printf "build day %d/%d/%d %d:%d:%d\n",
$tmp[7] + 1900, $tmp[8], $tmp[9], $tmp[10], $tmp[11], $tmp[12];
print "firmimg.bin size ". $tmp[13]."\n";
print "sum ". $tmp[14]."\n";
print "vmlinux.gz offset ". $tmp[15]."\n";
print "vmlinux.gz size ". $tmp[16]."\n";
print "ramdisk.image.gz offset ". $tmp[17]."\n";
print "ramdisk.image.gz size ". $tmp[18]."\n";

スクリプト実行。

perl showflash.pl < /dev/fl1

出力結果

version 1
firm ID 4097
firm name KURO-BOX(IETSUNA)
sub Ver FLASH 1.1
Maj Ver 1
Min Ver 2
build No 0
build day 2004/4/16 11:46:41
firmimg.bin size 2847034
sum 1277192449
vmlinux.gz offset 108
vmlinux.gz size 719495
ramdisk.image.gz offset 719603
ramdisk.image.gz size 2127431

firmimg.binの取り出し。

head -c 2847034 /dev/fl1 > firmimg.bin

ramdisk.image.gzの取り出し。

tail -c 2127431 firmimg.bin > ramdisk.image.gz

結果の確認

file ramdisk.image.gz

メッセージ

ramdisk.image.gz: gzip compressed data, was "loopfile", from Unix,
max compression

以下のサイトからソースコードをダウンロードする。
Kernel_source

コンパイル方法は以下を参考にする。
Kernel_source/Compile

ざーっとやったことメモ。

cp ramdisk.image.gz ${TOPDIR}/arch/ppc/boot/images

Makefileの変更

EXTRAVERSION = _kuro-box

cd ${TOPDIR}
rm .hhl_cross_compile
cp firminfo.txt.kurobox firmimg.txt
make kurobox_config
make oldconfig
make menuconfig

ここで、USB音源を使えるようにコンフィギュレーションする。

Sound --->
<M> Sound card support
<M> OSS sound modules
USB support --->
<M> EHCI HCD (USB 2.0) support (EXPERIMENTAL)
<M> USB Audio support
<M> EMI 2|6 USB Audio interface support
<M> USB MIDI support

そしてコンパイル。

make dep
make firmimg.bin
make bootcode
make modules

これで、カーネルと、モジュールが作成されるはずです。。。

トラックバック(0)

トラックバックURL: http://dia-sea.dyndns.org/mt/mt-tb.cgi/65

コメントする

このブログ記事について

このページは、dia-seaが2004年9月26日 14:07に書いたブログ記事です。

ひとつ前のブログ記事は「Eclipseプラグイン開発メモ(MySQL JDBCドライバの接続文字列)」です。

次のブログ記事は「玄箱 カーネルソース コンパイルの続き」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。