RasPi Kernelクロスビルド
2013年7月15日(月) 09:37 JST
閲覧数 6,467
Raspberry PiのKernelを作り直したくてクロスビルドを試してみた。
はじめはセルフビルドしてみたのだが、遅すぎて僕が耐え切れませんでした。
クロスコンパイラなどは既に用意されているので、簡単にKernelを再作成できます。
私は、Ubuntu 12.04を使用しました。忘れそうなのでメモしておきます。
1.前準備
一からコンフィグしてもいいのですが、足りないコンフィグがあると面倒なので、デフォルトを元に削ります。
/proc/config.gz のファイルから取り出します。
Raspberry Piでセルフビルドすると10時間を越えますが、さすがXeon X3430です15分で終了w
15.RaspberryPiに新しいモジュール一式をコピー
16.githubから最新のファームウェアを取得
(同じバージョンが使われているなら入れなおす必要はないです)
18.SOC内蔵のVideocoreVIのファームをRaspberryPiにコピー
19.RaspberryPiを再起動
起動してこなかったら、他のPCからSDの/bootのファイルを描き戻して下さい。
/bootはFATですので、Windowsからでも書き込めます。
はじめはセルフビルドしてみたのだが、遅すぎて僕が耐え切れませんでした。
クロスコンパイラなどは既に用意されているので、簡単にKernelを再作成できます。
私は、Ubuntu 12.04を使用しました。忘れそうなのでメモしておきます。
1.前準備
$ sudo aptitude install git gcc make libncurses5-dev2.作業ディレクトリ作成
$ mkdir raspi $ cd raspi3.Raspbianのソースを取得
$ git clone git://github.com/raspberrypi/linux.git4.環境変数設定
$ export KERNEL_SRC=~/raspi/linux5.クロス開発環境を取得
$ git clone git://github.com/raspberrypi/tools.git6.環境変数設定
$ export CCPREFIX=~/raspi/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-7.カーネルのコンフィグレーションを初期化
$ cd linux $ make mrproper8.RaspberryPiからRaspbianデフォルトの.configを採取
一からコンフィグしてもいいのですが、足りないコンフィグがあると面倒なので、デフォルトを元に削ります。
/proc/config.gz のファイルから取り出します。
$ gunzip -c config.gz > .config9.取得したRaspbianデフォルトのコンフィグを適用
$ ARCH=arm CROSS_COMPILE=${CCPREFIX} make oldconfig10.カーネルのコンフィグレーションをカスタマイズ
$ ARCH=arm CROSS_COMPILE=${CCPREFIX} make menuconfig11.カーネルビルド
Raspberry Piでセルフビルドすると10時間を越えますが、さすがXeon X3430です15分で終了w
$ ARCH=arm CROSS_COMPILE=${CCPREFIX} make12.環境変数設定
$ export MODULES_TEMP=~/raspi/modules/13.ビルドされたモジュールを MODULES_TEMP に配置
$ ARCH=arm CROSS_COMPILE=${CCPREFIX} INSTALL_MOD_PATH=${MODULES_TEMP} make modules_install14.カーネルイメージ作成
$ cd ~/raspi/tools/mkimage $ ./imagetool-uncompressed.py ${KERNEL_SRC}/arch/arm/boot/zImageRaspberryPiに新しいカーネルイメージ(kernel.img)を/bootにコピー
15.RaspberryPiに新しいモジュール一式をコピー
$ cd ~/raspi/modules/以下の二つは転送の必要はありませんので削除します
$ rm lib/modules/3.6.11+/build $ rm lib/modules/3.6.11+/sourcelib丸ごとRaspberry Piにコピーします
16.githubから最新のファームウェアを取得
(同じバージョンが使われているなら入れなおす必要はないです)
$ cd ~/raspi $ git clone git://github.com/raspberrypi/firmware.git17.ブートローダ等のファームをRaspberryPiにコピー
$ cd firmware $ cd bootbootcode.bin fixup.dat start.elf の3ファイルを/bootにコピーします
18.SOC内蔵のVideocoreVIのファームをRaspberryPiにコピー
$ cd .. $ cd hardfpoptを丸ごと/optにコピーします
19.RaspberryPiを再起動
起動してこなかったら、他のPCからSDの/bootのファイルを描き戻して下さい。
/bootはFATですので、Windowsからでも書き込めます。