参考文档http://wiki.t-firefly.com/zh_CN/Firefly-RK3399/linux_build_ubuntu_rootfs.html
1、下载ubuntu版本http://cdimage.ubuntu.com/ubuntu-base/releases/
2、下载完之后,创建临时文件夹并解压根文件系统:
mkdir temp
sudo tar -xpf ubuntu-base-18.04.5-base-arm64.tar.gz -C temp
3、修改根文件系统
准备工作
准备网络:
sudo cp -b /etc/resolv.conf temp/etc/resolv.conf
准备 qemu:
sudo cp /usr/bin/qemu-aarch64-static temp/usr/bin/
进入根文件系统进行操作:
sudo chroot temp
4、rk3399制作ubuntu rootfs
参考:https://www.cnblogs.com/charlieroro/p/9259675.html
/data/rk3399# /bin/bash
/data/rk3399# cp /bin/^C
/data/rk3399# mkdir temp/bin
/data/rk3399# cp /bin/bash temp/bin/
/data/rk3399# ldd /bin/bash
linux-vdso.so.1 (0x00007ffe975e1000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f601cd7f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f601cb7b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f601c78a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f601d2c3000)
/data/d1/rk3399# cp ^C
/data/d1/rk3399# mkdir temp/lib
/data/d1/rk3399# cp /lib/x86_64-linux-gnu/libtinfo.so.5 temp/lib/
/data/d1/rk3399# cp /lib/x86_64-linux-gnu/libdl.so.2 temp/lib/
/data/d1/rk3399# cp /lib/x86_64-linux-gnu/libc.so.6 temp/lib/
/data/d1/rk3399# cp /lib64/ld-linux-x86-64.so.2 temp/lib/
/data//rk3399# chroot temp/
command ‘/bin/bash’: No such file or directory
/data/rk3399# mkdir temp/lib64
/data/rk3399# cp /lib64/ld-linux-x86-64.so.2 temp/lib64/
/data/rk3399# chroot temp/
5、更新及安装
更新:
apt update
apt upgrade
6、安装自己需要的功能
apt install vim git ....(根据自己需求添加)
apt updateapt-get install console-setup iputils-ping sudo vim net-tools
apt-get install vim git openssh-server
安装 xubuntu:
apt-get install xubuntu-desktop
添加用户及设置密码
添加用户:
useradd -s '/bin/bash' -m -G adm,sudo firefly
给用户设置密码:
passwd firefly
给root用户设置密码:
passwd root
修改完自己的根文件系统就可以退出了。
exit
制作根文件系统
制作自己的根文件系统,大小依据自己的根文件系统而定,注意依据 temp
文件夹的大小来修改 count
值:
mkdir rootfs
dd if=/dev/zero of=linuxroot.img bs=1M count=4000
mkfs.ext4 linuxroot.img
sudo mount linuxroot.img rootfs/
sudo cp -rfp temp/* rootfs/
sudo umount rootfs/
e2fsck -p -f linuxroot.img
resize2fs -M linuxroot.img
这样 linuxroot.img
就是最终的根文件系统映像文件了。
FAQs
根文件系统加载后,大小不正常,未占满整个分区:
在系统正确加载后执行扩展文件系统命令:
resize2fs /dev/mtd/by-name/linuxroot