Phytec中国的wiki
support@phytec.cn
热线:0755-61802110-803
yocto已经有很多实现好的软件包,可以很容易的添加进文件系统中。可以在
https://layers.openembedded.org/layerindex/branch/krogoth/recipes/
查找是否有包含。(请注意yocto版本,上面的链接为krogoth 2.1版本,其他版本请切换到对应版本查询)
如果不能用这种方式添加,自己也可以写一个layer和recipe来将软件添加进文件系统。
在yocto中增加软件分为几种情况,请看下面的目录:
软件位于已包含的layer中
1、查找BSP yocto的版本
2、http://layers.openembedded.org/layerindex/branch/krogoth/layers/
选择左侧BSP包YOCTO的版本,然后点击recipes,查找需要的软件的关键字,
3、在BSP包的目录运行. sources/poky/oe-init-build-env
搜索软件是否已被编译进BSP
bitbake -s | grep [software] bitbake -s | grep nfs-utils
4、在build/conf/local.conf添加软件包
# file build/conf/local.conf IMAGE_INSTALL_append = " nfs-utils" (nfs-utils前面有个空格)
软件位于其他未包含的layer
以下操作为添加meta-java这一层,增加其他layers可参考以下操作。
1、进入bsp包的sources目录下,添加meta-java这一层。
git clone git://git.yoctoproject.org/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文件,查看要修改的配置
vi 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等。
IMAGE_INSTALL_append = " \
perl \
perl-module-base \
perl-module-findbin"
具体有哪些包可以增加,可以在 build/tmp/work/cortex..../perl/5.2..../packages-split/ 中查找。