针对在ubuntu上所有步骤都走完了,最后一步启动树莓派解压镜像一直黑屏启动不了桌面,由于实验室电脑是ubuntu,所以一开始就在ubuntu上搭建的,现在在windows上搭建一遍试试。
安装qemu模拟器
qemu官网下载安装包
进入下载界面,选择windows,然后下载32位或者64位的.exe安装包,我下的qemu-w64-setup-20181127.exe文件大小大约100M。
然后想安装就行。
搭建树莓派arm环境
搭建输煤派的环境在ubuntu上进行,和ubuntu上安装的完全一样。
注意不要一直用su(root)下执行,su用户下新建的文件用户组都是root,后面很多的地方会因为权限不够无法访问。
下载raspbian镜像和内核
raspbian官方的镜像下载版本,我们下载Jessie版本的镜像,qemu文档中说了对Jessie版本的支持的最好(other versions might work, but Jessie is recommended)。
官方下载地址:raspbian-2017-04-10,我们下载里面的2017-04-10-raspbian-jessie.zip文件,文件大小大约是1.5G。
然后我们去下载为qemu定制的树莓派内核,下载链接
对于我们的实验,上面两个文件就是我们服务器上的那个20172017-04-10-raspbian-jessie.zip文件(raspbian镜像)和kernel-qemu-4.4.34-jessie文件(为qemu定制的内核文件),把他们下载就可以,不用去官网下载了。
解压镜像文件
我们在下载到的镜像文件目录下解压镜像文件
1 2 3 4 |
unzip 2017-04-10-raspbian-jessie.zip mv 2017-04-10-raspbian-jessie.img rpi.img # 上面这一步是重命名,只是为了后面输入起来方便,不重名或者改成其他名字都行 |
挂载镜像
在解压后的镜像(.img文件)目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
fdisk -lu rpi.img # 执行上面命令后会输出下面的信息 Disk rpi.img: 4 GiB, 4285005824 bytes, 8369152 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: 0x402e4a57 Device Boot Start End Sectors Size Id Type rpi.img1 8192 92159 83968 41M c W95 FAT32 (LBA) rpi.img2 92160 8369151 8276992 4G 83 Linux |
从中可以看出该镜像文件共有两个分区,特别注意第二个分区的起点扇区,每个扇区是512个字节,由此算出第二分区起点位置是512 * 92160。
接下载我们把镜像文件挂载到一个目录下面,这样就可以通过这个目录访问这个镜像文件里面的内容了:
在解压后的镜像文件目录下执行命令:
1 2 3 4 |
mkdir tmp sudo mount -v -o offset=$((512 * 92160)) -t ext4 rpi.img tmp # 上面的这个(512 * 92160)的值是根据上面fdisk输出信息来的,是第二个分区起始位置值乘上512 |
修改fstab
1 2 3 4 5 6 7 |
sudo gedit tmp/etc/fstab # 打开上面这个文件后,修改前面的挂载点,最终内容如下: proc /proc proc defaults 0 0 /dev/sda1 /boot vfat defaults 0 2 /dev/sda2 / ext4 defaults,noatime 0 1 # 然后保存文件 |
修改ld.so.preload
1 2 3 4 5 |
sudo gedit tmp/etc/ld.so.preload # 打开上面这个文件后,注释掉文件内容(前面加上#),最终内容如下: #/usr/lib/arm-linux-gnueabihf/libarmmem.so # 注:若不进行此项修改,将启动过程中内核会崩溃掉. |
往树莓派中拷贝bomb可执行文件
将可执行文件拷贝到tmp/home/pi/目录下
1 2 |
cp bomb tmp/home/pi |
上面的步骤完毕后卸载镜像
1 2 |
sudo umount tmp |
然后这一步完成以后,把处理后的镜像文件rpi.img拷贝到window下,同时把修改过的内核文件(kernel-qemu-4.4.34-jessie)也拷贝到windows下。
启动树莓派
以管理员方式打开windows命令行,然后进入到安装qemu的目录,默认是:C:\Program Files\qemu
1 2 3 4 5 |
cd C:\Program Files\qemu # 执行命令启动树莓派 qemu-system-arm.exe -kernel D:\kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda D:\rpi.img # 注意上面的kernel-qemu-4.4.34-jessie和rpi.img要制定正确的路径 |
然后就打开了树莓派系统了,直接可以用里面的终端调试程序。
where is the source code ?
bomb1
188
2 8
0 0
hello world
0 0 0 0 0 0
1 1
9?5
HAHA, the source code will be attached this Thursday..