日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bsp的分析(其中使用buildroot文件夹建立rootfs)

發布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bsp的分析(其中使用buildroot文件夹建立rootfs) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下內容源于朱有鵬嵌入式課程的學習,如有侵權,請告知刪除。


一、X210的bsp介紹

1、嵌入式linux產品的bsp介紹

  • ARM+linux形式的bsp,內容和結構都是相似的。
  • bsp由芯片廠家或板卡廠家提供的,交付時會提供bsp。

2、X210的linux+QT bsp整體介紹

  • tslib_x210_qtopia.tgz,是用來支持QT的觸摸屏操作的應用層庫;
  • xboot和uboot是X210支持的2個bootloader源代碼;
  • kernel,文件夾中是內核源代碼;
  • buildroot文件夾,用來構建根文件系統的文件夾;
  • tools,一些有用工具;
  • mk,用來管理和編譯整個bsp。

3、mk的幫助信息

(1)Linux下,執行程序時加-h或者--help就可以看到這個程序執行的幫助信息。

  • 這里可以在此目錄下輸入mk -h查看mk的幫助信息。

(2)mk腳本的主要作用是編譯。

  • 可以完整編譯也可以部分編譯;
  • 通過執行mk xxx,mk后面加不同的參數來指定mk腳本去編譯相應的部分。
譬如:

mk -a 即可編譯所有的bsp源代碼

mk -x 即可只編譯xboot

mk -ui 即可只編譯uboot針對inand版本開發板的源代碼

mk -r ? 即可只編譯buildroot,-r只是得到了文件夾形式的rootfs,并沒有將其制作成鏡像文件。

mk -re 即可編譯buildroot并且制作得到ext3格式的rootfs鏡像

mk -rj 即可編譯buildroot并且制作得到jffs2格式的rootfs鏡像

(4)腳本執行方式

  • ./mk和mk都是執行mk這個腳本文件,區別在于./mk是帶路徑的,mk是不帶路徑的。
  • 還有source mk,這個和前兩個的區別是source執行時不需要mk文件具有可執行權限,而前面兩種要求mk必須在當前用戶下具有可執行權限。

二、mk文件分析

(1)shell腳本程序分為:變量定義、函數、代碼。

  • shell腳本程序的結構非常類似于C語言程序;
  • shell程序和C語言程序很大的一個差別就是shell沒有main函數,shell腳本執行時也是先執行主函數的,不過主函數沒有放在一個類似于main這樣的函數中,而是直接放在全局下的一些代碼。
  • shell程序執行時首先執行變量定義,然后執行主函數,其他函數在主函數代碼中被調用執行。

(2)怎么實現控制編譯哪個不編譯哪個?

  • 用一個函數來完成編譯一個(譬如編譯內核用build_kernel函數,編譯inand的uboot用build_bootloader_uboot_inand);
  • 然后用相應的一些變量來控制這個函數要不要被編譯(譬如uboot_inand變量=yes就表示要編譯inand版本的uboot,=no就表示不要編譯);
  • 編譯時通過-xxxxx來傳參時,這些傳參會影響這些變量的值=yes或者=no
  • 如果我們直接./mk并不傳參,則$1為空,這時候按照一套默認的配置來編譯。

三、buildroot引入

1、buildroot作用介紹

(1)之前從零開始構建根文件系統,步驟比較麻煩。

(2)交叉編譯工具鏈arm-linux-gcc

  • 之前都是從soc官方直接拿來使用的,但官方的工具鏈從何而來?
  • 實際上交叉編譯工具鏈都是由gcc配置編譯生成的。

(3)buildroot是一個集成包

  • 集成了交叉編譯工具鏈的制作,以及整個rootfs的配置編譯過程。
  • 使用buildroot可以很簡便的得到一個做好的文件夾形式的根文件系統。
(4)buildroot移植了linux kernel的make xxx_defconfig+make menuconfig的2步配置法
  • 在buildroot的配置界面下完成集成在里邊的所有東西的配置,然后直接make,最終可以得到文件夾形式的rootfs。

2、make x210ii_defconfig

(1)先make xxx_defconfig

(2)make menuconfig

(3)make

3、make及其錯誤解決

(1)直接make會遇到很多錯誤,這些錯誤原因都是因為ubuntu中缺乏一些必要軟件包造成的。解決方案是先安裝這些必要的軟件包。

(2)編譯過程會需要從網上下載一些軟件包,因此整個編譯過程需要在聯網狀態下進行。

4、編譯后結果查看與分析

  • 編譯后生成的文件夾格式的rootfs在buildroot/output/images/rootfs.tar。
  • 將其復制到根目錄下的release目錄中,這個文件就是一個完整的、可以工作的、文件夾形式的rootfs。

總結

以上是生活随笔為你收集整理的bsp的分析(其中使用buildroot文件夹建立rootfs)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。