yoctoの最新版がやっとリリースされた。バージョンは2.6で、コードネームは「Thud」.
早速、ラズベリーパイ3で動かして見る。
環境構築
いつものやつ。
INITはsystemdで。
ソース取得
$ mkdir -p rpi-thud/layers $ cd rpi-thud/layers $ git clone git://git.yoctoproject.org/poky.git -b thud $ git clone git://git.yoctoproject.org/meta-raspberrypi -b thud $ git clone git://git.openembedded.org/meta-openembedded -b thud $ cd ../
環境変数設定
$ source layers/poky/oe-init-build-env build
自動的にビルドディレクトリに移動される。 これで、bitbake関連のツールが使用可能になる。
レイヤ追加
$ bitbake-layers add-layer ../layers/meta-openembedded/meta-oe $ bitbake-layers add-layer ../layers/meta-openembedded/meta-python $ bitbake-layers add-layer ../layers/meta-openembedded/meta-networking $ bitbake-layers add-layer ../layers/meta-raspberrypi/
local.confの修正
MACHINEの行を修正する。
MACHINE = "raspberrypi3" DL_DIR ?= "${TOPDIR}/../downloads" # enable uart ENABLE_UART = "1" # systemd DISTRO_FEATURES_append = " systemd pam" VIRTUAL-RUNTIME_init_manager = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" VIRTUAL-RUNTIME_initscripts = ""
ビルド
$ bitbake core-image-base
最小限のイメージを作成する場合、 これまではrpi-basic-imageを使用していたが、今後はcore-image-baseを使用する。
出来上がったイメージをddなどでSDカードに書き込む。
sudo dd if=tmp/deploy/images/raspberrypi3/core-image-base-raspberrypi3.rpi-sdimg of=/dev/sdX bs=100M
sdXは環境によりsdbやsdcなどになる。
動作確認
作成したSDカードをラズベリーパイ3に挿入し電源を入れる。
ログイン後次のコマンドを実行し、OSを確認する。
# cat /etc/os-release ID="poky" NAME="Poky (Yocto Project Reference Distro)" VERSION="2.6 (thud)" VERSION_ID="2.6" PRETTY_NAME="Poky (Yocto Project Reference Distro) 2.6 (thud)"
thudが動作していることが確認できる。