Board logo

标题: 使用 Yocto Project 构建自定义嵌入式 Linux 发行版具体流程 [打印本页]

作者: look_w    时间: 2018-1-7 15:00     标题: 使用 Yocto Project 构建自定义嵌入式 Linux 发行版具体流程

构建 Linux 发行版本节将展示如何使用 Poky(参考构建系统)构建一个基本的嵌入式 Linux 系统。这里描述的流程构建参考了发行版以及构建该发行版所需的所有工具。如果您愿意的话,也可以下载预编译好的二进制文件,以避免编译的需要。请阅读 Yocto Project Quick Start Guide(参见 ),了解有关的更多信息。
工具本身仅在 Linux 平台上受支持,特别是 Ubuntu、Fedora、CentOS 和 openSUSE。注意,虽然这些系统的最新发行版尚未列入受支持之列,但它们通常是支持该工具的,其他许多 Linux 发行版可能也支持该工具。
如果您的主机系统没有运行 Linux,或者如果您希望不安装任何东西就能继续运作,那么您可以下载 Yocto Project Build Appliance。这台虚拟机预安装了最新的官方 Yocto Project 发行版。Build Appliance 可在 VMWare Player 或 VirtualBox 中运行,并直接启动到 Hob GUI。如果您使用的是 Build Appliance,那么下面的大部分步骤已经完成,您可以直接跳到  一节。不过,我建议您还是阅读一下中间部分的内容,以便了解 Hob 在做些什么。另外,应该阅读 Yocto Project 网站上的一些 Hob 文档,参见 。
下载 Yocto Project 工具使用两种方法中的任意一种下载 Yocto Project。确保使用一个至少有 50GB 空闲空间的磁盘。建议空闲空间是 100GB。
初始化环境要初始化您的工作环境,请遵循以下步骤:
执行初始构建初始构建使用主机的编译器来构建交叉编译工具链和其他任何所需的构建工具。BitBake 还需要下载所有软件包,因此这可能需要花费一段时间。完成这些下载之后,您可以在 tmp/deploy/images 子目录中找到生成的映像。
清单 7. 初始构建映像
1
2
3
4
5
6
7
8
9
$ ls tmp/deploy/images
bzImage-3.2.11+gi...1.bin
bzImage-qemux86.bin
core-image-minimal-qemux86-20120506194741.rootfs.ext3
core-image-minimal-qemux86-20120506194741.rootfs.tar.bz2
core-image-minimal-qemux86.ext3
core-image-minimal-qemux86.tar.bz2
modules-3.2.11-yocto-standard-r1-qemux86.tgz
README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt




另外,查看一下 tmp/deploy/IMAGE/license.manifest 中的内容。这是整个映像中使用的所有许可的列表。
启动新映像完成构建之后,就可以使用模拟 32 位 x86 处理器的 QEMU 来启动映像。为此,只需运行:
1
$ runqemu qemux86




您可以作为 root 用户登录到机器,无需输入密码。祝贺您!您已成功构建了一个嵌入式 Linux 发行版。
您可以对最终映像、组成最终映像的程序包以及进程本身进行许多定制。构建系统是使用 Python 编写的,具有完整的文档记录。
测试插件 HobHob 是帮助自动化前面描述的一些过程的 GUI。Hob 的目标在于让构建过程更可见且易于理解。实际上,Hob 是一个 BitBake 前端,在 Hob 中可以执行的操作也可以从命令行执行(和脚本化)。不过,Hob 以图形方式显示了决策制定过程,描述了哪些程序包会构建到最终映像中。Hob 的一些其他功能包括修改现有映像、将自定义映像保存为模板、使用 QEMU 运行映像、将映像部署到某个 Universal Serial Bus (USB) 磁盘,以便在目标设备上实时启动。针对功能性和易用性的其他许多功能目前正在开发中。
要运行 Hob,只需从您的构建目录输入 hob,然后主界面会出现。首选选择一个架构(在本例中是 qemux86),然后 Hob 会解析可用配方,如 图 1 所示。
图 1. 图 1 Hob 映像配置然后您可以选择一个基本映像(前面的示例构建了 core-image-minimal,因此这些二进制文件已经存在)。选择 core-image-minimal,然后单击 View recipesView packages图 2 中的界面显示了 View packages 中的滚动列表。您可以选择或取消选择复选框,以包含程序包或将其移出构建项目。单击列标题,根据该列进行排序。
图 2. Hob 包在 Packages 选项卡上可以注意到,Python 没有包含在最低版本中。您可以通过选择 python-2.7.2-r2.14 复选框将其添加进来,如 图 3 所示。所有依赖项和子包也会立即包含在其中。
图 3. 在 Hob 中添加程序包单击 Build image,Hob 会根据您的选择构建一个新映像。在构建过程中,您可以查看日志,了解进展如何,或者单击 Issues 选项卡,看看是否存在任何问题。
然后您可以单击 Run Image,在 QEMU 仿真器中运行生成的映像,如  所示。
图 4. Hob 映像细节现在您可以通过检查确保 Python 已经包含在构建项目中,如  所示。
图 5. 验证添加成功




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0