みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

ROCK64をyoctoで立ち上げ

秋月でROCK64ボードを購入した。 今回はコスト優先でメモリ1GBのモデルにした。

このボードはラズパイの40ピンと互換のGPIOヘッダが搭載されているが、電源コネクタがマイクロUSBではなくDCプラグとなっている。 ただ、このDCプラグが曲者で、秋月で売っている2.1mmのコネクタがささらない為、別途用意する必要がある。

秋月では、ラズベリーパイ用のユニバーサル基板のHATを使用して、2.1mmのDCプラグをつける方法を紹介しているが、 ただ単に動作を見たいだけなら、USBシリアル変換ケーブルなどで、USBの5VをGPIOヘッダの電源ピンにぶち込むのが一番簡単だと思われる。

yoctoのビルド方法はここを参考に作業した。

作業ディレクト

~/yocto/rock64-pyroで作業する

$ mkdir ~/yocto/rock64-pyro
$ cd ~/yocto/rock64-pyro

ソースの取得

$ repo init --repo-url=https://github.com/rockchip-linux/repo -u https://github.com/rockchip-linux/manifests -b yocto -m pyro.xml
$ repo sync

環境変数設定

$ MACHINE=evb-rk3328 DISTRO=rk-wayland . ./setup-environment -b build

ビルド

$ bitbake rk-image-base

書き込み

システム全体

$ cd ~/yocto/rock64-pyro
$ ./flash_tool.sh -c rk3288 -d /dev/sdb -p system -i ./build/tmp/deploy/images/evb-rk3328/rk-image-base-evb-rk3328-gpt.img

rootfsのみ

$ cd ~/yocto/rock64-pyro
$ ../flash_tool.sh -c rk3288 -d /dev/sdb -p rootfs -i ./build/tmp/deploy/images/evb-rk3328/rk-image-base-evb-rk3328.ext4

カーネルのみ

$ cd ~/yocto/rock64-pyro
$ ../flash_tool.sh -c rk3288 -d /dev/sdb -p rootfs -i ./build/tmp/deploy/images/evb-rk3328/rk-image-base-evb-rk3328-boot.img

ddでの書き込み

システム全体の書き込みであれば、ddでもできる。

$ cd ~/yocto/rock64-pyro/build
$ sudo dd if=tmp/deploy/images/evb-rk3328/rk-image-base-evb-rk3328-gpt.img of=/dev/sdb bs=100M

ビルドディレクトリで実行できるので、こちらの方が便利かもしれない。

シリアルコンソール

この手のボードでよく使われるボーレートは115200だが、このボードは1500000となっている。

$ minicom -b 1500000 -D /dev/ttyUSB0

電源投入

このボードは電源ボタンが実装されている。 USBケーブルの電源を接続しても反応がない場合は、電源ボタンを2〜3秒長押しすると良い。