Ubuntu19.10使用Qemu安装树莓派

之前一直是在Windows下鼓捣虚拟机,这次试试qemu

安装

安装qemu

1
sudo apt install qemu

安装树莓派

在github上找到相应版本的内核和设备树文件。

先创建一个项目目录,把镜像文件、设备树文件,和内核文件都放进去

然后fdisk -l 2020-02-13-raspbian-buster.img查看硬盘实体使用情况

img2的起点地址乘以单元扇区大小,得到镜像应该挂载的偏移量。

sudo mount -v -o offset=272629760 -t ext4 ~/qemu_raspi/2020-02-13-raspbian-buster.img /mnt/raspbian其中的/mnt/raspbian文件夹要提前建好

接下来编辑/mnt/raspbian/ld.so.preload文件,将其中的内容注释(行首加“#”注释),然后使用umount卸载已经加载的文件系统

1
sudo umount /mnt/raspbian

然后执行模拟树莓派的命令,参考github上的说明:

修改相关参数,最终命令如下:

1
qemu-system-arm -kernel ~/qemu_raspi/kernel-qemu-4.19.50-buster -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ~/qemu_raspi/2020-02-13-raspbian-buster.img -redir tcp:5022::22 -no-reboot

其中参数可以通过使用qemu-system-arm -help | grep "\-参数"的命令形式,查看命令的相关介绍:

  • -M:设定模拟的开发板类型. versatilepb 是 ARM Versatile Platform Board
    • -cpu:select CPU (‘-cpu help’ for list)——指定cpu类型,模拟ARM1176 CPU. Raspberry Pi 板上搭载了 Broadcom BCM2835, 这个处理器用的是ARM1176JZ-F.
    • -m:[size=]megs[,slots=n,maxmem=size]——RAM的大小是256MB. 设定成比256MB大的值板子好像不能启动.
    • -drive:[file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]——指定要制作文件、输入类型、……
    • -net:[user|tap|bridge|socket][,option][,option][,…](use the -netdev option if possible instead)——大概是网络连接的一些参数
    • -dtb:file use ‘file’ as device tree image——是镜像文件解压出来有的一些文件,叫设备树引导文件,与内核文件共同编译成支持qemu启动的内核
    • -kernel:bzImage use ‘bzImage’ as kernel image——内核
    • -serial stdio——重定向Guest 的串口到Host的标准输入输出.
    • -append:cmdline use ‘cmdline’ as kernel command line——使用“ cmdline”作为内核命令行

然后便开始启动树莓派:

这一步我还以为是创建用户,想了一大会密码,

结果用户密码是固定的:用户名: pi, 密码: raspberry

终于登录成功了。

图形化界面

上面可以看到是没有图形化界面的,但是运行最开始时有写vnc的相关信息,所以再装一下vnc viewer

官网下载即可。

安装

软件自动显示了5900端口的树莓派

但是还是没有图形界面显示

参考其中的日志

经过排查,是内核文件不匹配造成的,这一点在提供内核的github界面也有说明,万能设备树文件支持的是stretch系列的树莓派

所以更换镜像为:2018-06-27-raspbian-stretch.img,内核更改为:kernel-qemu-4.14.79-stretch,重新按照之前的步骤重复即可。最终打开图形界面:

下载

树莓派——清华开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/raspbian-images/raspbian/images/

树莓派——树莓派实验室(好像是官网):https://shumeipai.nxez.com/download#os

vncviewer:https://www.realvnc.com/en/connect/download/viewer/

参考文献

QEMU搭建树莓派环境
使用qemu虚拟机运行树莓派(linux kernel 4.9)
Windows中使用QEMU创建树莓派虚拟机
用QEMU模拟树莓派Raspberry Pi的方法
qemu-rpi-kernel
RASPBERRY PI ON QEMU
ubuntu下使用vnc viewer