を起動し、 domU Zephyr を複数立ち上げる取組み Xen QEMU/arm64 dom0 domU domU Zephyr Zephyr domU Zephyr Linux 何がうれしい? ⇒ 複数の CPU で個別に Zephyr を動かす環境を再現できる ⇒ コケても再起動がさらに簡単 Host PC OS Dom0: domU を制御する特権OS DomU: 仮想化されたドメイン
<*> VFAT (Windows-95) fs support Native language support ---> <*> Codepage 437 (United States, Canada) <*> NLS ISO 8859-1 (Latin 1; Western European Languages) make linux-menuconfig Kernel Features ---> [*] Xen guest support on ARM64 • Xen を有効化 • ( 設定などを置く) FAT filesystem を有効化
rootfs.cpio.gz rootfs.ext2 rootfs.ext4 start-qemu.sh xen $ ./start-qemu.sh Booting Linux on physical CPU 0x0000000000 [0x410fd034] Linux version 6.12.47 (hayashi@ubuntu) ... random: crng init done Machine model: linux,dummy-virt efi: UEFI not found. ... make start-qemu.sh を起動してビルドできていることを確認しておく
config from /boot/domU-zephyr2.cfg [00:00:00.000,000] <inf> xen_events: xen_events_init: events inited [00:00:00.000,000] <inf> uart_hvc_xen: Xen HVC inited successfully *** Booting Zephyr OS build v4.2.1-16-ga0ae60640381 *** thread_a: Hello World from cpu 0 on xenvm! thread_b: Hello World from cpu 0 on xenvm! thread_a: Hello World from cpu 0 on xenvm! thread_b: Hello World from cpu 0 on xenvm! # xl console domU-zephyr uart:~$ # xl console domU-zephyr2 thread_a: Hello World from cpu 0 on xenvm! thread_b: Hello World from cpu 0 on xenvm! thread_a: Hello World from cpu 0 on xenvm! thread_b: Hello World from cpu 0 on xenvm! # xl list Name ID Mem VCPUs State Time(s) Domain-0 0 512 4 r----- 11.4 domU-zephyr 1 16 1 -b---- 0.0 domU-zephyr2 2 16 1 -b---- 1.3 • domU Zephyr2 を起動、1 と2 を切替 domU-1 に切替 domU-2 に切替 動作中のdom を確認 domU-2 を起動
Xen の問題ではなく,Host 側 OS の要因と思われる PC Ubuntu 24.04 (QEMU8.2.2) NG PC Ubuntu 24.04 QEMU10.1.50 NG WSL2 Ubuntu 24.04 (QEMU8.2.2) NG WSL2 Ubuntu 24.04 QEMU10.1.50 NG PC Ubuntu 22.04 (QEMU6.2.0) OK PC Ubuntu 22.04 QEMU10.1.50 OK WSL2 Ubuntu 22.04 (QEMU6.2.0) OK やむを得ず Ubuntu 22.04 に Fallback してデモへ…