はじめに
Yocto 4.3.3を用いてリファレンスディストリビューションであるPokyをビルドし、QEMUで動かしてみました。
参考にしたサイト
構成図
+------------------------------------------------------+
| +--------------------------------------------------+ |
| | +----------------------------------------------+ | |
| | | Poky | | |
| | +----------------------------------------------+ | |
| | QEMU | |
| +--------------------------------------------------+ |
| Ubuntu Server |
+------------------------------------------------------+
各ソフトウェアのバージョン
Ubuntu Server
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"
QEMU
$ qemu-system-aarch64 --version
QEMU emulator version 8.1.4
Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers
- Pokyをビルドした時に生成されたqemu-system-aarch64を使用しました。
/home/iotsudo/github/yocto/yocto-4.3.3/poky/build/tmp/work/x86_64-linux/qemu-helper-native/1.0/recipe-sysroot-native/usr/bin/qemu-system-aarch64
- 後述のrunqemuコマンドを実行すると、上記コマンドが実行されます。
前提条件
- sudo権限を持ったiotsudoというユーザで操作しました。
- 以降の作業は、iotsudoユーザのホームディレクトリ/home/iotsudoの配下で行いました。
リポジトリのクローン
- 以下のディレクトリを作成し、そのディレクトリに移動してください。
mkdir -p /home/iotsudo/github/yocto/yocto-4.3.3
cd /home/iotsudo/github/yocto/yocto-4.3.3
- yocto-4.3.3のリポジトリをクローンしてください。
git clone -b yocto-4.3.3 https://github.com/yoctoproject/poky.git
Pokyのビルド
- 以下のディレクトリに移動してください。
cd /home/iotsdo/github/yocto/yocto-4.3.3/poky
- 以下を実行し、環境変数の設定を行ってください。
source oe-init-build-env
- vimなどでconf/local.confの末尾に以下を挿入してください。
MACHINE = "qemuarm64"
- bitbakeコマンドでPokyのビルドを行ってください。
bitbake core-image-weston
- 今回はwestonを使いたかったので、core-image-westonを指定しました。
- 最小限の構成でビルドする場合は、core-image-minimalを指定してください。
PokyをQEMUで実行する
-
以下のコマンドを実行してください。
runqemu qemuarm64
- GUIを使わない場合は、以下のコマンドを実行してください。
runqemu qemuarm64 nographic
- GUIを使わない場合は、以下のコマンドを実行してください。
-
- FIXME: Windows 11 -- RDP --> Ubuntu Server 20.04 -- QEMU --> Pokyで接続しているためか、ターミナルに「ls」と打とうとすると「lllllllllllsssssssss」となる事象が起きています…うーんQEMUだとつらいか…
さいごに
本当はGUIでいろいろ試したいことがあったのですが、QEMU環境だとちょっとつらいようです…