文章來源:飛凌嵌入式官網
在Ubuntu系統的嵌入式設備開發過程中,保留文件系統或者說備份當前開發板鏡像的需求在不斷增加。
比如Ubuntu文件系統需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安裝好庫的文件系統打包出來,或者做成一個新的鏡像,用于燒錄到其他核心板,如果將庫的源碼交叉編譯再放入到文件系統的源碼中重新再源碼打包一個鏡像比較麻煩,而且交叉編譯過程中可能存在一些問題。
今天飛凌小編就通過OK3399-C開發板針對以上問題來為各位工程師小伙伴介紹相應的解決方法。
1、解決思路
基于Linux下一切皆文件的思想,開發板啟動后進行的一系列操作都會以文件的形式保留在文件系統中,而RK3399處理器的Ubuntu系統提供了文件系統鏡像ubuntu.img用來編譯生成update.img。
因此我們需要一個方法使OK3399-C開發板中的文件系統和ubuntu.img中的內容保持一致,這樣編譯生成的update.img就包含了當前開發板中所配置的環境,方便用來備份或者批量部署。
2、解決方法
其實飛凌嵌入式的官方論壇知識庫之前已經發表了兩個可以實現的解決方法,這里不再贅述,只做簡要說明:
方法 1:
請復制鏈接后選用PC端進入論壇:
該方法是將ubuntu.img文件copy到開發板中,通過mount命令掛載后復制當前開發板中的內容后,再將ubuntu.img轉到開發環境進行編譯,這種方法最為簡單粗暴容易理解,但很容易因為操作者的疏忽而導致復制不完全。
方法 2:
(在開發環境模擬開發板掛載ubuntu.img)
請復制鏈接后選用PC端進入論壇:
http://bbs.witech.com.cn/portal.php?mod=view&aid=605
該方法直接將ubuntu.img文件在開發環境中模擬開發板的環境進行apt-get等操作,可以類比理解如下:
在PC端的VM虛擬機里運行Ubuntu系統
在Ubuntu中的qemu虛擬機里運行ubuntu.img系統
這個方法比較符合邏輯且操作方便,但需要再將已驗證的操作在qemu中再執行一次,如果開發周期較長,可能有些在開發板安裝的庫文件反而在qemu中沒有安裝導致問題出現。
方法3:
通過rsync同步兩個文件系統中的內容,做到實時更新、同步。本文將著重介紹并實操第三種方法。
rsync的目的是實現本地主機和遠程主機上的文件同步(包括本地推到遠程,遠程拉到本地兩種同步方式)。
本文以OK3399-C開發板和PC端Ubuntu虛擬機為例,同步開發板安裝的cutecom(Ubuntu可視化串口調試工具)到Ubuntu的3399-desktop-release/rootfs/ubuntu.img中。
Ubuntu開發環境IP:172.16.0.167
OK3399-C開發板IP:172.16.0.168
確保雙方可以ping通,確保兩者皆可ping通百度。
開發環境操作
1、為開發環境設置root用戶密碼,使用命令:passwd root;
2、修改/etc/ssh/sshd_config文件,添加可ssh遠程登錄權限。
使用命令: sudo vi /etc/ssh/sshd_config;
添加完成后效果如下圖:
3、重啟sshd服務,使用命令:service sshd restart;
4、將源碼中的ubuntu.img掛載出來,建議掛載到同目錄的target目錄下,在OK3399-desktop-release/rootfs目錄下使用命令:sudo mount ubunt.img ./target;
開發板操作
1、更新下載源執行命令:sudoapt-get update;
2、下載rsync服務,執行命令:sudoapt-get install rsync;
3、如果文件系統已經有所更改跳過此項,本文中還未做任何更改,所以將下載cutecom以做測試,執行命令:sudoapt-get install cutecom;
4、將開發板文件系統同步到開發環境中的文件系統中
開發環境文件系統路徑如下:
/home/forlinx/3399/OK3399-desktop-release/rootfs/target;
開發板執行命令:
rsync -avx / \
root@172.16.0.167:/home/forlinx/3399/OK3399-desktop-release/rootfs/target;
首次執行需要手動填寫yes,記錄成功后,以后就只需要輸入開發環境的root用戶密碼;
5、在開發環境查看,是否存在cutecom,結果如下圖:
到此,在OK3399-C開發板安裝的cutecom已經同步到開發環境的ubuntu.img中。
接下來,在開發環境執行編譯腳本燒寫到OK3399-C開發板進行驗證,將ubuntu.img文件卸載,執行命令:sudo umount target。
回到OK3399-desktop-release目錄執行編譯腳本 ./build_ubuntu.sh 生成update.img后通過OTG燒寫到開發板驗證cutecom是否存在即可。
6、驗證結果,cutecom存在且可正常執行。結果如下圖所示:
以上就是小編為大家整理的在OK3399-C開發板上運行Ubuntu系統時保留文件系統的操作方法,希望能夠對大家有所幫助!
-
ARM
+關注
關注
134文章
9117瀏覽量
368209 -
文件系統
+關注
關注
0文章
287瀏覽量
19930 -
Ubuntu
+關注
關注
5文章
563瀏覽量
29907
發布評論請先 登錄
相關推薦
評論