2015-02-06 533 views
1

我想將應用程序拆分成多個包。基本上我只是想添加一個可以通過使用特定圖像構建的另一個。Bitbake錯誤 - Nothing RPROVIDES

內部關聯到我增加了應用程序的.bb文件:

SRC_URI = " \ 
      ... 
      file://api.conf \ 
      file://script.sh \ 
      " 

PACKAGES =+ "${PN} ${PN}-tools" 

FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh \ 
        ${sysconfdir}/mrvl/api.conf \ 
        " 

然後,我添加了下面一行在我的BB圖像測試

IMAGE_INSTALL += " mrvl-tools" 

我bitbake的使用的圖像 - 命令測試哪個返回:

ERROR: Nothing RPROVIDES 'mrvl-tools' (but /home/usr/../image-test.bb RDEPENDS on or otherwise requires it) 
NOTE: Runtime target 'mrvl-tools' is unbuildable, removing... 
Missing or unbuildable dependency chain was: ['mrvl-tools'] 
ERROR: Required build target 'image-test' has no buildable providers. 
Missing or unbuildable dependency chain was: ['image-test', 'mrvl-tools'] 

我跟着bluez5-obex包和IM的相同定義AGE_ISTALL + =「bluez5-obex」的作品..

我忘了什麼?

+0

什麼是「MRVL工具」?你也必須有一個配方。 – KBart 2015-02-06 12:28:21

+0

我已經有了一個「mrvl」食譜,我在/ mrvl/files下添加了script.sh和api.conf,我只是想分開配方,以便將這兩個文件都包含在我的專用於測試的圖像中。我遵循:http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#splitting-an-application-into-multiple-packages – ogs 2015-02-06 12:37:19

+0

請安裝script.sh和api在do_install()中配置.conf否則,mrvl-tools將是空的,因此不會創建... – Anders 2015-02-06 13:12:18

回答

1

安德斯很近。

首先,你的PACKAGES定義是錯誤的,你需要的只是PACKAGES + =「$ {PN} -tools」。

但要記住的重要一點是FILES是按包裝順序評估的,因此首先處理$ {PN},默認文件_ $ {PN}包含$ {bindir} $ {sysconfdir},因此全部爲$ {bindir}和$ {sysconfdir}的位於$ {PN}中。然後它會嘗試處理$ {PN}工具,並且其FILES中的表達式都不匹配任何剩餘的文件,因此該包爲空。

所以,無論是文件集_ $ {PN}你要它包含,或使用PACKAGE_BEFORE_PN = $ {PN}什麼-tools在默認包值之前 PN注入PN-工具。閱讀bitbake.conf將有助於使這個更清晰,我保證。

請注意,我已經預料到錯誤是一個rootfs時間故障,而不是圖像構造失敗,但希望這是問題所在。

0

感謝羅斯伯頓給你回答。但是我修改了的.bb文件,它目前包含以下行:

SUMMARY_${PN}-tools="mrvl tools test" 
PACKAGE_BEFORE_PN += "${PN}-tools" 
RDEPENDS_${PN}-tools = "" 

FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh ${sysconfdir}/mrvl/api.conf" 
ALLOW_EMPTY_${PN}-tools = "1" 

構建完成,包名爲MRVL試驗tools_0.1-r0.ipk很好下/編譯創建的/ tmp /部署/ ipk/board /但它不包含任何內容。這是由於變量「ALLOW_EMPTY .. =」1「」。沒有這個線構建失敗,並顯示

Collected errors: 
* opkg_install_cmd: Cannot install package mrvl-test-tools. 

ERROR: Function failed: do_rootfs 
ERROR: Logfile of failure stored in: /home/../build/tmp/work/oe-linux/test-img/1.0-r0/temp/log.do_rootfs.4639 
ERROR: Task 7 (/home/../sources/meta-board/recipes-images/images/test-img.bb, do_rootfs) failed with exit code '1' 

我下面的消息不明白爲什麼文件現在還沒有納入.ipk

+0

你能告訴我們完整的.bb文件嗎?由於mrl-test-tools仍然是空的,我認爲你沒有正確地安裝script.sh和api.conf。因此,我希望看到完整的配方。並刪除'ALLOW_EMPTY _ $ {PN} -tools =「1」',因爲你不想得到一個空包。該圖層是公開的嗎? – Anders 2015-02-10 08:59:24