此操作需要虚拟机中完成,首先需要创建一个文件夹
mkdir debian-mount
然后将固件镜像挂载到debian-mount文件夹
mount linaro-rootfs.img debian/
进入debian-mount就可以看到文件系统的结构了
安装qemu-user-static工具可以进入到固件内部
sudo apt-get install qemu-user-static
然后将工具文件复制到固件文件夹下
#this is for 64 bit arm system
cp /usr/bin/qemu-aarch64-static debian-mount/usr/bin/
可以使用ch-mount.sh脚本进入到固件内部
#!/bin/bash
IP="www.baidu.com"
NUM=3
func_ping()
{
ping $IP -c $NUM > ping.txt
echo ""
echo ""
echo ""
if [ ! -z "`grep "reachable" ping.txt`" ]; then
echo "----------------------------------"
echo " "
echo " Now is unreachable! Please check whether the computer has Internet access."
echo " "
echo "----------------------------------"
rm ping.txt
exit
fi
echo "Internet is OK."
rm ping.txt
}function mnt() {
echo "MOUNTING"
echo "To exit, press 'ctrl + d'"
sudo mount -t proc /proc ${2}/proc
sudo mount -t sysfs /sys ${2}/sys
sudo mount -o bind /dev ${2}/devsudo 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
umnt $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
如若需要在固件内部安装库,则需要安装qemu-kvm工具来修改镜像大小
sudo apt-get install qemu-kvm
对debian-mount目录修改挂载权限
mount -o remount linaro-rootfs.img debian-mount/
然后可以修改文件系统大小,修改大小单位有K、M、G
再取消挂载后,确认修改文件系统镜像的大小
然后再次挂载,用ch-mount.sh脚本进去内部,用df -h查看是否修改成功
然后可以apt install 安装工具或者各种库