目录
开发机的基本条件" >开发机的基本条件
Yocto 编译构建过程" >Yocto 编译构建过程
首页 系统教程 操作系统 Yocto入门教程:在Ubuntu上打造你的定制Linux系统

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

Feb 10, 2024 pm 10:12 PM
linux linux教程 linux系统 linux命令 外壳脚本 嵌入式linux linux入门 linux学习

如果你是一名嵌入式开发者,你可能会遇到这样的问题:如何为你的硬件平台创建一个适合的Linux系统?如何定制Linux系统的功能和外观?如何保证Linux系统的安全和稳定?这些问题都可以通过使用Yocto项目来解决。Yocto项目是一个开源的协作项目,它可以帮助你创建自定义的Linux系统,无论你的硬件架构是什么。Yocto项目提供了一套灵活的工具和资源,让你可以从零开始构建你自己的Linux发行版,或者基于现有的Linux发行版进行修改和优化。本文将为你介绍如何使用Yocto在Ubuntu上创建一个最小化的Linux发行版,以及Yocto的基本概念和工作流程。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

开发机的基本条件

最少 4-6 GB 内存

最新版的 Ubuntu 系统(本文使用了 16.04 LTS)

磁盘剩余空间至少 60-80 GB

在创建 Linux 发行版之前先安装下面的软件包

下载最新的 Yocto(Poky 是其最小开发环境)稳定分支

apt-get update
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
登录后复制
Yocto入门教程:在Ubuntu上打造你的定制Linux系统

如下所示,开发环境要安装的软件包将近 1GB 大小。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

在这个教程中,系统上克隆的是 poky 的 morty稳定分支。

git clone -b morty git://git.yoctoproject.org/poky.git
登录后复制
Yocto入门教程:在Ubuntu上打造你的定制Linux系统

进入 poky目录,然后运行下面的命令为 Yocto 开发环境设置(设置/导出)一些环境变量。

source oe-init-build-env
登录后复制

如下所示,在运行了 open embedded (oe) 的构建环境脚本之后,终端里的路径会自动切换到 build 目录,以便进行之后行发行版的的配置和构建。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

上面的截屏展示了在 conf目录下创建的文件 local.conf。这是 Yocto 用来设置目标机器细节和 SDK 的目标架构的配置文件。

如下所示,这里设置的目标机器是 qemux86-64。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

如下面截图所示,在 local.conf中取消下面参数的注释符号。

DL_DIR ?= "${TOPDIR}/downloads"
登录后复制
Yocto入门教程:在Ubuntu上打造你的定制Linux系统
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
登录后复制
Yocto入门教程:在Ubuntu上打造你的定制Linux系统
TMPDIR ?= "${TOPDIR}/tmp"
登录后复制
Yocto入门教程:在Ubuntu上打造你的定制Linux系统
PACKAGE_CLASSES ?= "package_rpm"
SDKMACHINE ?= "i686"
登录后复制
Yocto入门教程:在Ubuntu上打造你的定制Linux系统

如下所示,在 local.conf中为基于 Yocto 的 Linux 设置空密码和后续的一些参数。否则的话用户就不能登录进新的发行版。

EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
登录后复制
Yocto入门教程:在Ubuntu上打造你的定制Linux系统

我们并不准备使用任何图形化工具来创建 Linux OS,比如 toaster (hob 已经不再支持了)。

Yocto 编译构建过程

现在运行下面的 bitbake工具命令开始为选定的目标机器下载和编译软件包。

bitbake core-image-minimal
登录后复制
Yocto入门教程:在Ubuntu上打造你的定制Linux系统

非常重要的是要在普通 Linux 用户下运行上面的命令,而不是使用 root 用户。如下面截图所示,当你在 root 用户下运行 bitbake 命令会产生下面所示的错误。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

再一次运行导出环境变量的脚本(oe-init-build-env),重新执行相同的命令来启动下载和编译过程。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

如下所示,构建脚本组件的第一步工作是解析配置(recipe)。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

下面的截图展示了构建脚本的解析过程。同时也显示了用来构建你的新的基于 yocto 的发行版的构建系统的细节。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

在下载了 SDK 和必要的库之后,下一步工作是下载并编译软件包。如下截图展示了为构建新发行版而执行的任务。这一步将会执行 2-3 小时,因为首先要下载需要的软件包,然后还要为新的 Linux 发行版编译这些软件包。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

下面的截图表明了任务列表执行完毕。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

为目标机器类型 qemux86-64 编译好的新镜像位于 build/tmp/deploy/images/qemux86-64:

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

如下所示,上面的命令如果运行在 Putty上会产生一个错误。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

通过 rdp 在 Ubuntu 平台上再次运行上面的命令。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

为运行新的基于 Yocto 的 Linux 发行版的 qemu 打开一个新屏幕。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

下面展示了新发行版的登录界面,同时也显示了使用的 yocto 项目的版本号。默认的用户名是 root,密码为空。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

最后使用 root用户名和空密码登录新发行版。如下截图所示,在这个最小版本的 Linux 上运行了基本的命令(data、ifconfig和uname)。

Yocto入门教程:在Ubuntu上打造你的定制Linux系统

本文的目标是理解使用 Yocto 创建新的 Linux 发行版的过程。

通过本文,你已经了解了如何使用Yocto在Ubuntu上创建一个最小化的Linux发行版,以及Yocto的基本概念和工作流程。你可以使用Yocto来为你的嵌入式设备或其他场景定制一个适合的Linux系统,满足你的需求和偏好。当然,这只是Yocto项目提供的众多功能和选项中的一部分,如果你想深入学习Yocto项目和嵌入式Linux开发,还需要不断地探索和实践。希望本文能够对你的学习和工作有所帮助,也欢迎你分享你自己使用或发现的其他实用的Yocto技巧。

以上是Yocto入门教程:在Ubuntu上打造你的定制Linux系统的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

apache80端口被占用怎么办 apache80端口被占用怎么办 Apr 13, 2025 pm 01:24 PM

当 Apache 80 端口被占用时,解决方法如下:找出占用该端口的进程并关闭它。检查防火墙设置以确保 Apache 未被阻止。如果以上方法无效,请重新配置 Apache 使用不同的端口。重启 Apache 服务。

互联网在Linux上运行吗? 互联网在Linux上运行吗? Apr 14, 2025 am 12:03 AM

互联网运行不依赖单一操作系统,但Linux在其中扮演重要角色。Linux广泛应用于服务器和网络设备,因其稳定性、安全性和可扩展性受欢迎。

linux怎么启动nginx linux怎么启动nginx Apr 14, 2025 pm 12:51 PM

在 Linux 中启动 Nginx 的步骤:检查 Nginx 是否已安装。使用 systemctl start nginx 启动 Nginx 服务。使用 systemctl enable nginx 启用在系统启动时自动启动 Nginx。使用 systemctl status nginx 验证启动是否成功。在 Web 浏览器中访问 http://localhost 查看默认欢迎页面。

怎么启动nginx服务器 怎么启动nginx服务器 Apr 14, 2025 pm 12:27 PM

启动 Nginx 服务器需要按照不同操作系统采取不同的步骤:Linux/Unix 系统:安装 Nginx 软件包(例如使用 apt-get 或 yum)。使用 systemctl 启动 Nginx 服务(例如 sudo systemctl start nginx)。Windows 系统:下载并安装 Windows 二进制文件。使用 nginx.exe 可执行文件启动 Nginx(例如 nginx.exe -c conf\nginx.conf)。无论使用哪种操作系统,您都可以通过访问服务器 IP

怎么查看nginx是否启动 怎么查看nginx是否启动 Apr 14, 2025 pm 01:03 PM

确认 Nginx 是否启动的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 检查端口 80 是否开放;3. 查看系统日志中 Nginx 启动消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

nginx403怎么解决 nginx403怎么解决 Apr 14, 2025 am 10:33 AM

如何解决 Nginx 403 Forbidden 错误?检查文件或目录权限;2. 检查 .htaccess 文件;3. 检查 Nginx 配置文件;4. 重启 Nginx。其他可能原因还包括防火墙规则、SELinux 设置或应用程序问题。

nginx403错误怎么解决 nginx403错误怎么解决 Apr 14, 2025 pm 12:54 PM

服务器无权访问所请求的资源,导致 nginx 403 错误。解决方法包括:检查文件权限。检查 .htaccess 配置。检查 nginx 配置。配置 SELinux 权限。检查防火墙规则。排除其他原因,如浏览器问题、服务器故障或其他可能的错误。

Nginx服务器安装与快速配置指南 Nginx服务器安装与快速配置指南 Apr 13, 2025 pm 10:18 PM

本文介绍了Nginx的搭建和配置方法。1.安装Nginx:在CentOS上使用sudoyuminstallnginx,在Ubuntu上使用sudoapt-getinstallnginx,安装完成后使用sudosystemctlstartnginx启动。2.基本配置:修改/etc/nginx/nginx.conf文件,主要修改server块中的listen(端口)和root(网站根目录)指令,修改后使用sudosystemctlrestartnginx重启生效。3.虚拟主机配置:在nginx.co

See all articles