How to make your own SD-bootable ROM/zh
Contents
1 Change the files in rootfs.img and boot.img
simg2img rootfs.img r.img mount -t ext4 -o loop r.img /mnt … To Change Something … umount /mnt img2simg r.img rootfs.img
2 制作4418/6818平台文件系统映象文件
这里介绍如何将一个目录制作成映像文件,例如:
将boot目录制作成 boot.img
将rootfs目录制作成 rootfs.img
这些文件被用于 eflasher,烧写到eMMC。
1) 下载 https://github.com/friendlyarm/debian_nanopi2 ;
2) 复制 SD卡中的 boot 分区下的文件到debian_nanopi2/boot ; 复制SD卡中的 rootfs分区下的文件到 debian_nanopi2/rootfs ;
根据自己的需要可以再修改 boot 和 rootfs 目录下的文件。
建议删除rootfs 目录下的文件 etc/fs.resized 否则将不会自动扩展分区。
3) 使用 debian_nanopi2 下的 make_ext4fs 来制作 img:
./tools/make_ext4fs -s -l 67108864 -a root -L boot boot.img boot ./tools/make_ext4fs -s -l 3670016000 -a root -L rootfs rootfs.img rootfs
有一点需要注意的是rootfs.img的大小需要大于rootfs目录的大小,我们默认提供的各个系统的rom,用的是以下值:
lubuntu: 5368709120
debian: 3670016000
friendlycore: 3670016000
4) 复制新生成的 boot.img 和 root.img 替换 eflasher 的FAT分区 core-qte 目录下的文件,然后即可烧写;
3 制作H3/H5平台Linux映象文件
这里介绍如何将一个目录制作成映像文件,例如:
将boot目录制作成 boot.img
将rootfs目录制作成 rootfs.img
这些文件被用于 eflasher,烧写到eMMC。
在PC机上执行下列操作:
1) 下载相关工具: EFlasher-build-tools;解压后的build-boot-fat.sh用于生成fat格式的boot.img,make_ext4fs用于生成ext4格式的rootfs.img。
2) 将待烧写 boot 分区目录制作为 fat 格式的 img 文件:
$ ls /SD boot rootfs $ ./build-boot-fat.sh boot.img /SD/boot 40
40 表示boot.img的大小为40M。
3) 将待烧写的 rootfs 分区目录制作为 ext4 格式的 img 文件:
$ ls /SD boot rootfs $ cd /SD $ ./make_ext4fs -s -l 2097152000 -a root -L rootfs rootfs.img ./rootfs
-l 用于指定 img 文件的大小,单位是Byte,2097152000 Byte=2000MB,必须大于实际目录的大小。
4) 用新生成的boot.img和root.img替换eflasher-ROM的FRIENDLYARM分区对应系统目录下的同名文件即可,以FriendlyCore(基于U-boot-2017.x和Linux-4.14)为例:
4 用自制系统制作可启动的SD卡或者SD卡映象
在产品量产阶段,通常需要为自已的定制过的产品制作专用的系统映象,这里的系统映象是指 Android编译生成的 boot.img、system.img,或者Ubuntu的根文件系统 rootfs.img 等等。
这个章节将介绍如何用自已编译的系统映象,制作一张可以启动的SD卡,或者,制作一个完整的系统映象文件,完整的系统映象可用于产品量产时批量生成SD卡。
下面以制作S5P4418 Android 启动卡为例,命令如下:
git clone https://github.com/friendlyarm/sd-fuse_nanopi2.git cd sd-fuse_nanopi2 wget http://112.124.9.243/dvdfiles/S5P4418/images-for-eflasher/android-lollipop-images.tgz tar xvzf android-lollipop-images.tgz
注:如果是S5P6818,你需要将sd-fuse_nanopi2.git改为sd-fuse_nanopi3.git,S5P4418改为S5P6818。
现在,请将自已编译生成的 Android映象替换掉Android目录下的同名文件,然后用以下命令制作一张可以启动的SD卡:
sudo ./fusing.sh /dev/sde android
注:请将/dev/sde替换为真实的SD卡设备名称。
如果要制成一个完整的系统映象文件,命令改为:
sudo ./mkimage.sh android