yocto可以方便的安裝很多軟件包,且可以容易的添加進文件系統中。可以在
https://layers.openembedded.org/layerindex/branch/krogoth/recipes/
查找是否有包含。(請注意yocto版本,上面的鏈接為krogoth 2.1版本,其他版本請切換到對應版本查詢 BSP版本、設備樹、config文件對照表/ BSP version, device tree, config file cross reference table)
如果沒有搜到這個軟件,也可以通過自己寫一個layer的方式將軟件添加進yocto。
在yocto中增加軟件分為幾種情況,請看下面的目錄:
首先用第一個方法確定需要的軟件是否包括在已包含的layer內。
然後通過在openembedded網站搜索看layer的名稱用第二中方式增加layer。
另外yocto還支持類似ubuntu apt的安裝軟件方式 在yocto使用包管理系統/ yocto how to use package management system。
軟件位於已包含的layer中
在BSP環境中搜索軟件是否已被編譯進BSP
bitbake -s | grep [software]
|
如:
% bitbake -s | grep nfs-utils
nfs-utils :1.3.4-r0
|
在build/conf/local.conf添加軟件包
# file build/conf/local.conf
IMAGE_INSTALL_append = " nfs-utils" (nfs-utils前面有个空格)
|
然後編譯即可。
軟件位於其他未包含的layer
在openembedded網站搜索recipe openjdk8,可以搜到這個頁面 https://layers.openembedded.org/layerindex/recipe/66213/
其中說明了這個recipe是包括在 meta-java中的,則需要用這個方法來先增加layer,再添加軟件。
以下操作為添加meta-java這一層為例,增加其他layers可參考以下操作。
1、進入bsp包的sources目錄下,添加meta-java這一層。
2、下載好meta-jave層後,進入meta-java的目錄下,切換分支,請按照yocto的版本來切換對應的分支,yocto的版本可以在BSP的releasenote中看到,如 ftp://ftp .phytec.cn/AM335x/BSP-Yocto-AM335x-PD16.2.0/ReleaseNotes
以下以krogoth版本的yocoto為例。
cd meta-java
git checkout origin /krogoth <- 注意版本
|
3、打開README文件,查看要修改的配置
注意下面的內容是krogoth版本readme,其他版本可能不同。
Usage instructions
------------------
You should define at least the following variables in a distro include file or local .conf
# Possible provider: cacao-initial-native and jamvm-initial-native
PREFERRED_PROVIDER_virtual /java-initial-native = "cacao-initial-native"
# Possible provider: cacao-native and jamvm-native
PREFERRED_PROVIDER_virtual /java-native = "jamvm-native"
# Optional since there is only one provider for now
PREFERRED_PROVIDER_virtual /javac-native = "ecj-bootstrap-native"
Simply rely on openjdk-7-jre, openjdk-7, openjdk-8 or openjre-8.
For conf /bblayers .conf you have to add
BBLAYERS ?= " \
...
path_to_source /meta-openembedded/meta-oe \
path_to_source /sources/meta-java \
"
|
4、根據README的指導修改build/conf/local.conf文件,在local.conf增加以下幾行,注意下面的內容是krogoth版本操作,其他版本可能不同,請參考readme文件。
# Possible provider: cacao-initial-native and jamvm-initial-native
PREFERRED_PROVIDER_virtual /java-initial-native = "cacao-initial-native"
# Possible provider: cacao-native and jamvm-native
PREFERRED_PROVIDER_virtual /java-native = "cacao-native"
# Optional since there is only one provider for now
PREFERRED_PROVIDER_virtual /javac-native = "ecj-bootstrap-native"
|
5、根據README,修改bbplayers.conf文件的BBLAYERS,增加meta-java這一層,注意下面的內容是krogoth版本操作,其他版本可能不同,請參考readme文件。
BBLAYERS ?= " \
${OEROOT} /meta \
${OEROOT} /meta-poky \
${OEROOT}/.. /meta-phytec \
${OEROOT}/.. /meta-yogurt \
${OEROOT}/.. /meta-openembedded/meta-oe \
${OEROOT}/.. /meta-openembedded/meta-networking \
${OEROOT}/.. /meta-openembedded/meta-python \
${OEROOT}/.. /meta-openembedded/meta-multimedia \
${OEROOT}/.. /meta-qt5 \
${OEROOT}/.. /meta-java \
${OEROOT}/.. /meta-openembedded/meta-ruby \
"
|
6、修改build/conf/local.conf文件,增加openjdk-8軟件,注意下面的內容是krogoth版本操作,其他版本可能不同,請參考readme文件。
IMAGE_INSTALL_append = " openjdk-8"
|
7、重新編譯鏡像即可。
為已包含的軟件增加額外的庫,如python, perl等。
修改build/conf/local.conf文件中的下面這個選項,然後增加額外的包。
IMAGE_INSTALL_append =“ \
perl \
perl-module-base \
perl-module-findbin”
具體有哪些包可以增加,可以在build/tmp/work/cortex..../perl/5.2..../packages-split/ 中查找。
怎樣刪除在鏡像中的軟件包
在build/conf/local.conf中增加
PACKAGE_EXCLUDE = "package_name package_name package_name ..."
|
來刪除軟件。
資料來源: https://blog.csdn.net/jacobywu/article/details/82842785
沒有留言:
張貼留言