zedboard基于petalinux移植Linux系统及一些应用

Petalinux快速入门向导 (10) 第九章.rootfs常见问题 设置root密码 2.取消开机输入用户名密码 3.优化rootfs的大小 此段参考链接 【分享】优化rootfs的大小 - HankFu - 博客园 (cnblogs.com) 3.1介绍 解压rootfs.cpio.gz,得到rootfs.cpio,再解压,得到就是rootfs的实际文件 3.2检查目录大小 使用du命令,可以检查各个文件夹的大小。 du --max-depth=1 -h查看一级目录的文件夹大小 xl... 阅读详情

前言

基于petalinux的Linux移植教程,用到的工具有vivado2019.1,安装了petalinux的Ubuntu系统(本人用的是虚拟机)

1.Linux移植

移植总览

移植Linux时,首先我们需要移植一个boot loader,用于启动Linux内核,boot loader有很多,常用的是U-Boot。Bootloader 是在操作系统运行之前执行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备(对于 ZYNQ 而言,在引导过程中,需要先运行 FSBL 来设置 PS,然后运行 U-Boot 用于加载 Linux 内核映像并引导 Linux)。之后移植Linux kernel,即Linux内核,最后移植一个根文件系统(rootfs),根文件系统内是一些常用的命令和文件。U-Boot、Linux kernel 和 rootfs 这三者一起构成了一个完整的 Linux 系统,一个可以正常使用、功能完善的 Linux 系统。此外还有设备树用于驱动按键、led等外设,不过设备树需要进行相关配置具有对应语法并需要Linux内核驱动。

具体操作

1.1 创建vivado并导出hardware

利用zedboard模板创建工程,然后建立block design添加zynq并选择zedboard的预设(本文以读者有zynq使用经验为前提跳过了一些步骤,详细步骤可在本人主页参照 zynq板zedboard+vitis设计 (一) hello world实验)

 依次进行generate output products、create HDL wrapper以及generate bitstream。最后导出hardware。此时,再工程文件内的.SDK目录下会生成一个hdf文件

 vivado部分操作结束

1.2 建立petaliunx工程并依次配置编译工程

在Linux内建立一个文件夹,然后将.SDK目录(即存放hdf文件的文件夹)导入

 再次新建一个文件夹用于存放petalinux生成的工程

 1)配置petalinux环境变量,注意每次使用之前一定要配置petalinux环境变量

source ~/application/petalinux/settings.sh

2)创建petalinux工程,存放工程的路径下会生成一个文件夹,之后工程生成的文件都存放在此文件夹内,最后一个参数name可以根据需求修改

petalinux-create --type project --template zynq --name zedboard

 

3)先进入新建的工程目录,然后进行工程配置,注意路径的描述要到hdf文件的上一层。然后会自动弹出配置窗口,该界面内只能通过小键盘上的上下左右按键进行选择,按下‘Y’键使能该选项,此时选项前就会出现‘*’,按下‘N’键取消选项,按下‘M’键使选项编译为模块。先通过上下键选择目录,然后通过左右键选择想要进行的操作,然后按回车进行操作。本次实验不需要进行任何配置,全部选择默认即可。双击ESC键退出配置界面。退出之后可以通过petalinux-config命令再次进入配置界面。

cd zedboard
petalinux-config --get-hw-description ~/application/petalinux/hdf/linux.sdk

 这里需要注意的是,在image packaging configuration选项内可以进行根文件系统类型的配置,默认为INITRAMFS,但是INITRAMFS类型每次掉电之后就会失去之前的修改内容,我们可以选择SD card将根文件系统放在SD卡的ext4区

 4)配置Linux kernel,同样会自动弹出配置界面,保持默认,双击ESC键直接退出即可

petalinux-config -c kernel

 5)配置根文件系统,这里可以在petalinux rootfs settings内设置root密码,默认为root,保持默认即可,双击ESC退出

petalinux-config -c rootfs

 6)编译工程

petalinux-build

7)制作BOOT.BIN启动文件,BOOT.BIN是zynq设备的引导格式, 一般包含 fsbl 文件、bitstream 文件和 uboot 文件 

petalinux-package --boot --fsbl --fpga --u-boot --force

 这里有两个warning,主要是我们没有创建tftpboot目录,在第三步对工程进行配置时,有“Copy final images to tftpboot”选项,当在 Ubuntu 的根文件下创建一个名为 tftpboot 的文件夹时,工程生成镜像后会自动将相关文件复制到 /tftpboot 目录中

8)制作SD启动卡,如果在第三步进行配置时,我们选择了SD卡模式,则需要在SD卡内新建一个EXT4分区,本次实验我们选择了默认的模式,因此不需要新建分区,直接将工程路径images/linux文件夹内的BOOT.IN和image.ub两个文件存入SD卡内即可

 

 1.3启动开发板并通过串口连接电脑

将SD卡插入卡发版,跳线选择SD卡启动模式,连接好串口后上电启动

通过串口工具我们可以看见上电启动的一些信息

 启动完成后我们可以输入用户名和密码进行登录,默认用户名和密码都是root

 至此,移植工作结束

Linux系统移植四:Petalinux使用本地sstate-cache加速构建根文件系统 根文件系统 rootfs 是Linux内核启动以后挂载(mount)的第一个文件系统 阅读详情

相关推荐

使用petalinux在Zynq-7000(ZedBoard)上移植Linux系统

安装petalinux时遇到的一些坑: petalinux版本与Linux系统版本问题 参考ug1144-petalinux-tools-reference-guide(Xilinx官网找与petalinux一致的版本) 安装petalinux的依赖环境 同样,参考ug1144-petalinux-tools-reference-guide,但是注意!!!手册中漏了gawk,会导致如下报错:awk: read error (Bad address) SHELL类型问题 petalinux要求sh

TwinkleSStar的博客 1001

petalinux如何在rootfs中添加mkfs.ext4命令

petalinux如何在rootfs中添加mkfs.ext4命令

PlutoZuo的博客 1568

zedboard 音频芯片 adau1761 linux 下音频驱动(三)PetaLinux

一、概述 在这一篇文章,我们使用PetaLinux生成BOOT.bin、image.ub内核文件,用于下一步播放音乐调试。我们使用的Linux环境是Ubuntu14.04.4,软件为petalinux 2015.4; vivado 2015.4. 二、准备工作 1、建立工程文件夹。 ~$ mkdir zed_sound_csdn 2、拷贝硬件 将 “\Test01_adau1761....

dylll321的博客 2904

基于Zedboard的PetaLinux

两种方式创建petalinux项目,没有bsp根据cpu架构选择zynq、zynqMP,官方支持包启动petalinux 1 下载安装板级支持包 这些板子直接可以从官方下载到板级支持包,有了板级支持包,我们就可以直接从板级支持包生成PetaLinux项目。 https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html 下载下来放到虚拟机里面。之后我

qq_35608277的博客 3926

如何在ZedBoard上实现PYNQ(PYNQ Linux on ZedBoard)

1、参考xilinx官方方案:https://github.com/Xilinx/PYNQ/tree/master/sdbuild  配置所需环境(petaliunx的版本最好与其它所需软件配套) 该方案采用github中此段内容的方法 Porting to a new board There are two flows for porting to a new board. The sim...

dia323的博客 4881

Zedboard开发板的linux搭建

zedboard开发板的linux环境搭建

tangjing_1的博客 1627

zedboard移植linux内核,[干货]手把手教你用Zedboard学习Linux移植和驱动开发

作者:殷建飞本文是昨天发的文章《龙芯杯CPU设计竞赛与ZYNQ设计流程介绍》接续部分。重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种。部分硬件设计中需要CPU完成对电路寄存器的配置,为了完成Zedboard对FPGA上部分寄存器的配置功能,可以在PS单元(处理器系统)上运行裸机程序(无操作系统支持)完成和PL单元(FPGA部分)的数据交互功能,此时PS单元更像...

weixin_33750664的博客 669

ZYNQ 移植IGH etherCAT主站

本方案基于Zynq平台的EtherCAT主站实现,系统采用改进后的实时linux系统,即在标准的linux操作系统内核中嵌套进一个微小、实时内核,改造成具有双内核的异构系统,所有实时任务都运行在微内核上,非实时的Linux 则作为实时内核的一项优先级最低的任务来托管所有的非实时任务,采用Linux3.8.13和Xenomai2.6.3。cp _install/modules/ec_master.ko /lib/modules/4.9.0-xilinx-g7645980/ //模块。

wangjie36的博客 2153

ac3165 linux驱动_[干货]手把手教你用Zedboard学习Linux移植和驱动开发

本文是昨天发的文章《龙芯杯CPU设计竞赛与ZYNQ设计流程介绍》接续部分。重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种。部分硬件设计中需要CPU完成对电路寄存器的配置,为了完成Zedboard对FPGA上部分寄存器的配置功能,可以在PS单元(处理器系统)上运行裸机程序(无操作系统支持)完成和PL单元(FPGA部分)的数据交互功能,此时PS单元更像单...

weixin_39616090的博客 371

Zedboard音频固件adau1761.bin加载解析与模块化封装

在嵌入式Linux系统中,外设固件加载是硬件能否正常初始化的关键环节。以内核的request_firmware机制为起点,固件文件需按特定路径和命名规则存放,否则驱动会报加载失败。对于Zynq平台上的ADAU1761音频Codec而言,其内部SigmaDSP必须依赖adau1761.bin固件才能工作,同时还需设备树中正确的I2C地址和MCLK时钟配置。本文从固件加载原理出发,结合Zedboard实际工程实践,解析固件文件与驱动、设备树、根文件系统的关系,并分享将adau1761.bin抽象为独立模块包进行

weixin_29191761的博客 236

Zedboard音频Codec固件adau1761.bin加载与调试指南

在嵌入式Linux开发中,固件加载是硬件初始化的关键环节,尤其对于I2C和I2S接口的音频Codec。其原理是通过内核request_firmware机制将二进制配置数据写入寄存器,确保时钟分频和通路正确。技术价值在于解决声卡枚举失败、播放异常等问题,应用场景涵盖Zedboard等开发板的音频链路调试。本文聚焦adau1761.bin固件,详解从根文件系统集成到设备树对齐的实践,帮助开发者避开常见陷阱。

weixin_29164497的博客 256

linux can总线接收数据串口打包上传_使用Zedboard开发板学习Linux的移植及驱动开发...

本文是昨天发的文章《龙芯杯CPU设计竞赛与ZYNQ设计流程介绍》接续部分。重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种。部分硬件设计中需要CPU完成对电路寄存器的配置,为了完成Zedboard对FPGA上部分寄存器的配置功能,可以在PS单元(处理器系统)上运行裸机程序(无操作系统支持)完成和PL单元(FPGA部分)的数据交互功能,此时PS单元更像单片机开发;...

weixin_39872257的博客 240

ZedBoard移植Linux(精简版)及BOA服务器的搭建

本人在在Ubuntu、Vivado2014.2和SDK2014.2上为ZedBoard移植Linux的详细流程。

从零实现Zynq7020 HDMI桌面显示——完整PetaLinux移植教程

本文介绍了在Zynq7020 Zedboard开发板上实现HDMI显示功能的完整移植过程。基于PetaLinux2021.2和ADI Linux内核分支,详细说明了从硬件工程构建到系统配置的关键步骤:包括下载ADI程序库、创建Vivado工程、配置Petalinux项目、更换内核源码以及制作启动SD卡等。最终成功实现了HDMI显示输出并运行桌面系统,为使用新版工具链的开发人员提供了实用参考。整个过程特别强调了版本兼容性问题,并提供了针对Zynq平台的通用移植方法。

FPGAmaster的博客 522

Petalinux如何加载AXI-DMA驱动.docx

Petalinux如何加载AXI-DMA驱动

[arcgis插件]在批量出图时,如何把图层属性表以动态表格的形式插入到布局页面

在批量出图时,如何把图层属性表以动态表格的形式插入到布局页面。

坐听风雨 4556

ZYNQ下LINUX+FREERTOS同时运行

目录前言一、在windows下的xilinx sdk创建cpu1的freeeros应用程序二、将CPU1的应用程序与linux的BOOT.BIN文件合并三、试验效果 前言 本试验基于《PetaLinux学习笔记三》中移植成功的LINUX系统,并在petalinux-config -c rootfs中将peekpoke配置进去,再重新编译,打包,拷贝到SD卡。 peekpoke:用于启动c...

weixin_41922484的博客 6119

睿尔曼复合机器人之底盘操作流程

控制键”按下后,可在键盘上通过‘i’(向前),‘k’(向后),‘j’(向左旋转),‘l’(向右旋转)四个按键对底盘进行运动控制。选中禁⾏线功能后,使⽤⿏标在界⾯内点击选择起点,继续在其他地⽅点击,两点之间会连成⼀条线,可以进⾏多次连续点击,形成连续线条。4)扫图完成后,软件会重新启动,返回到监控页面,点击“激光”可看到当前机器激光扫描的实时数据,在页面上表现为红色边界线,点击菜单栏“控制”键使底盘在一定范围内运动,扫描到尽可能多的边界线,可发现与实际地图的黑色边界线不同,需要进行手动校正。

realman_Rop的博客 1472

ZYNQ7000平台 - Linux环境下pl-ps使用AXI-DMA进行数据传输

本人是个小白,如果有什么问题请各位大佬多指点一下,谢谢! 参考资料: 米联客教程:S03_CH01_AXI_DMA_LOOP环路测试 平台:ZedBoard vivado版本:2019.1 petalinux版本:2019.1 vivado方面的具体配置请参考米联客的教程,我这里就不详细介绍了。 放一张我已经做好的整体图片供参考 ​ 在这里我要说个细节,就是我在参考教程时,因为我没有加OLED,所以开始的时候我将GP0给勾掉了,结果在petalinux-build时报错,所以在这里我们切记.

子羽小白的博客 4354

Windows报错“The system cannot find the file specified“的PATH环境变量解决方案

摘要: Windows系统中出现"The system cannot find the file specified"错误通常因PATH环境变量配置问题导致。本文提供解决方案:1)检查并修正PATH变量(通过命令行或图形界面添加缺失路径);2)确认程序安装路径及拼写无误;3)恢复误改的系统变量。示例演示了Python路径配置及无效路径清理方法,建议谨慎修改变量、使用绝对路径并定期检查。附参考表格详述操作步骤,帮助用户高效解决问题并优化系统环境。

shejizuopin的博客 3513

MacTeX+TeXstudio:Macbook配置本地Latex看这一篇就够了

这个博客记录本人在MacBook上配置本地Latex的流程,其中选择的编译环境为MacTeX,编辑器为TeXstudio。采用的原因主要两点:一个是本人配置的原因主要是用来撰写毕业论文,希望能够尽可能简化设置流程,专注内容表达;第二是由于本人还有一个windows系统的笔记本,想要编辑器在专注写作体验的同时在两个系统上能够都适配,从而减少切换效率,故选择此组合。这篇文章介绍并详细记录了本人的安装流程,有相同需求的同志也可借鉴。

Katherine-XY的博客 6978
上一篇: vitis 报错(2)[Common 17-53] User Exception: Unable to get hpfm file from project
下一篇: FPGA + 图像处理(一)三种向zynq中DDR内导入图像数据的方法
EfunStudy
博客等级 码龄5年 184粉丝 31原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值