前回、結局WSL上ではbitbakeが実行できないということが分かり、どうしようかと悩んでいたのだが、結局AWSでマルチコアのサーバを借りてbitbakeの試行に再挑戦することにした。AWS EC2インスタンスはt2.2xlargeを借り、8コアで並列ビルドすることで高速化を図る。Ubuntu 18.04 LTSをインストールしたインスタンスを使用し、前回と全く同じようにリポジトリをセットアップしてビルドを試行した。ディスクはbitbake専用に300GBを用意した。
met-sifive
のダウンロードから。
$ mkdir riscv-sifive && cd riscv-sifive $ repo init -u git://github.com/sifive/meta-sifive -b 2020.03 -m tools/manifests/sifive.xml $ repo sync
$ . ./meta-sifive/setup.sh
$ PARALLEL_MAKE="-j 8" BB_NUMBER_THREADS=8 MACHINE=freedom-u540 bitbake demo-coreip-cli
コア数を8に増強してビルドを実行している。メモリも十分搭載しているのでビルド自体は問題ない。大体5~6時間でビルドが完了した。
ビルド終了すると、次に手っ取り早くQEMUで動かしたくなる。QEMUで動かすためにはMACHINE=freedom-u540
ではなくMACHINE=qemuriscv64
でビルドする必要があった。キャッシュが保存されているので2回目のビルドは速い。
$ PARALLEL_MAKE="-j 8" BB_NUMBER_THREADS=8 MACHINE=qemuriscv64 bitbake demo-coreip-cli
ビルドが完了すると、QEMUを実行した。
MACHINE=qemuriscv64 runqemu nographic slirp
無事にLinuxが起動した。ビルドのフローが正しく動作することが確認できた。