Raspberry PIでVIMAGE用カーネルのビルド
やること
Raspberry PIにFreeBSDをインストールして、VIMAGEを使う。 VIMAGEを使うには、カーネルのビルドが必要。 カーネルのビルドをRaspberry PIで行うと遅いため、amd64な環境でクロスコンパイルする。
パッケージのインストール
ccacheを使ってビルド時間を短縮する。どの程度短くなるのかはわからないけど。
pkg install ccache echo 'WITH_CCACHE_BUILD=yes' >> /etc/src.conf echo 'WITHOUT_KERNEL_SYMBOLS=yes' >> /etc/src.conf
ソースのチェックアウト
FreeBSDのソースをチェックアウト。 VIMAGEを有効化する。
cd /usr/src svnlite co https://svn.FreeBSD.org/base/stable/11 cat << 'EOF' > /usr/src/sys/arm/conf/RPI-B-VIMAGE ident RPI-B-VIMAGE include "RPI-B" options VIMAGE EOF
ビルド
ターゲットのアーキテクチャを指定してビルドする。 仮想マシンのCPUの割当が2コアなので-j2をつけてみる。
setenv ARCH arm setenv TARGET_ARCH armv6 make -j2 kernel-toolchain make -j2 buildkernel KERNCONF=RPI-B-VIMAGE mkdir ~/kernel-RPI-B-VIMAGE make -j2 installkernel KERNCONF=RPI-B-VIMAGE DESTDIR=~/kernel-RPI-B-VIMAGE
Raspberry PIへインストール
~/kernel-RPI-B-VIMAGEをscpなどでRaspberry PIにコピーする。 コピーしたら、ディレクトリを入れ替えて再起動して終わり。
cd /boot mv kernel kernel.org mv dtb dtb.orig cp -r ~/kernel-RPI-B-VIMAGE/* /boot reboot
再起動が終わるとビルドしたカーネルになっているはず。
unarm -a dimes | grep VIMAGE root@freebsd-vbox:/usr/obj/arm.armv6/usr/src/sys/RPI-B-VIMAGE arm WARNING: VIMAGE (virtualized network stack) is a highly experimental feature.