Yocto 学习(QEMU X86-64)

/ 0评 / 1

准备环境:

  1. 240G 磁盘空间(SSD 最佳,大概需要经历600G的写入量,做好心理准备.)
  2. Ubuntu 16.04 x64 (必须是英文原版,不能是优麒麟等.)
  3. 靠谱的网络连接(可以顺利访问GitHub等,要产生约30GB下载数据.如果不具备,远程服务器体验吧.)

我的配置如下:

  1. E3-1270V6 (Run Ubuntu directly)
  2. 32G DDR4 2133MHz (4 * 8GB)
  3. Intel SSD DC S3520 240G

如果虚拟机实在不够用,也可以使用物理机编译.也可以去购买时长付费的独服,或者裸金属服务器.
推荐链接:https://www.lijingquan.net/archives/4018
其实全程用SSH操作就可以,图形上也没什么东西的.
登陆后安装一大堆软件(1G 左右空间):

apt-get install wget git-core unzip make vim gcc g++ screen 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 gcc g++ htop nload iotop

还要创建一个普通权限账号.

adduser ubuntu
usermod -a -G sudo ubuntu

然后创建工作目录(yocto_downloads 目录储存的是软件源码包.可以共享,挂载到NFS分区也可以哦.):

mkdir yocto
mkdir yocto_downloads

然后拉取代码并解压(在yocto目录).

wget http://downloads.yoctoproject.org/releases/yocto/yocto-2.4.2/poky-rocko-18.0.2.tar.bz2
tar xvjf poky-rocko-18.0.2.tar.bz2
cd poky-rocko-18.0.2/

继续进入poky目录:

. ./oe-init-build-env

然后编辑conf/local.conf文件,取消部分注释并作如下修改(这个配置是生成VDI/VMDK镜像且尽量打包更多软件的配置.).

MACHINE ?= "qemux86-64"
DL_DIR ?= "/home/ubuntu/yocto_downloads"
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
TMPDIR ?= "${TOPDIR}/tmp"
SDKMACHINE ?= "x86_64"
PACKAGE_CLASSES ?= "package_rpm package_ipk package_deb"
EXTRA_IMAGE_FEATURES = "dbg-pkgs dev-pkgs ptest-pkgs tools-sdk tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks"
IMAGE_FSTYPES = "wic.vdi wic.vmdk"
BB_NUMBER_THREADS = "16"
PARALLEL_MAKE ?= "-j 16"

使用toaster固然是很好的工具,但是我还是不喜欢,还是打命令比较爽快.而hob,早就废除了.
因为构建时间很长,我又不可能长时间占用SSH,所以我开了个screen(对,就是用screen命令.)再编译.你也可以直接编译.

time bitbake world

上面这个是构建完整的(加入time是为了看看最终需要多长时间),包含默认包里面的一切,先构建一次.(其实还有其他目标,比如什么都编译进去的bitbake world,但是时间就很长了.),这时候觉得你的固态比较卡,这也是正常的,毕竟4K密集,再好的SSD,他也有个上限,所以CPU反而不是最主要的.

简单的扫描后,就开始拉取,编译,我需要完成12318个任务(当然,每个人看起来不太一样.)

这时候看到CPU基本是跑满,满屏幕都是RUN状态,看起来就很爽有木有.

而且看磁盘瓶颈也不高,还是多升级CPU好.

正确做法是,放一边,几个小时后就会好.然后247分钟后完成了~ (4小时)

对应文件生成~

完整有了所用东西,再编译,就只是个打包操作就很快了.一进入任务就99%了~

6分钟就有结果了~

相应虚拟机文件也有了~

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注