2016-08-09 55 views
0

我有一個需要一段時間編譯的Yocto項目。最終的圖像是爲了運行我的應用程序,因此,我在自己的圖層中有一個自定義配方。可以使用SDK構建Yocto配方嗎?

由於構建整個Yocto圖像需要幾個我們的,我建立一個SDK,所以我可以交叉編譯我的應用程序,並將二進制文件傳輸到正在運行的設備進行測試。

而是編譯二進制文件,並具有手動將其傳送到設備, 我可以使用Yocto食譜我爲我的SDK應用程序,這樣我可以「呼」的do_package()寫的?如果其他開發人員可以通過SDK簡單地構建.deb(假設PACKAGE_CLASSES = "package_deb"local.conf),這可以大大簡化我們的工作流程。

謝謝!

+0

據我所知,這是不可能的,但你可以在一個構建服務器上設置一個yocto環境,並讓其他開發者運行「bitbake 」 – g0hl1n

+0

初始構建過程需要幾個小時你第一次運行它。隨後的構建將運行得更快(不到一分鐘),因爲大量構建將被緩存。 – aebudak

+0

目標是不必重建一切。一些開發人員正在虛擬機內部工作,因此即使他們想要有時構建我們的代碼,重建yocto也不存在問題。至於共享構建服務器,我們確實有這個,但不能擴展。只有一個'bitbake'(每個項目的git克隆)可以隨時運行,或者有多個克隆複製磁盤空間和時間。我只想編譯我們自己的代碼,而不是整個yocto發行版... –

回答

3

呵呵,bluelightning擊敗了我一拳。這會教我不刷新。 Anyhoo,這是我的2¢:

是的,看看devtool。 devtool腳本的目標是改進和簡化目標設備軟件的開發。

首先,有你的開發人員安裝擴展SDK(eSDK),這是使用此命令內置:一旦你採購這個SDK

bitbake -c populate_sdk_ext my-image-name 

,運行這些命令:

devtool modify my-recipe-name 
...make your changes to [sdk]/workspace/source/my-recipe-name... 
devtool build my-recipe-name 
devtool package my-recipe-name 

這應該在[sdk]/tmp/deploy/rpm/[arch]/my-recipe-name中生成應用程序包,然後可以將其部署到目標機器。

另外,如果您的目標機器具有網絡連接,請查看devtool deploy-target

如果你給我一些關於你的設置的更多細節,我可能會幫助更多。希望這至少能讓你指出正確的方向。

+0

謝謝!這正是我所需要的。我已經寫好了我的食譜,我主要需要一種方法來構建它,而不需要先建立整個圖像。 'devtool build my-recipe-name'似乎正是我所需要的。不幸的是,我很難讓它工作。我得到'不能碰到/ qt.conf'。如果我在'meta-qt5/classes/populate_sdk_qt5_base.bbclass'中創建目錄,那麼sdk會生成,但無法通過'SDK準備失敗'進行安裝。該日誌顯示了python + cmake,'ambiguous redirect'和'apt-native'配置錯誤的錯誤。可能是因爲我在jethro和舊的'meta-qt5'上... –

2

這實際上就是Extensible SDK的設計目的 - 提供預先構建和預配置的環境,並允許您以完全構建系統構建應用程序和其他組件的方式構建應用程序和其他組件。如果在目標上運行ssh服務器,您甚至可以輕鬆地將輸出文件部署到目標設備。

您可以建立與以下命令擴展SDK:

bitbake -c populate_sdk_ext <imagename> 

爲您不妨讀一讀新SDK manual更多信息。

相關問題