我尝试使用QEMU,尤其是使用了virt board和设备树,但是没有太多关于它的文档。 我设法模仿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
。 -drive
选项定义了一个新驱动器,因为它是SD驱动器,我需要告诉qemu将/dev/mmcblk0
与-append
一起使用。如果我说错了,请纠正我。
首先,我只想在不使用sd界面的情况下模拟这台机器,但不知何故只能设法这样做。 但更重要的是,我想模仿一个有益的董事会。
答案 0 :(得分:0)
您无法在不使用SD接口的情况下运行vexpress-a9主板,因为这是硬件用于块设备的唯一接口,因此您的选择是" SD"或"根本没有阻止设备"。
我们在QEMU上运行Arm guest的文档在这里https://wiki.qemu.org/Documentation/Platforms/ARM,该页面链接到了一个教程,用于启动Debian上的' virt'适用于64位访客的主板: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/所以我会从您想要的任何一个开始。