查看: 3306|回復: 0
打印 上一主題 下一主題

在Ubuntu系統上定制文件系統

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2022-12-15 20:28:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

為了給客戶(hù)的測試和開(kāi)發(fā)提供便利,飛凌嵌入式的開(kāi)發(fā)板產(chǎn)品一般都支持多種操作系統,以基于全志T507H處理器設計研發(fā)的OKT507-C開(kāi)發(fā)板為例,它支持三種操作系統,分別是:Linux、Android 和 Forlinx Desktop(Ubuntu),這里提到的Forlinx Desktop系統是飛凌嵌入式在Ubuntu base的基礎上構建的桌面操作系統,完全兼容Ubuntu18.04,相對傳統的Linux系統而言易用性更高。




Forlinx Desktop(Ubuntu)系統基于Ubuntu官方為嵌入式設備制作的操作系統-Lubuntu,該操作系統具備apt-get、ldd等常用的命令,若需要安裝軟件則直接apt-get在線(xiàn)安裝即可,不需進(jìn)行交叉編譯移植等繁瑣操作。但是每次重新燒寫(xiě)鏡像之后,之前安裝的軟件就得重新安裝,比較繁瑣,如果需要批量操作則每塊開(kāi)發(fā)板都需要去apt-get安裝,這樣會(huì )大幅增加工作量,很不便于批量化生產(chǎn)。


能不能把軟件一起打包到鏡像呢?這樣每次燒寫(xiě)完就不用再去apt-get在線(xiàn)安裝了。答案當然是肯定的,這就涉及到文件系統的定制了,那么接下來(lái),小編就為大家介紹在Forlinx Desktop(Ubuntu)系統上定制文件系統的操作過(guò)程。


1. 解壓文件系統

首先,找到OKT507-desktop-release源碼的文件系統所在的目錄,然后將文件系統壓縮包解壓,路徑如下:

OKT507-desktop-release/ubuntu



解壓后,可看到文件系統目錄OKT507-linux-ubuntu,進(jìn)入到此目錄后可看到如下文件夾:


2. 安裝QEMU

這里簡(jiǎn)單介紹下QEMU,它是一個(gè)小巧的模擬器,可以模擬很多硬件如ARM、x86、AMD64/Intel64等。QEMU用途廣泛,比如Xen、Android模擬器等都是基于QEMU的。下面我們開(kāi)始在虛擬機進(jìn)行安裝QEMU,如下:

① 更新下載源:

sudo apt-get update

②執行命令安裝:

sudo apt-get install qemu-aarch64-static

sudo apt-get install qemu-user-static


3. 修改配置

① 將QEMU的qemu-arm-static拷貝到文件系統目錄OKT507-linux-ubuntu,如下:

sudo cp /usr/bin/qemu-arm-static usr/bin/




② 拷貝PC主機端的DNS配置,因為待會(huì )我們安裝程序時(shí)要用網(wǎng)絡(luò ):

sudo cp -b /etc/resolv.conf etc/resolv.conf




③ 修改下載源:

sudo vim etc/apt/sources.list


添加

deb http://ports.ubuntu.com/ubuntu-ports/ xenial main universe deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main universe





4. 掛載文件系統

因為我們這里是通過(guò)腳本的方式掛載和卸載文件系統,所以需要編寫(xiě)一個(gè)腳本掛載和卸載文件系統。

① 新建一個(gè)腳本文件命名為ch-mount.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





② 設置這個(gè)shell腳本可執行權限,如下:

sudo chmod 777 ch-mount.sh

③ 掛載文件系統:

執行ch-mount.sh腳本 指定參數-m,掛載成功如下:

sudo ./ch-mount.sh -m ./


5. 安裝軟件

前面我們掛載了文件系統,已將文件系統掛載到了QEMU模擬器,接下來(lái)就可以安裝我們所需要的軟件了。

① 更新下載源:

apt update

注意:更新下載源可能會(huì )報錯,這里需要注意一下,因為tmp文件夾權限不夠,chmod為其賦予權限。

如下:

chmod 777 /tmp

② 安裝軟件:

至此,便可以安裝所需軟件了,在這里用apt-get安裝自己所需軟件,根據所需安裝。我們這里來(lái)安裝一個(gè)minicom串口測試工具。如下:



③ 安裝完成后,exit退出QEMU。

④ 執行ch-mount.sh腳本卸載文件系統,指定參數-u,卸載成功后打印如下:




注意:我們exit退出后,只是退出了QEMU模擬器,并沒(méi)有卸載文件系統,一定要執行腳本卸載文件系統。


6. 打包文件系統

① 完成前面的步驟后,用tar命令將當前文件夾下所有文件壓縮,命名為OKT507-linux-ubuntu.tar.gz。如下:

sudo tar -cvzf OKT507-linux-ubuntu.tar.gz ./*


② 壓縮完成后,為文件系統壓縮包OKT507-linux-ubuntu.tar.gz賦予權限,如下:

sudo chmod a+w OKT507-linux-ubuntu.tar.gz




③ 將剛打包好的壓縮包替換到上一級目錄下的舊的文件系統壓縮包。




④ 重新編譯打包后生成新的鏡像燒錄開(kāi)發(fā)板。




7. 測試方法

燒錄到板子后,在終端啟動(dòng)minicom,驗證下是否安裝上。如下:



從上圖紅框可以看出,通過(guò)終端命令啟動(dòng)了minicom,說(shuō)明我們在QEMU中安裝成功了,至此Ubuntu文件系統定制就做完了。


通過(guò)這種方法可以個(gè)性化的定制屬于自己文件系統,安裝自己所需軟件,也可以根據自己需求將出廠(chǎng)不需要的軟件用相同的方式卸載掉,這樣既能減少工作量,又利于批量化生產(chǎn)。


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页