Bui~ 的新篇章將帶大家使用一些好用的開發工具,給牛馬們省點力,犁更多的田,拉更多的車提高效率早點下班。
Yocto是一個用於整合資源編譯嵌入式Linux系統的項目,像高通的linux(如QCS6490,QCS610等)或是synaptic的astra平台(如SL1680,SL1640等)的linux都是用了yocto去編譯,網上也有很多相關的學習資料,這裡不再贅述。這個項目使用bitbake作為編譯工具,需要學習相關的語法知識。目前,Yocto和bitbake官方都沒有提供圖形界面軟體或開發平台軟體,所有操作都需要通過命令行來執行。因此,在閱讀Yocto工程代碼時,查找相關內容的定義和記住一些指令會比較耗時耗力。
VSCode有一個Yocto插件可以很好地解決上述問題。
首先,需要在VSCode中安裝這個插件(我的工程在其他電腦上,所以安裝時也需要安裝到遠程電腦):

安裝完插件後,需要設置Yocto的目錄以及bitbake相關配置,主要有以下幾個參數(以Synaptics的Astra SDK為例,其中${workspaceFolder}指的是VSCode當前打開的文件夾路徑) :
- Bitbake: Command Wrapper
當使用bitbake指令時,需要用一些前置指令,可以放在這裡,例如進入docker環境的指令。
例:docker run --rm -it -v ${workspaceFolder}/sdk:${workspaceFolder}/sdk ghcr.io/synaptics-astra/crops:1.0.0 --workdir=${workspaceFolder}/sdk /bin/bash -c
- Bitbake: Path To Bitbake Folder
這裡需要填寫yocto項目中bitbak的工具路徑
例:${workspaceFolder}/sdk/poky/bitbake
- Bitbake: Path To Env Script
在編譯Yocto項目時一般需要設置環境變量,這裡填寫腳本路徑,在啟動項目時會自動運行腳本設置好環境變量。
例:meta-synaptics/setup/setup-environment build-sl1640
還有其他設置,可以根據大家的需求進行配置。
完成設置後,VSCode會立即解析Yocto工程,這時下方的終端會出現掃描recipe的日誌,解析完後下方狀態欄會顯示發現的recipe數量。

在VSCode的側欄中點擊Yocto圖標,就能看到兩個空的工作區域。 如果你想查看或修改某個recipe的相關內容,可以將這個recipe添加到第一個區域,它會將這個recipe的bb文件和bbappend文件找出來。

在這裡,可以像閱讀代碼一樣操作,方便找到變量的定義或引用,函數或被繼承包的定義位置,語法會用不同顏色標註,方便查看。同時,部分bitbake操作可以通過圖形界面操作,不需要記住指令。
熟悉Yocto的同學應該知道,Yocto為了簡潔文件架構,不會展示大部分源碼文件。如果你想查看或修改某個組件的源碼,需要用到另一個工具——devtool。Devtool可以幫助你修改代碼,並創建相應的補丁或layer文件並自動添加回Yocto工程中。我們只需要在相應的recipe中選擇修改選項.

在第二個工作區域就會出現對應的代碼工程,修改完成後,按照需求將修改點整合到Yocto中。

通過這個軟體查看和修改Yocto項目可以事半功倍,還不需要記住那些繁瑣的指令。 ๑乛◡乛๑
以上是本期博文的全部內容,如有疑問就別在博文下方評論留言了,有什麼疑問或想了解的當面和我說(如果你知道我是誰的話ヽ( ̄▽ ̄)و),我會儘量安排上(o´ω`o)و。謝謝大家瀏覽,我們下期再見。
簡單是長期努力的結果,而不是起點
—— 不是我說的
FAQ 1:什麼是recipe?
A1:Recipe是Yocto中用於描述如何構建軟體包的文件。
FAQ 2:如何查看Yocto工程的解析日誌?
A2:在VSCode中設置好Yocto插件後,終端會顯示解析日誌。
FAQ 3:Yocto項目的官方文檔在哪裡?
A3:Yocto項目的官方文檔可以在其官方網站上找到。
FAQ 4:什麼是layer文件?
A4:Layer文件是Yocto項目中的一個層次結構,用於組織和管理不同的構建組件。
FAQ 5:如何在Yocto項目中創建補丁?
A5:使用devtool可以創建補丁並自動添加到Yocto項目中。
評論