
Yocto
文章平均质量分 55
简单IoT
这个作者很懒,什么都没留下…
展开
-
Yocto动态软件包管理(Runtime Package Management)之:rpm和dnf
这篇文章会一步步教你如何使用Yocto的动态rpm包管理功能,以及相应的dnf工具。通过添加以下行来更改build/conf/local.confPACKAGE_CLASSES = "package_rpm"PACKAGE_FEED_URIS = "http://<local-machine-ip>:5678"EXTRA_IMAGE_FEATURES += " package-management "选择一个镜像编译,比如 core-image-full-cmdline$原创 2022-03-12 12:00:00 · 2273 阅读 · 0 评论 -
使用Yocto Project配置Qt5和Qt5 SDK
配置Qt5 SDK在Yocto里面配置Qt5 SDK(交叉编译工具链)的大致步骤如下:下载meta-qt5并添加到 bblayers.conf.在local.conf里面添加DISTRO_FEATURES_append = " opengl wayland "在your-custom-image.bb里面添加inherit populate_sdk_qt5为了解决后续使用SDK遇到的一个错误“…/sysroots/x86_64-phytecsdk-linux/usr/bin/qmlcachege原创 2021-02-20 19:11:59 · 4388 阅读 · 0 评论 -
Yocto-一些很有用的Bitbake构建调试命令
https://elinux.org/Bitbake_Cheat_Sheethttps://subscription.packtpub.com/book/virtualization_and_cloud/9781788399210/1/ch01lvl1sec27/debugging-the-build-systemhttps://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Useful-bitbake-commands/ta-p/1128559原创 2020-10-23 20:32:05 · 4685 阅读 · 0 评论 -
Yocto边玩边学:BitBake中的优先选择变量PREFERRED_PROVIDER
当有多个菜谱提供同一个项目时,BitBake会使用PREFERRED_PROVIDER来优先选择其中一个菜谱。你需要在变量后缀指定被提供项目的名称,并将其设置为你想优先使用的配方的PN。这里是一些例子: PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86" PREFERRED_PROVIDER_virtual/libgl ?=原创 2020-08-29 14:35:35 · 3305 阅读 · 0 评论 -
Yocto边玩边学:BitBake中的条件变量-OVERRIDES
BitBake 使用 OVERRIDES 来控制在 BitBake 解析食谱和配置文件后去覆盖哪些变量。下面会描述如何把 OVERRIDES 用作条件元数据,并且讨论与 OVERRIDES 有关的关键字展开,同时提供一些示例来帮助理解。条件变量元数据我们可以用OVERRIDES来有条件地选择变量的特定版本,以及有条件地附加或添加变量的值。注意:OVERRIDES名称(值)只能使用小写字符。另外,名称中不允许使用下划线,因为它们用于将OVERRIDES与其他名称和变量名称分开。选择一个变量:OVE原创 2020-08-15 13:33:17 · 2989 阅读 · 1 评论 -
Yocto Project开发(八):Linux Kernel 开发
本文介绍使用Yocto Project Linux内核时要执行的几项常见任务。这些任务包括为主机开发系统准备内核开发,准备层,修改现有配方,修补内核,配置内核等。内核开发最好使用 devtool而不是通过传统的内核工作流方法来完成,下面会介绍这两个方案的信息。...原创 2019-09-01 15:16:00 · 4006 阅读 · 0 评论 -
Yocto项目中systemd升级引发的问题及对策
最近Yocto项目中为了解决一些CVE问题,将systemd由v237升级到了v242,结果根文件系统启动后发现原来可以正常工作的系统单元(包括machines.target和systemd-networkd.service等)都不能正常工作了,初步调试发现文件系统的/etc目录下面居然没有安装这些系统单元:$ ll /etc/systemd/system/multi-user.target.w...原创 2019-07-05 21:40:08 · 2057 阅读 · 0 评论 -
Systemd学以致用:Yocto开机使用systemd启动网络服务
最近开发的产品使用基于Yocto Sumo的iMX6 BSP。基于Sumo的BSP的一个重大变化是使用Systemd代替System V Init文件。对于那些支持 Systemd 的服务,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。我们以systemd-networkd.service为例来说明如何在Yocto开机启动网络服务。在菜谱中添加syste...原创 2019-06-23 00:37:25 · 8141 阅读 · 0 评论 -
Yocto Project开发(七):板级支持包(BSP)
板级支持包(BSP)是一组信息,用于定义如何支持特定硬件设备,设备集或硬件平台。BSP包括有关设备上存在的硬件功能和内核配置信息以及所需的任何其他硬件驱动程序的信息。除了通用Linux软件堆栈之外,BSP还列出了基本和可选平台功能所需的任何其他软件组件。BSP层BSP由基本目录中的文件结构组成。总的来说,你可以将基本目录、文件结构和内容看作一个BSP层。虽然不是严格的要求,但Yocto项目中的...原创 2019-06-09 01:04:14 · 5900 阅读 · 0 评论 -
Yocto Project开发(六):调试工具和技术
调试构建失败的确切方法取决于问题的性质以及bug发起的系统区域。标准调试方法,例如与上一个已知工作版本的比较,检查更改以及重复识别导致问题的步骤,对Yocto项目是有效的,就像它们用于任何其他系统一样。尽管不可能详细说明每个可能的潜在bug,但这里提供了一些有助于在各种情况下进行调试的一般提示。从失败的任务中查看日志可以在${WORKDIR}/temp/log.do_taskname文件中找到...原创 2019-06-01 23:19:14 · 5439 阅读 · 1 评论 -
Yocto Project开发(五):BitBake食谱语法
了解BitBake食谱文件语法对于编写食谱非常重要。以下列表概述了构成BitBake食谱文件的基本项目。有关更完整的BitBake语法描述,请参阅BitBake用户手册的“ 语法和操作符 ”一章。变量赋值和操作符变量赋值允许将值赋给变量。赋值可以是静态文本,也可以包含其他变量的内容。除了赋值,还支持追加和前增操作符。以下示例显示了在食谱中使用变量的一些方法: S = "${WORK...原创 2019-05-26 00:21:50 · 7435 阅读 · 3 评论 -
Yocto Project开发(四):BitBake构建引擎
Bitbake是类似Make的构建引擎,但是又有着显著的差异:BitBake根据提供的构建任务的元数据执行任务。BitBake包括一个fetcher库,用于从各种位置获取源代码,例如本地文件,源代码控制系统或网站。要构建的每个单元的指令(例如一个软件)称为“配方”文件,并包含有关该单元的所有信息(依赖项,源文件位置,校验和,描述等)。允许shell和Python任务在复杂的依赖性约束中工...原创 2019-05-11 23:09:25 · 3609 阅读 · 0 评论 -
Yocto Project开发(三):OpenEmbedded构建系统
Poky是Yocto项目的参考发行版,它包含 OpenEmbedded构建系统((BitBake和 OpenEmbedded-Core)以及一组元数据,可帮助您开始构建自己的发行版。Bitbake是类似Make的构建引擎,但是又有着显著的差异:BitBake根据提供的构建任务的元数据执行任务。BitBake包括一个fetcher库,用于从各种位置获取源代码,例如本地文件,源代码控制系统或网...原创 2019-05-02 13:58:45 · 6309 阅读 · 9 评论 -
Yocto Project开发(二):快速构建
这篇简短的文档将引导您完成使用Yocto Project进行典型镜像构建的过程。你将使用Yocto Project构建一个名为Poky的参考嵌入式操作系统。构建主机配置构建主机要符合如下要求:50 GB的磁盘空间运行一个主流的Linux发行版(Fedora, openSUSE, CentOS, 或者 Ubuntu),我们这里运行Ubuntu 16.04Git 1.8.3.1或者更高版本...原创 2019-04-11 20:38:18 · 3968 阅读 · 4 评论 -
Yocto Project开发(一):概述和术语
为什么选择Yocto Project如果您正在开发嵌入式或物联网设备,那么肯定会面对一个挑战:如何为这些设备定制Linux系统发行版?构建和维护操作系统不是简单的任务,它通常包含如下几个重要方面:引导程序(Bootloader):引导程序是第一个软件,负责初始化硬件,加载内核到内存,然后启动内核。内核:Linux Kernel,操作系统的核心。负责管理系统硬件资源:主要是内存和设备管理,以...原创 2019-04-05 21:16:04 · 6375 阅读 · 2 评论 -
Yocto:解决“QA Issue: Package version for package went backwards which would break package feeds”
Yocto:解决“QA Issue: Package version for package went backwards which would break package feeds”最近项目需要在Yocto里面回退一个软件包到比较旧的版本,而新版本的软件包已经生成了cache,这样在编译的时候就会遇到如下错误:QA Issue: Package version for package went backwards which would break package feeds主要原因是:如果启用原创 2020-05-24 12:33:40 · 2733 阅读 · 0 评论