0、背景
本文在RK3399开发板上的Ubuntu rootfs(根文件系统)基础上进行用户自定义软件,并生成可以进行烧录的统一固件。
1、获得Ubuntu rootfs
Ubuntu rootfs镜像压缩包:https://gitlab.com/9tripod/x3399_linux/blob/master/tools/ubuntu-rootfs.img.tar.bz2
将ubuntu-rootfs.img.tar.bz2里面的ubuntu-rootfs.img手动解压出来,用于后面的镜像挂载。
创建一个目录,我们接下来在这个目录中构建目标rootfs
mkdir ~/ubuntu-rootfs
cd ubuntu-rootfs
将ubuntu-rootfs.img拷贝到ubuntu-rootfs里面
2、挂载ubuntu-rootfs.img
sudo mount -o loop ubuntu-rootfs.img ~/ubuntu-rootfs
//将ubuntu-rootfs.img挂载到刚才建的目录(~/ubuntu-rootfs)里
3、下载qemu static解释器
由于我们要chroot,所以需要能够在chroot环境执行armhf版本的binary,所以我们要接触Linux的binfmt机制和qemu static解释器
sudo apt-get install qemu-user-statica
sudo cp /usr/bin/qemu-arm-static /home/cjn/ubuntu-rootfs/usr/bin/
4、进入chroot环境
sudo chroot /home/cjn/ubuntu-rootfs/
sudo apt-get update
5、添加自己的软件,此时进行的所有操作和改变,都是在根文件系统中进行的
6、退出chroot环境
exit
7、卸载ubuntu-rootfs.img镜像
sudo umount /home/cjn/ubuntu-rootfs
大功告成。