LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

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。

 

参考:《Yocto Project Quick Build》、《QEMU documentation》。

posted on 2023-03-17 23:59  ArnoldLu  阅读(683)  评论(0编辑  收藏  举报

导航