カーネルのクロスコンパイル
PowerMac G5用の64ビットカーネルの作り方
1) binutilsとgccを使ってクロスコンパイラを作ります。
作業例:
tar xvjf binutils-2.14.tar.bz2
mkdir binutils-work
cd binutils-work
../binutils-2.14/configure --target=powerpc64-linux --prefix=/opt/ppc64 \
--disable-shared
make
make install
make clean
cd ../
export PATH=/opt/ppc64/bin:${PATH}
tar xvjf gcc-core-3.3.3.tar.bz2
mkdir gcc-work
cd gcc-work
../gcc-3.3.3/configure --target=powerpc64-linux --prefix=/opt/ppc64 \
--enable-languages=c --disable-shared --disable-threads
make
make install
make clean
cd ../
2) 2.6系のカーネルソースと不安定版のgenkernelをインストールします。
作業例:
ACCEPT_KEYWORDS=ppc64 emerge ppc-development-sources ACCEPT_KEYWORDS=~ppc emerge genkernel
3) /usr/src/linuxのシンボリックリンクを確認します。
/usr/src/linuxのシンボリックリンク先が先ほど入れたカーネルのソースになっているか確認し、違っていたら適切なリンクを張ります。
作業例:
cd /usr/src ls -la
4) Makefileを書き換えます。
作業例:
cd /usr/src/linux nano -w Makefile
書き換える箇所は次の2カ所です。
ARCH ?= ppc64 CROSS_COMPILE ?= /opt/ppc64/bin/powerpc64-linux-
5) カーネルコンフィグファイルを流用します。
作業例:
cd /usr/src/linux cp /usr/share/genkernel/ppc64/kernel-2.6.g5 .config
6) make menuconfigを実行します。
設定はいじらずそのまま保存してください。
作業例:
make menuconfig
7) カーネルとモジュールを作ります。
作業例:
make dep && make vmlinux modules modules_install mount /boot cp vmlinux /boot/kernel-2.6.x-64 cp System.map /boot/System.map-2.6.x-64
8) yabootのプロンプトに直接カーネルを指定して起動してみます。
作業例:
boot: /kernel-2.6.x-64