1.1此操作可在虛擬機(jī)中完成,首先需要創(chuàng)建一個文件夾
sudo mkdir debian/
1.2 然后將文件系統(tǒng)鏡像 linaro-rootfs.img掛載到debian文件夾
sudo mount linaro-rootfs.img debian/
1.3 進(jìn)入debian就可以看到文件系統(tǒng)的結(jié)構(gòu)了
這時可以對文件系統(tǒng)進(jìn)行文件操作,修改完成后取消掛載即可
1.4 如果需要安裝一些軟件庫或者某些工具則需要依賴qemu工具,先在本地環(huán)境安裝qemu-user-static工具
sudo apt update
sudo apt-get install qemu-user-static
1.5 然后需要將安裝的qemu工具復(fù)制到固件掛載的對應(yīng)目錄下,這樣是為了在宿主機(jī)上模擬ARM架構(gòu)時,可以確保在模擬環(huán)境中運(yùn)行的程序能夠找到并使用這個工具,從而保持環(huán)境的一致性。
sudo cp /usr/bin/qemu-aarch64-static debian-mount/usr/bin/
這里的aarch64代表是ARM架構(gòu)的64位版本
1.6 然后再使用ch-mount.sh腳本進(jìn)入到固件內(nèi)部
#!/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
}
functionmnt() {
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}/dev
sudo chroot ${2}
}
functionumnt() {
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-aarch64-static工具沒有復(fù)制到對應(yīng)目錄下
如果模擬掛載成功,就能看到文件系統(tǒng)內(nèi)部,這時就可以在文件系統(tǒng)內(nèi)部中使用apt工具,安裝所需要的版本庫和對應(yīng)工具,安裝完成后按下“ctrl + d”可以保存推出掛載。
1.7 如果在固件內(nèi)部安裝工具時,發(fā)現(xiàn)空間不足,則需要使用到qemu-kvm工具來修改鏡像大小,首先要在本地環(huán)境安裝qemu-kvm工具
sudo apt-get install qemu-kvm
1.8 修改固件鏡像大小需要對debian掛載目錄進(jìn)行權(quán)限修改
sudo mount -o remount linaro-rootfs.img debian/
1.9 這時候就可以對文件系統(tǒng)大小進(jìn)行修改,修改大小“+”后面的單位有K、M、G
sudoqemu-imgresize-frawlinaro-rootfs.img +1G
2.0 然后需要取消掛載再使用resize2fs工具調(diào)整文件系統(tǒng)的大小
sudo umount /work/bsp/rk356x_bsp/rockdev/debian
sudo resize2fs -f linaro-rootfs.img
打印這些信息就說明文件系統(tǒng)修改成功,可以再使用ch-mount.sh掛載進(jìn)去查看df -h查看是否修改成功