本当に gcc のバージョンの問題なのかなぁ
と言いつつ今日も try & error な一日になるのかどうか。
とりあえず gcc 関連の現状が以下。
$ dpkg --get-selections|grep gcc gcc install gcc-4.4 install gcc-4.4-base install gcc-4.4-multilib install gcc-4.5-base install gcc-multilib install lib32gcc1 install libgcc1 install $
とりあえず 4.3 入れて update-alternatives してみる方向でナニ。
$ sudo apt-get install -fy gcc-4.3 g++-4.3 $ dpkg --get-selections|grep gcc gcc install gcc-4.1 install gcc-4.1-base install gcc-4.3 install gcc-4.3-base install gcc-4.4 install gcc-4.4-base install gcc-4.4-multilib install gcc-4.5-base install gcc-multilib install lib32gcc1 install libgcc1 install $
イキオイで 4.1 も入れちゃってますがご愛嬌ってコトで。
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 43 \ --slave /usr/bin/g++ g++ /usr/bin/g++-4.3 \ --slave /usr/bin/gcov gcov /usr/bin/gcov-4.3 $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 44 \ --slave /usr/bin/g++ g++ /usr/bin/g++-4.4 \ --slave /usr/bin/gcov gcov /usr/bin/gcov-4.4 $ sudo update-alternatives --config gcc There are 2 choices for the alternative gcc (providing /usr/bin/gcc). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/gcc-4.4 44 auto mode 1 /usr/bin/gcc-4.3 43 manual mode 2 /usr/bin/gcc-4.4 44 manual mode Press enter to keep the current choice[*], or type selection number: 1 update-alternatives: using /usr/bin/gcc-4.3 to provide /usr/bin/gcc (gcc) in manual mode. $ gcc --version gcc (Ubuntu 4.3.5-3ubuntu1) 4.3.5 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $
で、カーネルの make 着手してどうなるやら。
ええと
上記 NG です。ってか kernel source 自体が微妙なのではないか、という事に気づいております。とりあえず 2.6.38 なナニをオトしてリトライします。
$ cd linux-2.6.38 $ make x86_64_defconfig $ make menuconfig $ make -j2
できた模様。bzImage だけど大丈夫かな。次は busybox です。
$ make defconfig $ make menuconfig $ make install
上記正常終了したので以下か。
$ cd _install $ find . | cpio -o --format=newc > ../rootfs.img $ cd .. $ gzip -c rootfs.img > rootfs.img.gz
で、qemu なんだけどどーやるのかな。
$ qemu -kernel linux-2.6.38/arch/x86/boot/bzImage \ -initrd busybox-1.18.4/rootfs.img.gz \ -append "root=/dev/ram rdinit=/bin/sh"
あら、違うや。
This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.
なんかもの凄いナチュラルをぶちカマシてたりしますか? orz