SDK工程目錄介紹:
工程目錄下有 buildroot、 app、 kernel、 u-boot、 device、 external、prebuilts、rockimg、tools 等目錄。
當前Buildroot版本為Buildroot 2016.08.1
- buildroot/package/:下面放著應用軟件的配置文件,每個應用軟件的配置文件有Config.in和soft_name.mk其中soft_name.mk(這種其實就Makefile腳本的自動構建腳本)文件可以去下載應用軟件的包。
- buildroot/output/:是編譯出來的輸出文件夾,里面的build/目錄存放著解壓后的各種軟件包編譯完后的現場。host/目錄放著制作好的編譯工具鏈,target/ 目錄是用來制作rootfs的,里面放著Linux系統基本的目錄結構,以及各種編譯好的應用庫和bin可執行文件。Images/目錄下就是最終生成的可燒寫到板子上的各種image。
- buildroot/dl/:存放下載的源碼包及應用軟件的壓縮包
- buildroot/fs/:放各種文件系統的源代碼
- buildroot/fs/skeleton/:放生成文件系統鏡像的地方,及板子里面的系統
- buildroot/linux/:存放著Linux kernel的自動構建腳本。
- buildroot/configs/:放置開發板的一些配置參數,
- buildroot/docs/ :存放相關的參考文檔。
- buildroot/arch/ :目錄存放CPU架構相關的配置腳本,如arm、mips、x86 ,這些CPU相關的配置,在制作工具鏈,編譯boot和內核時很關鍵。
整個Buildroot是由Makefile腳本和Kconfig配置文件構成的。你可以和編譯Linux內核一樣。
$ make menuconfig
配置界面如下:
在Target packages里面添加和裁剪一些工具,按需求定制系統功能,常用到的qt5、ssh、vsftpd、wpa_supplicant、pppd等都可在里面配置。
需要了解的是:
- 進行編譯時,buildroot根據配置,會自動從網絡獲取相關的軟件包,包括一些第三方庫,插件,實用工具等,放在dl/目錄。
- 軟件包會解壓在output/build/目錄下,然后進行編譯。
- 如果要修改軟件包的源碼,可以通過打補丁的方式進行修改,補丁集中放在package/目錄,buildroot會在解壓軟件包時為其打上相應的補丁。
Buildroot配置好后,可以直接運行make
進行編譯。
但是SDK下的app、device等目錄將不會被編譯到,所以配置完后,最好回到SDK根目錄,執行./build_all.sh
進行編譯。
如果在開發過程中,針對output/build/某個包源碼進行了修改,需要單獨重新編譯該軟件包,直接編譯Buildroot是不起效果的。
Buildroot在編譯某個包的時候,會將編譯的過程,通過一些標志文件記錄下來,保存在對應的軟件包源碼的目錄里,這些標志文件分別有:
這些標識文件主要控制這個軟件包的下載,解壓,打包,配置,編譯,安裝等。具體詳細說明可參考:
docs/manual/rebuilding-packages.txt
也可以直接看mk文件,了解原理:
package/pkg-generic.mk
要想重新執行哪一個步驟,相應的就要刪掉其對應的標志文件。假如你想重新編譯某軟件包源碼,只需刪掉該目錄下的.stamp_built和.stamp_target_installed,然后再編譯整個Buildroot就可以了。
當然,Buildroot有更快捷的實現方法。
-
執行
make show-targets
顯示出本次配置所要編譯所有的目標,即packages。 -
執行
make
將構建并安裝該軟件包及其依賴項。
同時我們還可以通過make
,對軟件包單獨調用構建中的某一步驟,如下:
Package-specific: <pkg> - Build and install <pkg> and all its dependencies <pkg>-source - Only download the source files for <pkg> <pkg>-extract - Extract <pkg> sources <pkg>-patch - Apply patches to <pkg> <pkg>-depends - Build <pkg>'s dependencies <pkg>-configure - Build <pkg> up to the configure step <pkg>-build - Build <pkg> up to the build step <pkg>-graph-depends - Generate a graph of <pkg>'s dependencies <pkg>-dirclean - Remove <pkg> build directory <pkg>-reconfigure - Restart the build from the configure step <pkg>-rebuild - Restart the build from the build step
因此,如果我們想重新編譯xxx軟件包,執行make xxx-rebuild
即可。
關于make的更多用法,可通過make help
獲得。
-
Linux
+關注
關注
87文章
11294瀏覽量
209341 -
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35297 -
Firefly
+關注
關注
2文章
538瀏覽量
7028 -
Buildroot
+關注
關注
1文章
48瀏覽量
1394
發布評論請先 登錄
相關推薦
評論