我正在尝试使用QEMU,特别是使用virt板和设备树,但是关于它的文档并不多。我成功地模拟了一块vexpress a9板,并在上面安装了archlinux,这主要归功于这个link,命令如下:
wget http://archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz
mkdir archlinux_arm_root
bsdtar -xpf ArchLinuxARM-armv7-latest.tar.gz -C archlinux_arm_root
qemu-img create -f raw disk_img.img 1G
mkfs.ext4 -F disk_img.img
sudo mkdir /mnt/root
sudo mount -o loop disk_img.img /mnt/root
sudo cp -rf archlinux_arm_root/* /mnt/root/
sudo umount /mnt/root
cp archlinux_arm_root/boot/zImage zImage
cp archlinux_arm_root/boot/dtbs/vexpress-v2p-ca9.dtb device_tree.dtb
qemu-system-arm -m 1024M -M vexpress-a9 -cpu cortex-a9 -kernel zImage -dtb device_tree.dtb -append "root=/dev/mmcblk0 rw roottype=ext4 console=ttyAMA0" -drive if=sd,driver=raw,cache=writeback,file=disk_img.img -nographic我创建了一个原始磁盘镜像,然后手动安装archlinux (通过挂载磁盘镜像并在其上复制arch的根文件系统)。用于模拟主板并在arch上启动的命令指定要使用的machine/cpu/kernel/device tree/disk image。qemu选项定义了一个新的驱动器,因为它是一个SD驱动器,所以我需要告诉-drive在-append中使用/dev/mmcblk0。如果我说错了什么,请纠正我。
首先,我只是想在不使用sd接口的情况下模拟这台机器,但不知何故无法做到这一点。但更重要的是,我想要效仿一个virt board。
发布于 2018-02-27 21:04:21
如果不使用SD接口,您就不能真正运行vexpress-a9板,因为这是硬件为块设备提供的唯一接口,因此您可以选择"SD“或"no block device”。
我们在QEMU上运行Arm来宾的文档在这里,https://wiki.qemu.org/Documentation/Platforms/ARM,该页面链接到了在64位来宾的“virt”板上引导Debian的教程:https://translatedcode.wordpress.com/2017/07/24/installing-debian-on-qemus-64-bit-arm-virt-board/和32位来宾的教程:https://translatedcode.wordpress.com/2016/11/03/installing-debian-on-qemus-32-bit-arm-virt-board/,所以我可以从你想要的任何一个开始。
https://stackoverflow.com/questions/48989937
复制相似问题