在proxmox中模拟树莓派

总体来说,有2种思路:

1、可以通过proxmox中的qemu-system-arm命令来模拟,这种方式需要 使用github上经过修改的kernel以及dtb(设备树文件,dt表示device tree)
,总体来说需要3个文件:raspbian的img文件(需要从官网下载)、dtb文件、经过修改的kernel(这2个文件需要从github上下载)
raspbian官网下载地址:
http://downloads.raspberrypi.org/raspbian/images/

dtb文件以及kernel下载地址:
https://github.com/dhruvvyas90/qemu-rpi-kernel 在此github上还有详细的使用说明

在proxmox上使用,难点: 注意配套使用proxmox的bridge网卡而不要使用github示例中的qemu内置nat网卡

qemu-system-arm \
-M versatilepb \
-cpu arm1176 \
-m 256 \
-hda /root/raspbian/2020-02-13-raspbian-buster.img \
-net user,hostfwd=tcp::5022-:22 \
-dtb /root/raspbian/versatile-pb-buster.dtb \
-kernel /root/raspbian/kernel-qemu-4.19.50-buster \
-append 'root=/dev/sda2 panic=1' \
-no-reboot
qemu-system-arm \
-machine versatilepb \
-cpu arm1176 \
-m 256 \
-hda /root/raspbian/2020-02-13-raspbian-buster.img \
-netdev 'type=tap,id=net1,ifname=tap101i1,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
-device 'virtio-net-pci,mac=1A:E8:8F:FA:D7:5C,netdev=net1,bus=pci.0,addr=0x13,id=net1,bootindex=301' \
-dtb /root/raspbian/versatile-pb-buster.dtb \
-kernel /root/raspbian/kernel-qemu-4.19.50-buster \
-append 'root=/dev/sda2 panic=1' \
-no-reboot

提示错误:qemu-system-arm: -machine accel=kvm: No accelerator found

以上的netdev bridge配置参考proxmox原有的bridge的netdev配置:
-netdev 'type=tap,id=net0,ifname=tap101i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on'
-device 'virtio-net-pci,mac=C2:70:7B:D0:05:14,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \

-netdev 'type=tap,id=net1,ifname=tap101i1,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on'
-device 'virtio-net-pci,mac=1A:E8:8F:FA:D7:C5,netdev=net1,bus=pci.0,addr=0x13,id=net1,bootindex=301'
目前不太理解其中vhost是什么意思??

2、可以使用通过proxmox来模拟正常的raspbian x86系统,下载地址:
http://downloads.raspberrypi.org/rpd_x86/images/

raspbian x86系统的介绍:
https://www.raspberrypi.org/downloads/raspberry-pi-desktop/

参考:
使用QEMU模拟树莓派Raspberry Pi 重点参考 https://cloud.tencent.com/developer/article/1685107
使用QEMU扩展树莓派镜像增加剩余使用空间 https://blog.csdn.net/talkxin/article/details/81264605 这篇文章没有测试过

上一篇:如何使用QEMU调试Linux内核模块?


下一篇:golang 标准库间依赖的可视化展示