我似乎无法得到迪特皮virt
在通用 ARM 64 位机器上启动盖姆。我正在使用 Raspberry Pi ARMv8 64 位 DietPi 映像(适用于 Raspberry Pi 4)。
我缺少/需要更改什么才能让 DietPi 在模拟中运行以进行用户空间软件开发?
我已经提取了内核、设备树和命令行。/etc/fstab
映像的使用分区 UUID :
$ cat /mnt/rpi/etc/fstab
#----------------------------------------------------------------
# TMPFS
#----------------------------------------------------------------
tmpfs /tmp tmpfs noatime,lazytime,nodev,nosuid,mode=1777
tmpfs /var/log tmpfs size=50M,noatime,lazytime,nodev,nosuid,mode=1777
#----------------------------------------------------------------
# PHYSICAL DRIVES
#----------------------------------------------------------------
PARTUUID=df909cde-02 / ext4 noatime,lazytime,rw 0 1
PARTUUID=df909cde-01 /boot vfat noatime,lazytime,rw 0 2
DietPi自带cmdline.txt
的是:
root=PARTUUID=df909cde-02 rootfstype=ext4 rootwait fsck.repair=yes net.ifnames=0 logo.nologo console=serial0,115200 console=tty1
我在启动过程中获得的最远的是这个qemu-system-aarch64
调用,它最终挂在Waiting for root device PARTUUID...
:
qemu-system-aarch64 \
-M virt \
-cpu cortex-a72 \
-m 256 \
-kernel kernel8.img \
-drive file=DietPi_RPi-ARMv8-Bullseye.img \
-append "root=PARTUUID=df909cde-02 rootfstype=ext4 rootwait fsck.repair=yes
net.ifnames=0 logo.nologo" \
-no-reboot \
-serial stdio
[ 0.827340] Initializing XFRM netlink socket
[ 0.827593] NET: Registered PF_PACKET protocol family
[ 0.828221] Key type dns_resolver registered
[ 0.829502] registered taskstats version 1
[ 0.829662] Loading compiled-in X.509 certificates
[ 0.830795] Key type ._fscrypt registered
[ 0.830908] Key type .fscrypt registered
[ 0.830998] Key type fscrypt-provisioning registered
[ 0.834275] of_cfs_init
[ 0.835387] of_cfs_init: OK
[ 0.843886] uart-pl011 9000000.pl011: no DMA platform data
[ 0.846894] Waiting for root device PARTUUID=df909cde-02...
答案1
这个帖子似乎已经有了答案。基于此,我可以像这样启动 ARMv8 映像(在复制kernel8.img
并bcm2710-rpi-3-b.dtb
从映像中复制出来之后):
qemu-system-aarch64 \
-m 1024 \
-M raspi3 \
-kernel kernel8.img \
-dtb bcm2710-rpi-3-b.dtb \
-drive file=DietPi_RPi-ARMv8-Bullseye.img,format=raw \
-append "console=ttyAMA0 root=/dev/mmcblk0p2 rw rootwait rootfstype=ext4" \
-device usb-net,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::2222-:22 \
-serial stdio
启动没有问题,但我无法访问控制台。不过,我可以使用 ssh 登录:
$ ssh -p 2222 root@localhost
Warning: Permanently added '[localhost]:2222' (ED25519) to the list of known hosts.
root@localhost's password:
输入默认密码 ( dietpi
),即可完成设置。 DietPi 希望在您首次登录时运行一堆初始化脚本,但之后一切似乎都按预期工作。
更新1:嗯,一次,直到重新启动。 Dietpi 在初始配置后会禁用 ssh 吗?试图进行调查,但我根本无法访问控制台,因此如果没有网络,我似乎无法正常工作。
更新2*:我遇到的问题似乎完全是由于“dietpi”图像造成的。如果我只是使用Raspberry Pi 操作系统 64 位 Lite 映像,然后控制台访问就可以正常工作了。
“用户”模式网络似乎无法在重新启动后继续存在,但设置分路设备效果很好。
这就是我最终使用的命令行:
qemu-system-aarch64 \
-M raspi3 \
-kernel kernel8.img \
-append "root=/dev/mmcblk0p2 rw rootwait rootfstype=ext4 console=ttyAMA0" \
-dtb bcm2710-rpi-3-b-plus.dtb \
-m 1024 \
-drive file=/var/lib/libvirt/images/raspios-work.img,format=raw \
-netdev tap,id=net0,script=no,downscript=no,ifname=rpi0 \
-device usb-net,netdev=net0 \
-nographic \
-serial mon:stdio