针对在ubuntu上所有步骤都走完了,最后一步启动树莓派解压镜像一直黑屏启动不了桌面,由于实验室电脑是ubuntu,所以一开始就在ubuntu上搭建的,现在在windows上搭建一遍试试。
安装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定制的内核文件),把他们下载就可以,不用去官网下载了。
解压镜像文件
我们在下载到的镜像文件目录下解压镜像文件
unzip 2017-04-10-raspbian-jessie.zip
mv 2017-04-10-raspbian-jessie.img rpi.img
# 上面这一步是重命名,只是为了后面输入起来方便,不重名或者改成其他名字都行
挂载镜像
在解压后的镜像(.img文件)目录下:
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。
接下载我们把镜像文件挂载到一个目录下面,这样就可以通过这个目录访问这个镜像文件里面的内容了:
在解压后的镜像文件目录下执行命令:
mkdir tmp
sudo mount -v -o offset=$((512 * 92160)) -t ext4 rpi.img tmp
# 上面的这个(512 * 92160)的值是根据上面fdisk输出信息来的,是第二个分区起始位置值乘上512
修改fstab
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
sudo gedit tmp/etc/ld.so.preload
# 打开上面这个文件后,注释掉文件内容(前面加上#),最终内容如下:
#/usr/lib/arm-linux-gnueabihf/libarmmem.so
# 注:若不进行此项修改,将启动过程中内核会崩溃掉.
往树莓派中拷贝bomb可执行文件
将可执行文件拷贝到tmp/home/pi/目录下
cp bomb tmp/home/pi
上面的步骤完毕后卸载镜像
sudo umount tmp
然后这一步完成以后,把处理后的镜像文件rpi.img拷贝到window下,同时把修改过的内核文件(kernel-qemu-4.4.34-jessie)也拷贝到windows下。
启动树莓派
以管理员方式打开windows命令行,然后进入到安装qemu的目录,默认是:C:\Program Files\qemu
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..