GitHub上に コンパイル済みの bullseye 用ファイルが置かれているのに気付いたので、動くかどうか試してみました。
※2022/01/14時点の情報です
参照URL→ https://github.com/dhruvvyas90/qemu-rpi-kernel/wiki
手順
- WLS2上にqemu-system-arc をインストールする
- 2021-10-30-raspios-bullseye-armhf-lite.img を入手する
入手元→ http://ftp.jaist.ac.jp/pub/raspberrypi/raspios_lite_armhf/images/raspios_lite_armhf-2021-11-08/ - kernel-qemu-5.10.63-bullseye と versatile-pb-bullseye-5.10.63.dtb を入手する
入手元→ https://github.com/dhruvvyas90/qemu-rpi-kernel - imgファイルのリサイズ
~# qemu-img resize 2021-10-30-raspios-bullseye-armhf-lite.img 8G
- 参照URLを元に、次のような方法で一時的にラズパイOSを起動する
qemu-system-arm -kernel kernel-qemu-5.10.63-bullseye \ -dtb ./versatile-pb-bullseye-5.10.63.dtb \ -cpu arm1176 \ -m 256 \ -M versatilepb \ -no-reboot \ -serial stdio \ -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" \ -hda 2021-10-30-raspios-bullseye-armhf-lite.img
これでラズパイOSが起動します
- /etc/ld.so.preload を編集
# vi /etc/ld.so.preload #/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so # ↑この行をコメントアウト
- /etc/udev/rules.d/90-qemu.rules を作成する
# vi /etc/udev/rules.d/90-qemu.rules KERNEL=="sda", SYMLINK+="mmcblk0" KERNEL=="sda?", SYMLINK+="mmcblk0p%n" KERNEL=="sda2", SYMLINK+="root"
- OS停止
poweroff(効かなければ sync; sync; ののち、^Cでvm強制シャットダウン) - 起動スクリプト作成
qemu-system-arm -kernel kernel-qemu-5.10.63-bullseye \ -dtb ./versatile-pb-bullseye-5.10.63.dtb \ -cpu arm1176 \ -m 256 \ -M versatilepb \ -no-reboot \ -serial stdio \ -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \ -drive "file=2021-10-30-raspios-bullseye-armhf-lite.img,index=0,media=disk,format=raw"
※64bit版は今日時点で動かせなかった
※usbデバイスも未対応?