Yocto Project 快速构建 (一)

240 篇文章 11 订阅
30 篇文章 3 订阅

1. 简短的开篇介绍

写这篇文章的目的主要在于让我们能够明晰使用Yocto project构建一个典型镜像的过程.文中将会简单的介绍一下如何对指定的硬件进行一次构建配置.这里我们将使用Yocto project构建它的可移植发行系统Poky.

建议最好使用运行最新Ubuntu Linux发行版的本机Linux系统.Yocto项目与WSLv1(Windows Subsystem For Linux v1)不兼容,它与WSLv2兼容,但没有得到官方支持或验证,如果您仍然决定使用WSL,请升级到WSLv2.

如果需要有关Yocto项目的更多概念或背景信息,请查看Yocto项目概述和概念手册.

2. 可用的Linux配置

确保你的主机满足下列的配置要求:

  • 50G或者更多的剩余磁盘空间
  • Linux发行版系统(Fedora, openSUSE, CentOS, Debian, or Ubuntu等).
  • Git 1.8.3.1 or greater
  • tar 1.28 or greater
  • Python 3.5.0 or greater
  • gcc 5.0 or greater

如果你的主机有任何不满足以上版本需求的,你都将无法开始接下来的工作,所以请确保你的系统满足这些要求.

3. 构建主机包

必须在构建主机上安装基本主机软件包.以下命令基于Ubuntu发行版安装主机软件包:

$ sudo apt-get install gawk wget git-core diffstat unzip
 texinfo gcc-multilib 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

有关所有受支持的Linux发行版上的主机软件包要求,请参阅Yocto项目参考手册中的“构建主机所需的软件包”部分.

4. 使用git工具获取Poky

到这里,你已经在你的主机上完成了基本的环境配置,接下来,你需要复制Poky仓库到主机上,命令如下:

$ git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
remote: Counting
objects: 432160, done. remote: Compressing objects: 100%
(102056/102056), done. remote: Total 432160 (delta 323116), reused
432037 (delta 323000) Receiving objects: 100% (432160/432160), 153.81 MiB | 8.54 MiB/s, done.
Resolving deltas: 100% (323116/323116), done.
Checking connectivity... done.

拉取完成后,切换到Poky目录,查看标签:

$ cd poky
$ git fetch --tags
$ git tag
1.1_M1.final
1.1_M1.rc1
1.1_M1.rc2
1.1_M2.final
1.1_M2.rc1
.
.
.
yocto-2.6.1
yocto-2.6.2
yocto-2.7
yocto_1.5_M5.rc8

这里我们使用的是yocto-3.2.1版本,所以根据标签把它检出出来:

$ git checkout tags/yocto-3.2.1 -b my-yocto-3.2.1
Switched to a new branch 'my-yocto-3.2.1'

Git checkout命令将会自动创建一个名为my-yocto-3.2.1的本地分支.在Yocto Project yocto-3.2.1发行时,这个分支中可使用的文件与gatesgarth开发分支中的存储库文件完全匹配.
有关访问Yocto Project相关存储库的更多选项和信息,请查看《Yocto Project开发任务手册》中的查找Yocto项目源文件部分.

5. 构建镜像

接下来,按照以下的步骤你将完成镜像构建.构建过程将会根据源码构建一个完整的Linux发行版,包括工具链.

如果你开启了防火墙,并且主机上没有设置代理,在构建过程中获取源代码时可能会遇到一些问题(例如,获取失败或Git失败).
如果不了解代理设置,请查阅本地网络组织资源并获取相关信息.另一个好的开始也可以是检查Web浏览器的设置.最后,也可以在Yocto Project Wiki的[网络代理中工作](https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy)页面上找到更多信息.

5.1 初始化构建环境:在Poky目录下,运行oe-init-build-env环境设置脚本以完成主机上的Yocto Project构建环境的定义.

$ cd ~/poky
$ source oe-init-build-env
.
.
### Shell environment set up for builds. ###

You can now run 'bitbake <target>'

Common targets are:
    core-image-minimal
    core-image-sato
    meta-toolchain
    meta-ide-support

You can also run generated qemu images with a command like 'runqemu qemux86-64'

5.2 检查本地配置文件:当你完成构建环境的设置后,构建目录下的conf子目录中将产生一个local.conf本地配置文件.本次示例中,我们默认使用的是qemux86构建目标,它仅适用于仿真.使用的软件包管理器设置为RPM软件包管理器.

可以使用镜像源显著加快构建速度,并防止获取程序失败,将以下内容添加到Build目录中的local.conf文件中:
SSTATE_MIRRORS = "\
    file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \
    file://.* http://sstate.yoctoproject.org/3.1.5/PATH;downloadfilename=PATH \n \
    file://.* http://sstate.yoctoproject.org/3.2.1/PATH;downloadfilename=PATH \n \
"

5.3 开始构建:使用以下命令为目标机器构建操作系统:

$ bitbake core-image-sato

关于bitbake命令的详细信息,请查看《Yocto项目概述和概念手册》的bitbake章节.

5.4 使用QEMU模拟镜像:生成此特定映像后,可以启动QEMU,它是Yocto Project附带的快速EMUlator:

$ runqemu qemux86-64

如果你想要了解关于QEMU运行相关的内容,请查看《Yocto项目开发任务手册》的使用快速仿真器(QEMU).

5.5 退出QEMU:通过单击shutdown图标或在QEMU的QEMU脚本窗口中键入Ctrl-C退出QEMU.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值