Raspberry Pi Zeroは、まだ届きません。待ち遠しい…。
待ってる間に開発環境をOSXで整備しときます。
Raspberry Pi (raspbian)にはgccも含まれているので、実機上でカーネルもカーネルモジュールもコンパイルできてしまうんですけどね。
tmp $ gcc --version
gcc (Debian 4.6.3-14+rpi1) 4.6.3
Copyright (C) 2011 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.
が、もちろん非力なCPUとメモリなので、PC上でコンパイルしたい。
で、調べたらARM Cross Compiling with Mac OS XにOSX用インストーラがアップされていました。linaroってあるけど、linaroがOSXバイナリも提供してるんだろうか…?
Raspberry Pi用toolchainのインストール
とりあえず、上記サイトから以下のいずれかをダウンロードして解凍します。
- arm-linux-gnueabihf-raspbian 4.8 2014.04 for Mac OS X (2308)
- arm-linux-gnueabihf-raspbian 4.9 2014.05 for Mac OS X (5485)
すると、拡張子が.macのインストーラが生成されるので、ダブルクリックして実行します。
その際、セキュリティ設定が開発元情報ないとインストール許しません状態になっている、セキュリティ意識の高い方は、今回に限り緩めてもらって、「このまま開く」ボタンを押してください。
あとは「続ける」ボタンを連打するだけ。
インストールが完了したら、~/.bash_profile
とか編集して/usr/local/linaro/arm-linux-gnueabihf-raspbian/bin
にパスを通しましょう。
$ cat ~/.bash_profile
export PATH="/usr/local/linaro/arm-linux-gnueabihf-raspbian/bin:$PATH"
Raspberry Piカーネルソースの取得とコンパイル
Raspberry Pi公式ページまんまですが、toolchainさえインストールしてパス通しちゃえば、以下のようにしてコンパイル可能です。
$ git clone --depth=1 https://github.com/raspberrypi/linux rpi_kernel
$ cd rpi_kernel
$ KERNEL=kernel
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcmrpi_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs