Ubuntu19.10使用Qemu安装树莓派
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