本文檔主要介紹在沒(méi)有編譯環(huán)境的情況下,如何修改buildroot和debian文件系統(tǒng)方法,如在buildroot文件系統(tǒng)中添加文件、修改目錄等文件操作,在debian文件系統(tǒng)中,安裝軟件庫(kù)、工具、擴(kuò)大文件系統(tǒng)空間等等操作。
1.Debian文件系統(tǒng)
1.1此操作可在虛擬機(jī)中完成,首先需要?jiǎng)?chuàng)建一個(gè)文件夾
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)了
這時(shí)可以對(duì)文件系統(tǒng)進(jìn)行文件操作,修改完成后取消掛載即可
1.4 如果需要安裝一些軟件庫(kù)或者某些工具則需要依賴(lài)qemu工具,先在本地環(huán)境安裝qemu-user-static工具
sudoaptupdate sudo apt-getinstallqemu-user-static
1.5 然后需要將安裝的qemu工具復(fù)制到固件掛載的對(duì)應(yīng)目錄下,這樣是為了在宿主機(jī)上模擬ARM架構(gòu)時(shí),可以確保在模擬環(huán)境中運(yùn)行的程序能夠找到并使用這個(gè)工具,從而保持環(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 }
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}/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 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
如果使用腳本掛載報(bào)錯(cuò),則很有可能是qemu-aarch64-static工具沒(méi)有復(fù)制到對(duì)應(yīng)目錄下
如果模擬掛載成功,就能看到文件系統(tǒng)內(nèi)部,這時(shí)就可以在文件系統(tǒng)內(nèi)部中使用apt工具,安裝所需要的版本庫(kù)和對(duì)應(yīng)工具,安裝完成后按下“ctrl + d”可以保存推出掛載。
1.7 如果在固件內(nèi)部安裝工具時(shí),發(fā)現(xiàn)空間不足,則需要使用到qemu-kvm工具來(lái)修改鏡像大小,首先要在本地環(huán)境安裝qemu-kvm工具
sudo apt-get install qemu-kvm
1.8 修改固件鏡像大小需要對(duì)debian掛載目錄進(jìn)行權(quán)限修改
sudo mount -o remount linaro-rootfs.img debian/
1.9 這時(shí)候就可以對(duì)文件系統(tǒng)大小進(jìn)行修改,修改大小“+”后面的單位有K、M、G
sudo qemu-img resize -f raw linaro-rootfs.img +1G
2.0 然后需要取消掛載再使用resize2fs工具調(diào)整文件系統(tǒng)的大小
sudo umount /work/bsp/rk356x_bsp/rockdev/debian sudo resize2fs-f linaro-rootfs.img
打印這些信息就說(shuō)明文件系統(tǒng)修改成功,可以再使用ch-mount.sh掛載進(jìn)去查看df -h查看是否修改成功
2.Buildroot文件系統(tǒng)
Buildroot文件系統(tǒng)我們提供的標(biāo)準(zhǔn)固件沒(méi)有apt工具,所以并不能通過(guò)qemu工具模擬ARM架構(gòu),來(lái)apt安裝工具,如果需要,則還是用工具源碼交叉編譯后手動(dòng)移植到文件系統(tǒng)中。
Buildroot文件系統(tǒng)可以直接掛載進(jìn)去來(lái)對(duì)文件或者目錄進(jìn)行操作,取消掛載即可保存。
? ??
-
文件系統(tǒng)
+關(guān)注
關(guān)注
0文章
293瀏覽量
20278 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
962瀏覽量
29014 -
Buildroot
+關(guān)注
關(guān)注
1文章
48瀏覽量
1597 -
Debian
+關(guān)注
關(guān)注
0文章
77瀏覽量
1564
原文標(biāo)題:如何快速修改Buildroot及Debian文件系統(tǒng)?
文章出處:【微信號(hào):萬(wàn)象奧科,微信公眾號(hào):萬(wàn)象奧科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于Buildroot的Linux系統(tǒng)構(gòu)建之根文件系統(tǒng)
STM32MP157D使用buildroot生成根文件系統(tǒng)時(shí)就無(wú)法正常顯示,為什么?
怎樣使用buildroot構(gòu)建根文件系統(tǒng)
buildroot構(gòu)建根文件系統(tǒng)報(bào)錯(cuò)是什么原因
Firefly Debian根文件系統(tǒng)使用手冊(cè)指南
使用Buildroot構(gòu)建根文件系統(tǒng)的方法簡(jiǎn)析
如何定制Buildroot文件系統(tǒng)-基于TQT507開(kāi)發(fā)板
Linux文件系統(tǒng)課程
debian安裝zfs文件系統(tǒng)

Debian可以從F2FS根文件系統(tǒng)運(yùn)行了
嵌入式Linux學(xué)習(xí)之旅(10)— 使用buildroot構(gòu)建根文件系統(tǒng)

從EVB3568開(kāi)發(fā)板打包備份Debian文件系統(tǒng)的方法
技術(shù)分享 | RK3568開(kāi)發(fā)板 buildroot編譯配置

評(píng)論