Yocto自定義SDK(二)

2021-10-16 22:32:06 字數 2275 閱讀 5232

2 customizing the standard sdk

在為可擴充套件sdk構建安裝程式時,sdk的預設安裝目錄基於populate_sdk_base類中的distro和sdkextpath變數,如下所示:

sdkextpath ??= "~/$_sdk"
您可以通過專門設定sdkextpath變數來更改此預設安裝目錄。

您可以通過多種方式設定此變數,但最有意義的方法是在您的發行版的配置檔案中設定變數。 這樣做會建立乙個適用於您的發行版的sdk安裝程式預設目錄。 例如,假設您的發行版有自己的層,名為「 meta-mydistro」,並且使用的檔案層次結構型別與預設的「 poky」發行版相同。 如果是這樣,您可以使用以下格式更新〜/ meta-mydistro / conf / distro / mydistro.conf檔案中的sdkextpath變數:

sdkextpath = "some_path_for_your_installed_sdk"
生成安裝程式後,執行安裝程式將提示使用者接受some_path_for_your_installed_sdk目錄作為安裝可擴充套件sdk的預設位置。

如果您希望構建的可擴充套件sdk的使用者能夠將專案新增到sdk,而無需使用者從源**構建項,則需要做很多事情:

1.確保您希望使用者能夠安裝的其他專案已經構建:

2.公開構建生成的sstate-cache目錄。 通常,通過使該目錄可通過apache http server或nginx server使用來公開此目錄。

3.設定適當的配置,以使生成的sdk知道如何查詢配置。 您需要設定的變數是sstate_mirrors:

sstate_mirrors = "file://.* "
您可以在兩個不同的位置設定sstate_mirrors變數:

注意

如果您對設定sstate_mirrors時使用哪種方法有任何疑問,則第二個選項是最安全的選項。

預設情況下,可擴充套件sdk將共享狀態工件**在一起,以重建用於構建sdk的映像所需的所有內容。 這種**會導致sdk安裝程式檔案的大小達到千兆位元組或更大。 如果此檔案的大小引起問題,則可以通過在配置中設定以下內容,來構建其中包含足夠用於安裝並提供對devtool命令的訪問許可權的sdk:

sdk_ext_type = "minimal"
在大多數情況下,構建最小的sdk時,還需要啟用有關系統生成的範圍更廣的軟體包的資訊。 需要更廣泛的資訊尤其如此,以便devtool add能夠有效地將在源樹中發現的依賴項對映到適當的配方。 另外,該資訊使devtool搜尋命令可以返回有用的結果。

sdk_include_pkgdata = "1"
有關其他資訊,請參見sdk_include_pkgdata變數。

設定sdk_include_pkgdata變數將導致構建「world」,以便可以使用其中包含的所有配方的資訊。 可用這些配方可以顯著增加構建時間,並且可以將sdk安裝程式的大小增加30-80 mb,具體取決於配置中包含的配方數量。

您可以將 exclude_from_world_pn-recipename用於要排除的recipe。 但是,假設要向sdk提供其他專案,則需要構建「world」。 因此,在大多數情況下,構建「world」不應代表不必要的開銷。、

注意

如果將sdk_ext_type設定為「 minimal」,則必須提供共享狀態映象,以便可以根據需要安裝專案。 有關更多資訊,請參見「 providing additional installable extensible sdk content」部分。

通過將sdk_include_toolchain變數設定為「 1」,可以在構建sdk時顯式控制是否包括工具鏈。 特別是,在將sdk_ext_type設定為「 minimal」(預設情況下,不包括工具鏈)時,包括工具鏈非常有用。 另外,如果您要構建乙個小型sdk以便與ide或其他一些不想使用額外步驟來安裝工具鏈的工具一起使用,這將很有幫助。

本章介紹了可以應用於標準sdk的自定義項。

使用bitbake -c populate_sdk構建標準sdk時,結果sdk中會包含一組預設的軟體包。 toolchain_host_task和toolchain_target_task變數控制新增到sdk的軟體包的集合。

如果要將單個軟體包新增到在主機上執行的工具鏈中,只需將這些軟體包新增到toolchain_host_task變數即可。 同樣,如果要將軟體包新增到在目標上執行的工具鏈的一部分的預設集合中,請將軟體包新增到toolchain_target_task變數。

Yocto自定義SDK(一)

本文描述了可應用於可擴充套件sdk的自定義項。可擴充套件的sdk主要包括從其生產的openembedded構建系統的預配置副本。因此,sdk的配置是使用該構建系統和下表中顯示的過濾器得出的。當存在這些過濾器時,openembedded構建系統將它們應用於local.conf和auto.conf 另外...

Android自定義開發SDK與呼叫

介紹以.jar aar包形式製作自己的sdk,並實現呼叫的過程。將使用opencv實現灰度化的方式打包為.jar aar包,並實現呼叫,opencv使用jni實現本地方法呼叫。建立乙個module用於製作sdk,opencv環境搭建和 編寫部分參考一下部落格 opencv環境搭建 android 在...

自定義sdk後專案引用問題

自定義sdk作為依賴供專案使用,總是發現,包依賴已經依賴去了,但是在使用時就是導不進去類所使用的包 最後發現是因為我用的springboot外掛程式打得可執行jar包,單純的依賴要打成不可執行jar包,打包外掛程式進行更換後解決 build plugins plugin artifactid m e...