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)}"