准备
1.安装qemu
qemu是用来在本地机模拟arm环境的
sudo apt-get install qemu-user-static
2.准备文件系统
1.去官网下载干净文件系统
在 ubuntu img 下载想要的文件系统,备用
2.修改现有的文件系统
找到需要修改的文件系统,备用
3.创建文件系统镜像文件
选定一个目录,执行下面命令
su
mkdir rootfs
cd rootfs
dd if=/dev/zero of=linuxroot.img bs=1M count=2048
sudo mkfs.ext4 linuxroot.img
mount linuxroot.img rootfs
这样就可以得到一个大小为2G,格式为ext4的文件系统,bs为指定单位大小,count为镜像由多少个count组成。if=/dev/zero为虚拟输入设备,of=linuxroot.img输出到镜像。
4.解压文件系统
将第一步得到的文件系统解压到rootfs目录下面
sudo tar -xvf 文件系统.tar.gz -C rootfs
5.安装环境
复制模拟环境工具及网络配置文件到文件系统
cp -b /etc/resolv.conf rootfs/etc/resolv.conf //复制本机网络环境到文件系统
cp /usr/bin/qemu-aarch64-static rootfs/usr/bin/ //复制qemu工具到文件系统
6.环境切换文件
在rootfs同一个目录创建一个mount_chroot.sh文件,内容如下
#!/bin/bash
function mnt() {
echo "MOUNTING"
sudo mount -t proc /proc ${2}/proc
sudo mount -t sysfs /sys ${2}/sys
sudo mount -o bind /dev ${2}/dev
sudo chroot ${2}
}
function umnt() {
echo "UNMOUNTING"
sudo umount ${2}/proc
sudo umount ${2}/sys
sudo umount ${2}/dev
}
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
mnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
umnt $1 $2
else
echo ""
echo "Either 1'st, 2'nd or both parameters were missing"
echo ""
echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
echo ""
echo "For example: ch-mount -m /media/sdcard/"
echo ""
echo 1st parameter : ${1}
echo 2nd parameter : ${2}
fi
完成了运行下面命令
sudo chmod 777 mount_chroot.sh`
sudo ./mount_chroot.sh -m rootfs
这样就顺利切换到新的文件系统了
7.为文件系统安装软件
下面执行下列命令更新软件源
sudo apt update
可以安装任意软件了。。。。。
8.最后步骤
做完以上的,执行以下命令,就可以得到一个想要的文件系统了。
exit
umount rootfs
e2fsck -p -f linuxroot.img
resize2fs -M linuxroot.img