windows下使用quem虚拟机运行树莓派镜像

您所在的位置:网站首页 树莓派400装Windows windows下使用quem虚拟机运行树莓派镜像

windows下使用quem虚拟机运行树莓派镜像

2023-04-26 01:25| 来源: 网络整理| 查看: 265

获取树莓派镜像 从官网下载原生镜像 我们也会从一些树莓派的厂商获取到定制的镜像; 从github获取到树莓派源码,编译得到; 安装qemu

qemu是虚拟机,AndroidStudio使用虚拟机的也是这玩意;大家可以去官网下载quem,下载地址: 32位qemu下载地址: https://qemu.weilnetz.de/w32/ 64位qemu下载地址: https://qemu.weilnetz.de/w64/

当然,要是不嫌麻烦,也是可以通过编译quem源码得到安装包,下载源码也有两种方式,一种是官网下载源码压缩包,一种是通过github下载: 直接下载软件包编译安装:

wget https://download.qemu.org/qemu-2.11.1.tar.xz tar xvJf qemu-2.11.1.tar.xz cd qemu-2.11.1 ./configure make make install

通过git克隆软件包编译安装

git clone git://git.qemu.org/qemu.git --branch v2.11.1 --single-branch --depth 1 cd qemu ./configure make 制作树莓派内核 从镜像中提取内核

使用quem启动树莓派镜像,就需要指定树莓派的内核,获取树莓派内核有两种方式,一种是直接从树莓派镜像中提取,这个比较简单,就是挂载树莓派img镜像,从里面提取到对应树莓派版本的*.img和*.dtb文件; 比如我的是树莓派3b+,那么dtb为:bcm2710-rpi-3-b-plus.dtb

*.dtd文件是设备树引导文件,对应树莓派的cpu及版本

而内核文件的话,就是镜像目录下的kernel7.img ,细心的朋友会发现同级目录下还有一个kernel.img,这两个的区别在于:

kernel.img 对应 RPi 1B, 1A, A+, B+, 2B(第一版) Z, Z (摄像头版本), ZW, CM1 kernel7.img 对应 RPi2B2, RPi3B, CM3 and CM3L.

所以在这里我们使用的是kernel7.img;

自己编译内核文件

第二种方式是自己编译了,作为程序员,我个人是比较喜欢自己编译的,首先我们需要下载到内核源码,这个源码我们可以从前面提到的github上面下载:https://github.com/raspberrypi/linux.git

因为内核版本较多,而且相对来说都比较大,我们可以选择合适的版本后通过克隆唯一分支来下载该版本。 git clone git://github.com/raspberrypi/linux.git –single-branch rpi-4.9.y –depth 1

编译的话自然就是用make指令了,在这之前我们需要安装交叉编译环境,已经安装可以跳过:

#依赖安装arm交叉编译环境: sudo apt-get install gcc-arm-linux-gnueabihf #下载官方提供的交叉编译工具 git clone git clone https://github.com/raspberrypi/tools.git

接下来就是配置好编译环境,执行编译:

#编译kernel7.img KERNEL=kernel7 #初始化配置文件 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig #配置内核模块 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig #编译内核及dtb文件 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage dtbs #将内核及dtb文件拷贝到自定义目录 cp arch/arm/boot/zImage ~/kernel7.img cp qemu-rpi-kernel/linux/arch/arm/boot/dts/bcm2709-rpi-2-b.dtb ~/bcm2709-rpi-2-b.dtb 运行虚拟机 C:\Program Files\qemu>qemu-system-arm -M raspi2 -kernel F:\zImage -sd E:\BaiduN etdiskDownload\zhonglunshun-2018-07-15.img -append "root=/dev/mmcblk0p2 rootwai t" -dtb F:\bcm2710-rpi-3-b-plus.dtb -m 1024M

大家需要注意的地方是,F:\bcm2710-rpi-3-b-plus.dtb是我编译后再编译目录下\rpi-4.9.y\arch\arm\boot\dts\获取到的,而F:\zImage其实就是镜像文件中的kernel7.img,这个文件位于\rpi-4.9.y\arch\arm\boot\目录下;

然后我们就能看到树莓派镜像已经启动了,好好享受吧;

额外知识:

从厂商或者第三方rom获取到的镜像可能有两个分区,那么在挂载的时候会提示挂载失败,正确的做法是指定挂载的分区: 首先执行fdisk命令,查看分区状况:

fdisk zhonglunshun-2018-07-15.img 然后输入p查看分区状态

我们看到:

Command (m for help): p Disk zhonglunshun-2018-07-15.img: 7.4 GiB, 7948206080 bytes, 15523840 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x89ca6aff Device Boot Start End Sectors Size Id Type zhonglunshun-2018-07-15.img1 8192 93814 85623 41.8M c W95 FAT32 (LBA) zhonglunshun-2018-07-15.img2 94208 15523839 15429632 7.4G 83 Linux

那么第二个img的起始地址就是512x8192=4194304

所以执行mount -o loop,offset=41943042 zhonglunshun-2018-07-15.img /mnt/ 才能把这个img挂载上去



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3