前言
之前我们已经介绍过 “为什么要用(我们)呢?算了就这样吧”使用buildroot编译树莓派的根文件系统以及镜像,但是烧写一直需要拷贝到Windows使用一些烧写工具来做。这样还是比较麻烦的,试想如果咱用的不是linux虚拟机呢?是不是还得专门搞个windows电脑来烧写系统
我擦这就小尴尬了。所以我们还是用原汁原味的linux完成所有工作吧!
分区工具获取
使用以下命令得到一个在linux上使用的分区工具,当然如果是你的主机需要扩容也是可以用它的,获取之后我们直接打开
sudo apt-get install gparted
gparted
打开之后就是这个样子,默认的分区场景是你的主机磁盘,建议你不要乱搞哟!
对SD卡分区
好了看过之后吧它关掉,这个时候咱还不能分自己的SD卡,
因为要首先先把你的SD卡插在电脑上才行
插上你的SD卡以后,如果你也用的虚拟机可以像我一样把你的SD卡挂到你的虚拟机上
挂上SD卡以后再次打开你的gparted可以选择你的SD卡了,我这里是一张32G的SD卡显示的是29.12G,记得挂上来之前先格式化,如果没有格式化也没关系,等会儿用gparted也是一样的。
可以看到我的SD卡是格式化过的贼拉干净
接下来删除所有分区重新分配,这里如果你是一张没格式化的SD卡直接删除所有分区就行右键delete,如果不能选中delete,先选umount
再delete
删除所有分区以后先右键new
分一个启动分区格式FAT16 大小32M
完了add
再搞个rootfs分区格式ext4 大小可以1024M
我这里省事就剩下空间全用了
这样搞完后提交,耐心等待即可hlep下面那个勾勾(√)就是提交
挂载分区并拷贝需要的镜像文件
做完这些以后在终端,进入到buildroot目录也就是你的镜像路径buildroot/output/images
创建一个mnt文件夹用来挂载
sudo mkdir mnt
sudo mkdir mnt/fat16
sudo mkdir mnt/ext4
完了之后用lsblk看一下你要挂载的SD卡在那里,我这里分别是sdb1和sdb2
使用以下命令挂载到我们刚刚创建的挂载目录
sudo mount /dev/sdb1 mnt/fat16/
sudo mount /dev/sdb2 mnt/ext4/
挂载完成后我们先拷贝boot目录需要的东西
1.拷贝.dtb设备树
2.拷贝zimage
3.拷贝rpi-firmware文件中的所有内容,当然不是都需要,非要纠结空间,可以和以前在Windows上烧录的相对比。
我们直接进入已挂载的fat16目录执行以下命令
sudo cp ../../bcm2708-rpi-zero-w.dtb ./
sudo cp ../../zImage ./
sudo cp ../../rpi-firmware/* ./ -rf
完了以后应该能看到以下内容
最后我们需要将文件系统压缩包拷贝到ext4并解压,同样进入已挂载的ext4目录
执行以下命令
sudo cp ../../rootfs.tar ./
sudo tar vxf rootfs.tar
sudo rm rootfs.tar
完成以后应该是这个样子
卸载SD卡分区并运行树莓派
最后的最后到推到之前挂载mnt的目录buildroot/output/images开始卸载
sudo umount mnt/fat16
sudo umount mnt/ext4
执行完了拔掉sd卡插到树莓派运行即可