FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

SiFive Freedom-u-SDKのアップデート試行 (2. native Linux環境で再試行)

前回、結局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が起動した。ビルドのフローが正しく動作することが確認できた。

f:id:msyksphinz:20200407013726g:plain
QEMULinuxが起動した様子