yocto devtool add命令的使用

yocto中有幾個非常實用方便的命令。
devtool add:協助添加要構建的新軟體。
devtool modify:設置一個環境,使您能夠修改現有組件的源代碼。
devtool upgrade:更新現有配方,以便您可以為一組更新的源文件構建它。
devtool add 命令是基於現有源代碼生成新的配方(recipe)

如下使用 devtool add 添加一個應用程序的幾種方法:

1. 第一種方法:
$ devtool add recipe fetchuri
recipe:是會自動創建一個菜譜的名字
fetchuri:是源代碼的 git地址
以下是我的github 庫上的helloworld示例:
$ devtool add helloworld https://github.com/mm-kk-aa/helloworld.git



1.1命令成功後,自動修改build下的conf文件,添加工作空間的目錄。


1.2成功後顯示在workspace目錄中自動產生.bb文件及保存提取的源文件




2. 第二種方法:
$ devtool add recipe srctree fetchuri
srctree:表示提取源文件到自定義目錄,前提存在這個目錄且目錄是非空的
在這我在source目錄下新建目錄meta-helloworld
$ mkdir ../sources/meta-helloworld
$devtool add meta-helloworld ../sources/meta-helloworld/ https://github.com/mm-kk-aa/helloworld.git
命令成功後,提取源文件到sources/meta-helloworld/ 下,而菜譜等文件仍然在worksapce下。







3. 第三種方法:
$ devtool add recipe srctree
源碼在本地的情況下,比如此前提取的過的源代碼。
$ devtool add meta-helloworld-v2 ../sources/meta-helloworld



4. 以第二種方法為例子,展示編譯修改,

源代碼被提取到 sources/meta-helloworld目錄,自動創建的菜譜被放在了 build/workspace/recipes/meta-helloworld/目錄,菜譜名為 meta-helloworld_git.bb

4.1 修改菜譜,加上編譯命令:
這裡注意,$CC 不能寫成$(CC) , 也就是不能加括號!後面-o 不要寫成-0





4.2 編譯菜譜,可以將編譯的輸出燒錄到目標硬體上測試。
$ devtool build meta-helloworld


編譯的結果:



4.3 完成菜譜,這個命令在本地git倉庫中創建提交任何補丁,且將菜譜移動到固定的(或者說永久的,也就是常規的)layer中,以便正常構建,而不是從workspace中構建
$ devtool finish meta-helloworld meta-test
注意操作,完成菜譜,必須指定完成的菜譜要提交到哪個layer,如果沒有layer meta-test,需要自己手動創建。
bitbake-layers create-layer ../sources/meta-test
bitbake-layers add-layer ../sources/meta-test



4.3.1由於在finish的過程中,要把編譯輸出的要清理掉,還有,helloworld.c中源碼之前有誤,我修改了英文格式的引號,所以要切換到sources/meta-helloworld下,才能執行
$git add helloworld.c
$git commit
之後,執行$ devtool finish meta-helloworld meta-test 才能正常完成。





成功完成的結果:



這裡就是修改的英文的引號後的補丁。





完畢!

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

評論