Yocto项目使用更强大和定制化的方法,来构建出适合嵌入式产品的Linux系统。Yocto不仅仅是一个制做文件系统工具,同时提供整套的基于Linux的开发和维护工作流程,使底层嵌入式开发者和上层应用开发者在统一的框架下开发,解决了传统开发方式下零散和无管理的开发形态。
通过使用本地文件、Open Source U-Boot/Linux编译,既能适应部分开发人员的工作习惯,也能提高U-Boot/Linux的编译速度。
Yocto 项目 (YP) 是一个开源协作项目,可帮助开发人员创建基于 Linux 的定制系统,无论硬件架构如何。该项目提供了一套灵活的工具和空间,全世界的嵌入式开发人员可以共享技术、软件堆栈、配置和最佳实践,这些技术、软件堆栈、配置和最佳实践可用于为嵌入式和物联网设备或任何需要定制 Linux 操作系统的地方创建定制的 Linux 映像。
构建嵌入式系统有很多种方式,每一种方式都有他存在的地方,比如适配于那种场合和应用。我也是了解不多,参考了网上的一些东西资料,以及抒发自己在学习这些构建方法时的一些看法。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z2066411585/article/details/89049111
PetaLinux工程会自动下载代码并编译。很多时候,工程师需要修改代码,加入调试信息。使用下列脚本,可以一次性导出所有关键模块的代码。 脚本中,为了保持兼容性,导出了MPSoC和Versal的模块。有些模块不存在,不会导致其它副作用,请忽略不存在的模块错误信息。
MACHINE=tulip-mozart source setup-environment
Linux平台上有许多开源的嵌入式linux系统构建框架(框架的意思就是工具),这些框架极大的方便了开发者进行嵌入式系统的定制化构建,目前比较常见的有OpenWrt, Buildroot, Yocto,等等。其中Buildroot功能强大,使用简单,而且采用了类似于linux kernel的配置和编译框架,所以受到广大嵌入式开发人员的欢迎。
Linux 被部署到比 Linus Torvalds 在他的宿舍里开发时所预期的更广泛的设备。令人震惊的支持了各种芯片,使得Linux 可以应用于大大小小的设备上:从 IBM 的巨型机到不如其连接的端口大的微型设备,以及各种大小的设备。它被用于大型企业数据中心、互联网基础设施设备和个人的开发系统。它还为消费类电子产品、移动电话和许多物联网设备提供了动力。
在PetaLinux工程中,与单板相关的UBoot、Linux等模块,经常需要编辑、调试。
PetaLinux基于Yocto,编译Linux内核、文件系统等,非常庞大,需要的软件很多。如果从网络下载,可能消耗比较长的时间。 本文基于Xilinx PetaLinux 2020.2.
在物联网的设备设计中,从低成本和低功耗的角度看,Android肯定比不过嵌入式Linux。但在选择用于部署Linux的发行版本时,却一直饱受困扰。
PetaLinux是Xilinx基于Yocto推出的Linux开发工具。Yocto是业界主流的Linux发行版的构建工具,它不仅可以从源代码编译Linux 内核,还可以编译Linux发行版必须的数以千计的的应用程序,功能非常强大。Yocto的出现,大幅度降低了构建嵌入式Linux发行版的难度。 万物总有两面性。虽然PetaLinux/Yocto可以一键编译出一个自定义的嵌入式Linux发行版,但是编译整个文件系统很耗费时间。完整的一次PetaLinux/Yocto编译,可能需要从网络下载上GB的文件,可能需要几个小时。即使只更改一行代码,也需要数分钟时间。PetaLinux/Yocto的编译流程,也和很多开发人员原来的基于make的工作方法不一样,它会分析文件系统里所有应用程序的配置文件,执行下载、配置、编译、打包等过程。 如果在调试单板时,仅仅改动一行代码,也需要执行这些操作,显得冗余,也影响开发效率。 为了适应开发人员的工作习惯,也为了提高速度,可以整合PetaLinux工程编译和OpenSource U-Boot/Linux编译。
11.06.18-Lunix-Distributions-1068x656-1.jpg
http://blog.csdn.net/lu_embedded/article/details/56102831
接触Freescale/NXP的I.MX6处理器大概有了两年多的时间,对于一个最初玩MCU的我来说,真是面临了很多的挑战。最让我感到郁闷和崩溃的是那个官方的基于Yocto的开发环境,搭建它要求真是太高了,机器得有上百G的空间,Ubuntu系统版本也有要求,另外还得去理解Yocto的架构。我在尝试过两次之后准备彻底的放弃研究它了。前两天由于工作需要,不得不再一次面对要自己去编译文件系统的问题,碰巧在网上看到有人用Buildroot弄成功过,我尝试了下,没太费力气就成功了,Buildroot比Yocto简单太多了。特以此文记录下,希望对大家有所帮助。
① 使用Busybox手工制作 Busybox本身包含了很了Linux命令,但是要编译其他程序的话需要手工下载、编译,如果它需要某些依赖库,你还需要手工下载、编译这些依赖库。 如果想做一个极简的文件系统,可以使用Busybox手工制作。
不管任何时候,接触任何新的平台或学习新的知识,首先就是看官网提供的文档,或搜索下是否有相关的资料。
注意:使用我们提供的Ubuntu映象文件时,请按照我们的目录结构,手动设置交叉编译工具链以及编译的架构环境变量配置,(建议配置为永久生效),这里我们提供了两种交叉编译工具链,分别是buildroot构建生成的8.4以及yocto生成的9.3工具链,开发板系统默认安装的系统使用的是通过yocto编译构建,所以如果只想针对于文件系统应用做开发或者编译内核uboot等操作,建议只使用yocto的交叉编译工具链。
客户为AMD Xilinx SoC创建了PetaLinux工程。需要定制PetaLinux中的FSBL。
Petalinux可以帮助工程师简化内核模块的创建工作。在petalinux工程目录下,使用命令“petalinux-create -t modules --name --enable”,能创建Linux内核模块,包括c源代码文件、Makefile、Yocto的bb文件。相关文件放在目录“project-spec/meta-user/recipes-modules”,目录结构如下。
作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0
PetaLinux环境下,也可以使用Yocto/openembedded的bitbake。Xilinx ug1144有详细说明。 为了方便,我编写了以下脚本,导入bitbake需要的环境。将下列脚本保存为sh文件,使用source导入,之后就能使用bitbake。脚本的第一个输入参数是PetaLinux版本号,比如2019.2。如果source时没有提供版本号,而系统有环境变量XILINX_VERSION,脚本就使用XILINX_VERSION作为PetaLinux版本号。如果source时没有提供PetaLinux版本号,系统也没有定义XILINX_VERSION,则缺省使用2019.2作为PetaLinux版本号。
https://gcc.gnu.org/onlinedocs/ 对照相应的版本去下手册,不然,有些option在低一点的版本找不到.
AMD MPSoC Linux一般使用PetaLinux编译Linux系统,包括Linux内核、DTS、文件系统。
Hank Fu (付汉杰) Staff FAE embedded, Xilinx, Inc. hankf@xilinx.com
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
AMD ZCU106 U-Boot 2023.1 Open Source Flow 编译的缺少“gnutls/gnutls.h”错误
MTK8516 提供的SDK通过Yocto来进行构建, 由于Yocto入门门槛较高,刚开始也才过不少坑,这里记录下.
最近编译PetaLinux工程时,出现错误“dpkg-architecture: command not found”。 经过检查,最近移动了本地sstate目录。PetaLinux工程中的sstate的本地目录,已经不存在。 恢复本地sstate目录的位置后,清除工程,再编译,错误消失。 奇怪的是,已经有5200多个package已经编译成功。配置graphviz时,才有问题。
如果想要修改Poky项目中的源代码,可以依赖于devtool工具,这里以修改busybox为例。
这Arduino得话,其实就是Linux上面的一个小APP,x86_64-pokysdk-linux-eglibc/usr/bin/i586-poky-linux,这个是编译器
嵌入式系统三大部分:bootloader(uboot)、Linux内核、根文件系统。
Makefile 是一种特别设计用来帮助项目的构建管理的文件。它定义了编译器和IDE工程管理系统自动执行的命令集合,主要用于自动化编译,减轻重复性任务的负担。Makefile 文件中包含了一系列的规则来指导如何产生目标文件,这些规则包含目标、依赖和命令:
物联网的迅速发展涌现了数十亿与互联网连接的无线嵌入式设备。 从医疗设备到坦克传感器, 智能恒温器, 智能路灯, 水监视器等等, 物联网比以往任何时候都应用广泛。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
使用“wic ls”命令,ls”查看wic文件里的分区和文件。 使用“wic cp”命令,在Linux Host和wic文件的分区之间,复制文件。 使用“wic rm”删除wic文件里的文件。
请参考: 《第 1 篇 新学习路线、视频介绍、资料下载》 《第二章 资源下载方法》
使用yocto编译一个软件包时,一般会先在本地寻找下载好的源码包,如果不存在则根据配置从网络下载。
命令pstree将相关进程以树状图显示,方便查看进程间的关系。由于调试需要,需要在Linux里使用命令pstree。但是PetaLinux产生的Linux映像,默认不带命令pstree。
一样新的东西的由来,往往因为之前的东西用的很不爽,然后更具弊端创造出更加容易使用的东西,比如在大型的项目中,如Linux,他是通过Makefile的方式进行编译。但是,Makefile复杂的语法结构,难于让人领会。在一个很大的项目中,维护Makefile是一个非常头疼的烦恼事。于是一个新的产物Autotools就出来了,他用来生成复杂的Makefile,很大程度降低了我们的开发难度。
系统移植过程中发现 # cat /proc/asound/cards 0 [Loopback ]: Loopback - Loopback Loopback 1 1 [wm8524audio ]: wm8524-audio - wm8524-audio wm8524-audio 2 [imxspdif ]: imx-spdif - imx-spdif
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z2066411585/article/details/89159268
作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0 VCK190
前进几篇文章,已经搞定了Linux移植三巨头:uboot、kernel(包含dtb)和rootfs,除了uboot是烧写在SD中的,其它的都是在ubuntu虚拟机的nfs服务器中,运行时必须通过网络将这些文件加载到开发板的内存中运行。
PetaLinux(Yocto)里包含很多软件模块。大部分模块可以直接使用。如果有特殊需求,需要修改某些模块时,可以按下列办法先修改,测试成功后,再创建补丁,集成到PetaLinux(Yocto)工程里。
博主最近花 1500 入手了一个 RK3399 开发板,原因是博主手里有一块正点原子 STM32F103 单片机开发板,一块基于三星 S3C2440 的 JZ2440 开发板,一块 NXP 的正点原子的 IMX6ULL 开发板,缺一块高性能开发板,所以去找了一下,发现 RK3399、RK3399pro 不错,然后发现 RK 是国产,买!
烧录固件之后,发现一行打印也没有,代表uboot 都无法启动,而buildroot uboot 打包固件的脚本对应 : buildroot-2019.05-rc2/board/freescale/common/imx/imx8-bootloader-prepare.sh ,应该是该脚本出现问题,该问题并没有深入研究,
领取专属 10元无门槛券
手把手带您无忧上云