参考链接:Yocto Project Quick Build — The Yocto Project ® dev documentation
安装host环境
sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool
安装好相应的package
如果需要更多的package 可以参考链接package
Use git to clone poky
git clone git://git.yoctoproject.org/poky
进入poky并切换到相应的分支
cd poky git fetch --tags git tag git branch -a git checkout tags/yocto-3.1 -b my-yocto-3.1
Build your image
初始化环境
cd ~/poky
source oe-init-build-env
检查conf文件夹下的local.conf文件
默认编译的target 是qemux86-64
为了加快编译速度,可以使用缓存镜像
SSTATE_MIRRORS = "\
file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \
file://.* http://sstate.yoctoproject.org/3.0.2/PATH;downloadfilename=PATH \n \
file://.* http://sstate.yoctoproject.org/3.1/PATH;downloadfilename=PATH \n \
”
开始编译
bitbake core-image-sato
如果碰到fetch fail
可以先bitbake core-image-minimal或者在其它时间段网络比较好的时候再bitbake
运行仿真
runqemu qemux86-64
创建自己的layer
创建一个meta-layer
bitbake-layers create-layer ../meta-mylayer
bitbake-layers add-layer ../meta-mylayer
这个命令就是在conf里面的local.conf里添加了meta-mylayer目录
还可以使用bitbake-layers show-layers 来查看添加了哪些layers
添加meta-mylayer之后,会在meta-mylayer/recipes-example/example/里有example_0.1.bb文件生成。
然后编译example
bitbake example
生成的image文件都在这个目录
生成的根文件系统如下