Difference between revisions of "How to make your own SD-bootable ROM/zh"
From FriendlyELEC WiKi
(→制作RK3399平台的系统映像) |
(updated by API) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
==制作量产用的文件系统 (以s5p4418为例)== | ==制作量产用的文件系统 (以s5p4418为例)== | ||
+ | ===烧写系统到emmc,按你的项目要求定制系统=== | ||
+ | * 用 s5p4418-eflasher-friendlycore-xxx.img 的固件 制做一张 tf 卡<br /> | ||
+ | * 用 tf 卡启动,进入烧写预览界面,选中 Disable overlay filesystem, 然后正常烧写系统到 emmc,如果没有看到 Disable overlay filesystem 选项,说明你的固件不是新版本,先去下载新固件:dl.friendlyelec.com <br /> | ||
+ | * 拨出 tf 卡,用 emmc 启动到 friendlycore<br /> | ||
+ | * 用 mount 命令查看根目录,确定根目录的挂载类型不是 overlay<br /> | ||
+ | * 正常安装你想要的软件,配置系统<br /> | ||
+ | |||
+ | ===从emmc中把文件系统备份出来=== | ||
+ | * 准备一个 u盘,格式化分区为 ext4 格式<br /> | ||
+ | * 再次用 tf 卡启动系统,并拨入u盘<br /> | ||
+ | * 用电脑上用 ssh 登录: ssh root@192.168.1.231,密码是 fa<br /> | ||
+ | * 用以下命令挂载 emmc 的 rootfs 分区到 /mnt/rootfs目录: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | mkdir /mnt/rootfs | ||
+ | mount /dev/mmcblk1p2 /mnt/rootfs | ||
+ | </syntaxhighlight> | ||
+ | * 挂载 u盘下到 /mnt/udisk (如何没有挂载), 然后创建 /mnt/udisk/rootfs 目录 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | mount /dev/sdb1 /mnt/udisk | ||
+ | mkdir /mnt/udisk/rootfs | ||
+ | </syntaxhighlight> | ||
+ | 注:有时 u盘的设备名是 /dev/sda1已经自动挂载到 /mnt/udisk 目录<br /> | ||
+ | <br /> | ||
+ | * 安装 rsync 工具 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | wget http://112.124.9.243/cn-apt-source.sh | ||
+ | chmod 755 cn-apt-source.sh | ||
+ | ./cn-apt-source.sh | ||
+ | apt-get update | ||
+ | apt-get -y install rsync | ||
+ | </syntaxhighlight> | ||
+ | * 将 emmc 的 rootfs 分区文件拷贝到 u盘,忽略掉特殊文件: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/swapfile"} /mnt/rootfs/* /mnt/udisk/rootfs | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===用备份出来的文件系统,重新制作用于量产的固件=== | ||
+ | * 将 u盘拷到ubuntu电脑上,挂载u盘到 /media/udisk<br /> | ||
+ | * 用 sd-fuse_s5p4418 重新制作 rootfs.img: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | git clone https://github.com/friendlyarm/sd-fuse_s5p4418.git | ||
+ | cd sd-fuse_s5p4418 | ||
+ | ./build-rootfs-img.sh /media/udisk/rootfs friendlycore | ||
+ | ./mk-emmc-image.sh friendlycore | ||
+ | </syntaxhighlight> | ||
+ | 现在,你可以将生成的 out/s5p4418-eflasher-friendlycore-xenial-4.4-YYYYMMDD.img 固件用于量产了。 | ||
==制作RK3399平台的系统映像== | ==制作RK3399平台的系统映像== | ||
Line 19: | Line 65: | ||
tar xzf /mnt/dvd/S5P4418/rootfs/rootfs-friendlycore-20190718.tgz | tar xzf /mnt/dvd/S5P4418/rootfs/rootfs-friendlycore-20190718.tgz | ||
sed "s/\${BOARD}/XXYYZZ/g" friendlycore/rootfs/etc/rc.local -i | sed "s/\${BOARD}/XXYYZZ/g" friendlycore/rootfs/etc/rc.local -i | ||
− | ./build-rootfs-img.sh friendlycore/rootfs friendlycore | + | ./build-rootfs-img.sh friendlycore/rootfs friendlycore |
./mk-emmc-image.sh friendlycore | ./mk-emmc-image.sh friendlycore | ||
dd if=out/s5p4418-eflasher-friendlycore-20190730.img of=/dev/sdX bs=32M | dd if=out/s5p4418-eflasher-friendlycore-20190730.img of=/dev/sdX bs=32M | ||
Line 25: | Line 71: | ||
<br /> | <br /> | ||
上例中两个关键的命令:<br /> | 上例中两个关键的命令:<br /> | ||
− | ./build-rootfs-img.sh friendlycore/rootfs friendlycore | + | ./build-rootfs-img.sh friendlycore/rootfs friendlycore<br /> |
将 friendlycore/rootfs 目录制作成 rootfs.img <br /> | 将 friendlycore/rootfs 目录制作成 rootfs.img <br /> | ||
<br /> | <br /> |
Latest revision as of 07:17, 21 February 2022
Contents
1 制作量产用的文件系统 (以s5p4418为例)
1.1 烧写系统到emmc,按你的项目要求定制系统
- 用 s5p4418-eflasher-friendlycore-xxx.img 的固件 制做一张 tf 卡
- 用 tf 卡启动,进入烧写预览界面,选中 Disable overlay filesystem, 然后正常烧写系统到 emmc,如果没有看到 Disable overlay filesystem 选项,说明你的固件不是新版本,先去下载新固件:dl.friendlyelec.com
- 拨出 tf 卡,用 emmc 启动到 friendlycore
- 用 mount 命令查看根目录,确定根目录的挂载类型不是 overlay
- 正常安装你想要的软件,配置系统
1.2 从emmc中把文件系统备份出来
- 准备一个 u盘,格式化分区为 ext4 格式
- 再次用 tf 卡启动系统,并拨入u盘
- 用电脑上用 ssh 登录: ssh root@192.168.1.231,密码是 fa
- 用以下命令挂载 emmc 的 rootfs 分区到 /mnt/rootfs目录:
mkdir /mnt/rootfs mount /dev/mmcblk1p2 /mnt/rootfs
- 挂载 u盘下到 /mnt/udisk (如何没有挂载), 然后创建 /mnt/udisk/rootfs 目录
mount /dev/sdb1 /mnt/udisk mkdir /mnt/udisk/rootfs
注:有时 u盘的设备名是 /dev/sda1已经自动挂载到 /mnt/udisk 目录
- 安装 rsync 工具
wget http://112.124.9.243/cn-apt-source.sh chmod 755 cn-apt-source.sh ./cn-apt-source.sh apt-get update apt-get -y install rsync
- 将 emmc 的 rootfs 分区文件拷贝到 u盘,忽略掉特殊文件:
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/swapfile"} /mnt/rootfs/* /mnt/udisk/rootfs
1.3 用备份出来的文件系统,重新制作用于量产的固件
- 将 u盘拷到ubuntu电脑上,挂载u盘到 /media/udisk
- 用 sd-fuse_s5p4418 重新制作 rootfs.img:
git clone https://github.com/friendlyarm/sd-fuse_s5p4418.git cd sd-fuse_s5p4418 ./build-rootfs-img.sh /media/udisk/rootfs friendlycore ./mk-emmc-image.sh friendlycore
现在,你可以将生成的 out/s5p4418-eflasher-friendlycore-xenial-4.4-YYYYMMDD.img 固件用于量产了。
2 制作RK3399平台的系统映像
请参考这个git仓库: https://github.com/friendlyarm/sd-fuse_rk3399
3 制作S5P4418平台的系统映像
请参考这个git仓库: https://github.com/friendlyarm/sd-fuse_s5p4418
Example:
mkdir test cd test git clone https://github.com/friendlyarm/sd-fuse_s5p4418 cd sd-fuse_s5p4418/ tar xzf /mnt/dvd/S5P4418/images-for-eflasher/friendlycore-images.tgz tar xzf /mnt/dvd/S5P4418/images-for-eflasher/emmc-flasher-images.tgz tar xzf /mnt/dvd/S5P4418/rootfs/rootfs-friendlycore-20190718.tgz sed "s/\${BOARD}/XXYYZZ/g" friendlycore/rootfs/etc/rc.local -i ./build-rootfs-img.sh friendlycore/rootfs friendlycore ./mk-emmc-image.sh friendlycore dd if=out/s5p4418-eflasher-friendlycore-20190730.img of=/dev/sdX bs=32M
上例中两个关键的命令:
./build-rootfs-img.sh friendlycore/rootfs friendlycore
将 friendlycore/rootfs 目录制作成 rootfs.img
./mk-emmc-image.sh friendlycore
将friendlycore目录下的系统制作为 eflaher固件,会生成 out/s5p4418-eflasher-friendlycore-20190730.img,直接 dd 到卡里即可
4 制作S5P6818平台的系统映像
请参考这个git仓库: https://github.com/friendlyarm/sd-fuse_s5p6818
5 制作H3 平台的系统映像
请参考这个git仓库: https://github.com/friendlyarm/sd-fuse_h3
6 制作H5 平台的系统映像
请参考这个git仓库: https://github.com/friendlyarm/sd-fuse_h5