Yocto 1:Ubuntu下开发环境搭建
关键词:pocky,bitbake,qemu等等。
Ubuntu版本:Ubuntu 20.04.4 LTS。
1 环境配置以及仓库下载
更新Ubuntu下开发Yocto所需要的软件包:
sudo apt-get install wget git-core unzip \ make gcc g++ build-essential \ subversion sed autoconf automake \ texi2html texinfo coreutils diffstat \ python-pysqlite2 docbook-utils libsdl1.2-dev \ libxml-parser-perl libgl1-mesa-dev libglu1-mesa-dev \ xsltproc desktop-file-utils chrpath \ groff libtool xterm gawk fop pzstd zstd
更新Yocto仓库:
git clone git://git.yoctoproject.org/poky
如果较慢,可以使用如下仓库下载:
git clone https://gitee.com/arnoldlu/poky.git
切换到特定版本:
git checkout dunfell-23.0.22
配置环境变量:
source oe-init-build-env
2 修改配置并编译
编辑conf/local.conf文件,打开对如下配置的注释:
DL_DIR ?= "${TOPDIR}/downloads" SSTATE_DIR ?= "${TOPDIR}/sstate-cache" TMPDIR ?= "${TOPDIR}/tmp" PACKAGE_CLASSES ?= "package_rpm" SDKMACHINE ?= "i686"
支持的目标版本,包括:
core-image-minimal:最小镜像,仅能启动但很多共呢个无法使用。
core-image-base:在minimal基础上增加硬件支持包。 core-image-sato:在base基础上增加Sato的GUI演示。 meta-toolchain meta-ide-support
更多关于镜像的说明,参考:《11 Images — The Yocto Project ® 3.1.23 documentation》。
编译特定目标:
bitbake core-image-minimal
如果出现“ Unable to connect to bitbake server, or start one (server startup failures would be in bitbake-cookerdaemon.log)”,可以参考《[Solved] Unable to start bitbake server | 9to5Answer》解决问题。
查看仓库支持的目标:
ll meta*/recipes*/images/*.bb
3 运行Yocto项目
编译完成后,通过runqemu qemux86-64即可使用。
runqemu qemux86-64
输入root,即可进入shell:
如果编译的是core-image-sato,runqemu qemux86-64界面如下:
通过Ctrl-Alt-C退出QEMU界面。
qemu-system-x86_64
-device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02--创建一个虚拟网络IO口,配置mac。
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no--配置一个TAP网络后端设备。
-drive file=.../build/tmp/deploy/images/qemux86-64/core-image-minimal-....rootfs.ext4,if=virtio,format=raw--配置一个磁盘,内容为core-image-minimal-xxx.rootfs.ext4,格式为raw。
-show-cursor--虚拟机上显示光标。
-usb--使能虚拟机USB控制器。
-device usb-tablet--使能usb-tablet设备。
-object rng-random,filename=/dev/urandom,id=rng0--创建rng-rando object。
-device virtio-rng-pci,rng=rng0--增加virtio-rng设备。
-cpu core2duo--选择虚拟机CPU型号。
-m 256--配置虚拟机内存大小。
-serial mon:vc--给QEMU monitor创建一个vc串口。
-serial null--一个void设备。
-kernel /home/al/yocto/poky/build/tmp/deploy/images/qemux86-64/bzImage--Linux kernel镜像。
-append 'root=/dev/vda rw mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 oprofile.timer=1 '--Kernel的command line。
联系方式:arnoldlu@qq.com