yocto 快速构建

1.git clone git://git.yoctoproject.org/poky.git
Cloning into ‘poky’…
fatal: unable to connect to git.yoctoproject.org:
git.yoctoproject.org[0: 44.225.90.102]: errno=Connection timed out
换个地址下载:
git clone https://git.yoctoproject.org/git/poky

2.安装yoctor所需要的安装包:

sudo apt-get install sed wget subversion git-core coreutils
unzip texi2html texinfo libsdl1.2-dev docbook-utils fop gawk
python-pysqlite2 diffstat make gcc build-essential xsltproc
g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev
autoconf automake groff libtool xterm libxml-parser-perl

3.创建自己的layer
1.创建
bitbake-layers create-layer …/meta-mylayer
2.添加
bitbake-layers add-layer …/meta-mylaye

4:根据已经存在github生成recipe
1) 进入build目录
2) devtool add giflib git://github.com/rcancro/giflib ->在workspace/recipes/目录下可以看见自己建立giflib目录
3) devtool build giflib -> giflib编译
4) devtool build-image core-image-minimal -> 打包进入image
5) devtool finish giflib meta-layer -> 把giflib 增加到meta-layer中,可以看到meta-layer有recipres-giflib

5.Yocto 变量选择 bb.utils.contains 使用
Yocto 使用某些变量可能需要使用写选择判断,layer openembeded-core 专用接口,可以直接使用。

ABC = “${@bb.utils.contains('val', 1', 'true', 'false ', d)}"

val = 1 则 ABC 赋值 true,否则 ABC 赋值 false

实际举例如下:

CFLAGS_prepend = "${@bb.utils.contains('GCCVERSION', '4.6.3', ' -std=c99', ' ', d)}"

实现功能:

如果  'GCCVERSION' = '4.6.3'  则  CFLAGS_prepend 赋值为 ' -std=c99' ,否则 CFLAGS_prepend 赋值为空。

注意事项:

1) 是’GCCVERSION’ 而不是 ${GCCVERSION’}

2) 红色位置$ 一定要加。
其他举例:(红色$ 表示本意)

LDFLAGS_prepend = "${@bb.utils.contains('GCCVERSION', '4.6.3', ' -L${COMPONENTS_DIR}/${PACKAGE_ARCH}/libnsl2-external/usr/lib ', '', d)}"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值