安装petalinux工具

petalinux 并不是一个特殊 Linux 内核,而是一套开发环境配置的工具,降低 uboot、内核、 根文件系统的配置的工作量,可以从 Vivado 的导出硬件信息自动完成相关软件的配置。

petalinux 是赛灵思基于 buildroot 工具链为自家处理器方便适配 Linux 定制的工具集。

在 Xilinx 官方文档 UG1144 中有详细安装方法,如果本教程安装失败,请参考 Xilinx 的 ug1144 文档
进行安装。(https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_1/ug1144-petalinux-tool s-reference-guide.pdf)
image.png

准备 Linux 操作系统环境

这里使用 PVE 下的 Ubuntu18.04 虚拟机做运行系统环境。
注意:petalinux 对系统版本和设置有严格要求,一定要选择对应版本推荐的系统版本安装。不对应的系统版本可能会出现各种问题。
配置网络可连接外网,安装 ssh 服务端,可 ssh 登录,后面基本在命令行下进行操作。

更新软件列表

sudo apt-get update

#使用本地代理方式
sudo apt -o Acquire::http::proxy="http://192.168.196.112:3142" update

安装基础软件,这里写成了脚本。

#!/bin/bash
set -x
script_dir=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)

# This script sets up a Ubuntu host to be able to create the image by
# installing all of the necessary files. It assumes a host with
# passwordless sudo

# Install a bunch of packages we need

read -d '' PACKAGES <<EOT
iproute2
gcc
g++
net-tools
libncurses5-dev
zlib1g:i386
libssl-dev
flex
bison
libselinux1
xterm
autoconf
libtool
texinfo
zlib1g-dev
gcc-multilib
build-essential
screen
pax
gawk
python3
python3-pexpect
python3-pip
python3-git
python3-jinja2
xz-utils
debianutils
iputils-ping
libegl1-mesa
libsdl1.2-dev
pylint3
cpio
EOT
set -e

sudo apt-get update

if [[ $(lsb_release -rs) == "16.04" ]]; then
    echo "Install packages on Ubuntu 16.04..."
    sudo apt purge -y libgnutls-dev
elif [[ $(lsb_release -rs) == "18.04" ]]; then
    echo "Install packages on Ubuntu 18.04..."
else
    echo "Error: current OS not supported."
    exit 1
fi

sudo dpkg --add-architecture i386 #开启i386体系支持
sudo apt-get update
sudo apt-get install -y $PACKAGES

echo "Now install Vivado, SDK, and Petalinux."
echo "Re-login to  ensure the enviroment is properly set up."

为了加快下载包可以使用代理,另一种脚本如下:

#!/bin/bash
sudo apt-get -o Acquire::http::proxy="http://192.168.196.112:3142" update
sudo dpkg --add-architecture i386 #开启i386体系支持
sudo apt-get -o Acquire::http::proxy="http://192.168.196.112:3142" update
sudo apt-get -o Acquire::http::proxy="http://192.168.196.112:3142" install -y iproute2 gcc g++ net-tools libncurses5-dev zlib1g:i386 libssl-dev flex bison libselinux1 xterm autoconf libtool texinfo zlib1g-dev gcc-multilib build-essential screen pax gawk python3 python3-pexpect python3-pip python3-git python3-jinja2 xz-utils debianutils iputils-ping libegl1-mesa libsdl1.2-dev pylint3 cpio

安装 Petalinux
创建安装目录并设置

sudo -s
mkdir -p /opt/pkg/petalinux
chgrp scilogyhunter /opt/pkg/petalinux
chown scilogyhunter /opt/pkg/petalinux
exit

设置petalinux-v2020.1-final-installer.run 文件可执行权限

scilogyhunter@ubuntu1804:~/petalinux$
scilogyhunter@ubuntu1804:~/petalinux$ ls -al
total 48758708
drwxrwxr-x  2 scilogyhunter scilogyhunter        4096 520 17:48 .
drwxr-xr-x 16 scilogyhunter scilogyhunter        4096 520 16:28 ..
-rw-rw-r--  1 scilogyhunter scilogyhunter 35509900839 520 16:35 downloads_2020.1.tar.gz
-rwxrwxrwx  1 scilogyhunter scilogyhunter        1123 520 16:29 host_env_setup.sh
-rw-rw-r--  1 scilogyhunter scilogyhunter        1207 520 17:38 host_env_setup.shes
-rw-rw-r--  1 scilogyhunter scilogyhunter   213906986 520 16:39 linux-xlnx-xilinx-v2020.1.zip
-rw-rw-r--  1 scilogyhunter scilogyhunter  1315548907 520 16:29 petalinux-v2020.1-final-installer.run
-rw-rw-r--  1 scilogyhunter scilogyhunter        1237 520 17:48 setup_proxy.sh
-rw-rw-r--  1 scilogyhunter scilogyhunter 12870640734 520 16:38 sstate_aarch64_2020.1.tar.gz
-rw-rw-r--  1 scilogyhunter scilogyhunter         598 520 16:39 sstate_rel_2020.1_README.tar.gz
-rw-rw-r--  1 scilogyhunter scilogyhunter    18868392 520 16:39 u-boot-xlnx-xilinx-v2020.1.tar.gz
-rw-rw-r--  1 scilogyhunter scilogyhunter        1231 520 17:42 yes
scilogyhunter@ubuntu1804:~/petalinux$ chmod +x petalinux-v2020.1-final-installer.run
scilogyhunter@ubuntu1804:~/petalinux$ ls -al
total 48758708
drwxrwxr-x  2 scilogyhunter scilogyhunter        4096 520 17:48 .
drwxr-xr-x 16 scilogyhunter scilogyhunter        4096 520 16:28 ..
-rw-rw-r--  1 scilogyhunter scilogyhunter 35509900839 520 16:35 downloads_2020.1.tar.gz
-rwxrwxrwx  1 scilogyhunter scilogyhunter        1123 520 16:29 host_env_setup.sh
-rw-rw-r--  1 scilogyhunter scilogyhunter        1207 520 17:38 host_env_setup.shes
-rw-rw-r--  1 scilogyhunter scilogyhunter   213906986 520 16:39 linux-xlnx-xilinx-v2020.1.zip
-rwxrwxr-x  1 scilogyhunter scilogyhunter  1315548907 520 16:29 petalinux-v2020.1-final-installer.run
-rw-rw-r--  1 scilogyhunter scilogyhunter        1237 520 17:48 setup_proxy.sh
-rw-rw-r--  1 scilogyhunter scilogyhunter 12870640734 520 16:38 sstate_aarch64_2020.1.tar.gz
-rw-rw-r--  1 scilogyhunter scilogyhunter         598 520 16:39 sstate_rel_2020.1_README.tar.gz
-rw-rw-r--  1 scilogyhunter scilogyhunter    18868392 520 16:39 u-boot-xlnx-xilinx-v2020.1.tar.gz
-rw-rw-r--  1 scilogyhunter scilogyhunter        1231 520 17:42 yes
scilogyhunter@ubuntu1804:~/petalinux$
scilogyhunter@ubuntu1804:~/petalinux$./petalinux-v2020.1-final-installer.run -d /opt/pkg/petalinux

开始安装

scilogyhunter@ubuntu1804:~/petalinux$ ./petalinux-v2020.1-final-installer.run -d /opt/pkg/petalinux
INFO: Checking installation environment requirements...
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
WARNING: No tftp server found - please refer to "UG1144  PetaLinux Tools Documentation Reference Guide" for its impact and solution
INFO: Checking installer checksum...
INFO: Extracting PetaLinux installer...

LICENSE AGREEMENTS

PetaLinux SDK contains software from a number of sources.  Please review
the following licenses and indicate your acceptance of each to continue.

You do not have to accept the licenses, however if you do not then you may
not use PetaLinux SDK.

Use PgUp/PgDn to navigate the license viewer, and press 'q' to close

Press Enter to display the license agreements
Do you accept Xilinx End User License Agreement? [y/N] > Do you accept Xilinx End User License Agreement? [y/N] >
Do you accept Xilinx End User License Agreement? [y/N] > y
Do you accept Webtalk Terms and Conditions? [y/N] > Do you accept Webtalk Terms and Conditions? [y/N] > y
Do you accept Third Party End User License Agreement? [y/N] > Do you accept Third Party End User License Agreement? [y/N] >
Do you accept Third Party End User License Agreement? [y/N] > y
INFO: Installing PetaLinux...
INFO: Checking PetaLinux installer integrity...
INFO: Installing PetaLinux SDK to "/opt/pkg/petalinux/."
INFO: Installing buildtools in /opt/pkg/petalinux/./components/yocto/buildtools
INFO: PetaLinux SDK has been installed to /opt/pkg/petalinux/.
scilogyhunter@ubuntu1804:~/petalinux$

安装过程中需要回车查看授权协议,按 q 退出。后面还有多次需要同意协议内容,按 y 同意。

安装目录生成内容

scilogyhunter@ubuntu1804:~/petalinux$ ls /opt/pkg/petalinux/
components  doc  etc  settings.csh  settings.sh  tools
scilogyhunter@ubuntu1804:~/petalinux$

安装过程的当前目录下还会生成petalinux_installation_log 文件,记录安装日志。

scilogyhunter@ubuntu1804:~/petalinux$ ls
downloads_2020.1.tar.gz  linux-xlnx-xilinx-v2020.1.zip          setup_proxy.sh                   u-boot-xlnx-xilinx-v2020.1.tar.gz
host_env_setup.sh        petalinux_installation_log             sstate_aarch64_2020.1.tar.gz
host_env_setup.shes      petalinux-v2020.1-final-installer.run  sstate_rel_2020.1_README.tar.gz
scilogyhunter@ubuntu1804:~/petalinux$ rm setup_proxy.sh
scilogyhunter@ubuntu1804:~/petalinux$ cat petalinux_installation_log

INFO: Checking installation environment requirements...
INFO: Checking installer checksum...
INFO: Extracting PetaLinux installer...
INFO: Installing PetaLinux...
INFO: Checking PetaLinux installer integrity...
INFO: Installing PetaLinux SDK to "/opt/pkg/petalinux/."
.......................................................INFO: Installing buildtools in /opt/pkg/petalinux/./components/yocto/buildtools
Build tools installer version 2020.1
====================================
You are about to install the SDK to "/opt/pkg/petalinux/components/yocto/buildtools". Proceed [Y/n]? Y
Extracting SDK..........................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
 $ . /opt/pkg/petalinux/components/yocto/buildtools/environment-setup-x86_64-petalinux-linux
INFO: PetaLinux SDK has been installed to /opt/pkg/petalinux/.
scilogyhunter@ubuntu1804:~/petalinux$

设置环境变量

设置 petalinux 环境变量,运行下面命令 (环境变量只在当前打开的终端中有效,后面和
petalinux 相关的命令都要在当前终端中输入,如果关闭了当前终端则需要重新运行这条命
令) 。

scilogyhunter@ubuntu1804:~/petalinux$ source /opt/pkg/petalinux/settings.sh
PetaLinux environment set to '/opt/pkg/petalinux'
WARNING: /bin/sh is not bash!
bash is PetaLinux recommended shell. Please set your default shell to bash.
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
WARNING: No tftp server found - please refer to "UG1144 2020.1 PetaLinux Tools Documentation Reference Guide" for its impact and solution
scilogyhunter@ubuntu1804:~/petalinux$

验证petalinux

使用 petalinux-create -h 命令验证 petalinux 安装可用。

scilogyhunter@ubuntu1804:~/petalinux$ petalinux-create -h
petalinux-create             (c) 2005-2020 Xilinx, Inc.

This command creates a new PetaLinux Project or component

Usage:
  petalinux-create [options] <-t|--type <TYPE> <-n|--name <COMPONENT_NAME>

Required:
  -t, --type <TYPE>                     Available type:
                                          * project : PetaLinux project
                                          * apps    : Linux user application
                                          * modules : Linux user module
  -n, --name <COMPONENT_NAME>           specify a name for the component or
                                        project. It is OPTIONAL to create a
                                        PROJECT. If you specify source BSP when
                                        you create a project, you are not
                                        required to specify the name.
Options:
  -p, --project <PROJECT>               specify full path to a PetaLinux project
                                        this option is NOT USED for PROJECT CREATION.
                                        default is the working project.
  --force                               force overwriting an existing component
                                        directory.
  -h, --help                            show function usage
  --enable                              this option applies to all types except
                                        project.
                                        enable the created component
  --srcuri                              this option is to specify the source files
                                        from outside project.This will copy specified
                                        files into recipe files directory and add to
                                        SRC_URI variable in .bb file.
                                        Specify the multiple files with space.

Options for project:
  --template <TEMPLATE>                 versal|zynqMP|zynq|microblaze
                                        user needs specify which template to use.
  -s|--source <SOURCE>                  specify a PetaLinux BSP as a project
                                        source.

Options for apps:
  --template <TEMPLATE>                 <c|c++|autoconf|install>
                                        c   : c user application(default)
                                        c++ : c++ user application
                                        autoconf: autoconf user application
                                        install: install data only
                                        fpgamanager: autoload .dtbo and .bin files
                                            Enable 'FPGA Manager' to build the fpgamanager apps.
  -s, --source <SOURCE>                 valid source name format:
                                          *.tar.gz, *.tgz, *.tar.bz2, *.tar,
                                          *.zip, app source directory

Options for modules: (No specific options for modules)

EXAMPLES:

Create project from PetaLinux Project BSP:
  $ petalinux-create -t project -s <PATH_TO_PETALINUX_PROJECT_BSP>

Create project from template:
For microblaze project,
  $ petalinux-create -t project -n <PROJECT> --template microblaze
For zynq project,
  $ petalinux-create -t project -n <PROJECT> --template zynq
For zynqMP project,
  $ petalinux-create -t project -n <PROJECT> --template zynqMP
For versal project,
  $ petalinux-create -t project -n <PROJECT> --template versal


Create an app and enable it:
  $ petalinux-create -t apps -n myapp --enable
The application "myapp" will be created with c template in:
  <PROJECT>/project-spec/meta-user/recipes-apps/myapp

Create an app with remote sources:
  $ petalinux-create -t apps -n myapp --enable --srcuri http://example.tar.gz
  $ petalinux-create -t apps -n myapp --enable --srcuri git://example.git\;protocol=https
  $ petalinux-create -t apps -n myapp --enable --srcuri https://example.tar.gz

Create a FPGAmanager application to load .dtsi and .bit/.pdi
  $ petalinux-create -t apps --template fpgamanager -n gpio --enable
The application "gpio" will be created with the fpgamanager class
include to build .dtbo and .bin files which will load on target
boot time(default).
NOTE: Make sure you have enabled the 'FPGA manager' in petalinux-config

Create an app with local source files:
  $ petalinux-create -t apps --template fpgamanager -n gpio --enable --srcuri \
        "<path>/pl.dtsi <path>/system.bit"
This will create "gpio" application with pl.dtsi and system.bit added
to SRC_URI and copied to files directory.


Create an module and enable it:
  $ petalinux-create -t modules -n mymodule --enable
The module "mymodule" will be created with template in:
  <PROJECT>/project-spec/meta-user/recipes-modules/mymodule

Create an module with source files:
  $ petalinux-create -t modules -n mymodule --enable --srcuri "<path>/mymoudle.c <path>/Makefile"

scilogyhunter@ubuntu1804:~/petalinux$

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/636988.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

51单片机汇编语言设计流水灯

1、仿真原理图 2、汇编代码及详细注释 &#xff08;1&#xff09;、代码1 ORG 0000H ; 设置代码起始地址为0000H 熄灭发光二极管 MOV A,#0FEH ; 将数值0FEH载入A寄存器&#xff0c;熄灭所有发光二极管 MOV P1, A ; 将A寄存器的值移动到P1寄存器&#xff0c;将0FEH写入P1…

重组蛋白表达系统优缺点对比|卡梅德生物

重组蛋白是现代生物技术中不可或缺的一部分&#xff0c;它们广泛应用于药物开发、研究工具和工业酶的生产。根据目标蛋白的特性和所需的修饰&#xff0c;可以选择不同的表达系统。下文罗列一下四个主要蛋白表达系统的优缺点&#xff1a; 1. 原核表达系统&#xff08;如大肠杆菌…

MySQL学习之DQL语句(数据查询语言)

准备SQL CREATE TABLE student ( id int, -- 编号 name varchar(20), -- 姓名 age int, -- 年龄 sex varchar(5), -- 性别 address varchar(100), -- 地址 math int, -- 数学 english int -- 英语 );INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES (1,…

百变大侦探秘之馆的魔术师是谁 秘之馆的魔术师怎么打真相解析

百变大侦探秘之馆的魔术师是一个6人的困难剧本&#xff0c;这次我们将来到动物世界&#xff0c;虽然参与进来的都是各种代号的动物&#xff0c;但他们每个都聪明绝顶&#xff0c;所以今天的真相解析也会比较困难&#xff0c;故事就这样开始了&#xff0c;我们来看看谁才是魔术师…

什么是住宅IP代理?为什么需要家庭 IP 代理

家庭代理 IP 允许您选择特定位置&#xff08;国家、城市或移动运营商&#xff09;并作为代理上网该区域的真实用户。住宅代理 IP 可以定义为保护用户免受一般网络流量影响的中介。它们在隐藏您的 IP 地址的同时充当缓冲区。住宅代理 IP 是服务提供商分配给用户的替代 IP 地址。…

docker部署kafka实战

目录 一、部署kafaka、zookeeper 二、测试信息发送与接收 三、kafka进阶 一、部署kafaka、zookeeper 请提前安装docker、docker-compose 安装docker&#xff1a;docker--安装docker-ce-CSDN博客 安装docker-compose&#xff1a; 安装docker-compose_安装 docker-compose-CSD…

Vue前端项目打包,并部署Vue项目到Linux云服务器上

一. vue前端项目打包 1.使用vscode开发项目 2.在config目录下的prod.env.js文件当中配置我们后端服务器的IP地址和端口号&#xff0c;因为这是在实际的部署当中所以必须要在生成环境下进行项目的部署。 如图所示&#xff1a; 3.在config目录下的index.js文件当中要改assetsPu…

C++容器之多重映射(std::multimap)

目录 1 概述2 使用实例3 接口使用3.1 construct3.2 assigns3.3 iterators3.4 capacity3.5 insert3.6 erase3.7 swap3.8 clear3.9 emplace3.10 emplace_hint3.11 key_comp3.12 value_comp3.13 find/count3.14 lower_bound/upper_bound/equal_range3.15 get_allocator1 概述 多重…

小白跟做江科大32单片机之新建工程

项目基础配置 1.新建item文件夹&#xff0c;包含全部stm32项目文件 2.在item文件夹中新建第一个项目&#xff0c;2-1 stm32工程模板&#xff0c;起名字是project 3.工程芯片选择STM32F10318&#xff0c;因为课程中的芯片是STM32F10318C8T6 4.在固件库\STM32F10x_StdPeriph_…

【Docker实操】启动redis服务

一、步骤 1、获取redis镜像 执行获取redis镜像命令&#xff1a;docker pull redis。打印镜像清单&#xff0c;可以看到新拉到的redis镜像。 2、创建redis.conf配置文件 linux主机 mkdir -p /root/www/redis/conf touch /root/www/redis/conf/redis.conf cat << EOF &…

ICML2024高分论文!大模型计算效率暴涨至200%,来自中国AI公司

前段时间&#xff0c;KAN突然爆火&#xff0c;成为可以替代MLP的一种全新神经网络架构&#xff0c;200个参数顶30万参数&#xff1b;而且&#xff0c;GPT-4o的生成速度也是惊艳了一众大模型爱好者。 大家开始意识到—— 大模型的计算效率很重要&#xff0c;提升大模型的token…

深入解析文华量化交易策略---交易指令如何选择

随着金融投资的迅猛发展&#xff0c;自动化策略模型已逐渐成为现代投资领域的一股重要力量。量化交易模型均以数据为驱动&#xff0c;通过运用数学模型和算法&#xff0c;对期货、黄金等投资市场走势进行精准预测和高效交易。 艾云策略整理了量化策略相关资料&#xff0c;希望通…

孢子捕捉分析仪的工作原理

TH-BZ1孢子捕捉分析仪是一种专门用于捕捉和分析空气中飘浮的病原菌孢子的设备。它利用现代传感技术、图像识别技术和网络通信技术&#xff0c;通过设置在田间的设备&#xff0c;连续不断地抽吸周围空气&#xff0c;吸附空气中漂浮的病原菌孢子到特制的载玻带上。然后&#xff0…

【AJAX前端框架】Asynchronous Javascript And Xml

1 传统请求及缺点 传统的请求都有哪些&#xff1f; 直接在浏览器地址栏上输入URL。点击超链接提交form表单使用JS代码发送请求 window.open(url)document.location.href urlwindow.location.href url… 传统请求存在的问题 页面全部刷新导致了用户的体验较差。传统的请求导…

【Linux安全】Firewalld防火墙

目录 一.Firewalld概述 二.Firewalld和iptables的关系 1.firewalld和iptables的联系 2.firewalld和iptables的区别 三.Firewalld区域 1.概念 2.九个区域 3.区域介绍 4.Firewalld数据处理流程 四.Firewalld-cmd命令行操作 1.查看 2.增加 3.删除 4.修改 五.Firewa…

hbase版本从1.2升级到2.1 spark读取hive数据写入hbase 批量写入类不存在问题

在hbase1.2版本中&#xff0c;pom.xml中引入hbase-server1.2…0和hbase-client1.2.0就已经可以有如下图的类。但是在hbase2.1.0版本中增加这两个不行。hbase-server2.1.0中没有mapred包&#xff0c;同时mapreduce下就2个类。版本已经不支持。 <dependency><groupId>…

GBase 8s 如何查看回滚的事务 和对应的SQL

描述&#xff1a; 如何查看当前数据库中是否有事务在回滚&#xff0c; 如果有&#xff0c; 具体是哪条 SQL 在回滚&#xff1f; 解决办法&#xff1a; 方法1&#xff1a; 通过 onstat -u|grep RP&#xff1b; 可以获取相关的 sessionid。 通过 onstat -g ses sid 获取 SQL&a…

Spring系列-01-IOC的依赖查找和依赖注入

IOC基础 IOC发展 初始场景, 不使用IOC如何实现 假定现在有一下需求, 开始使用的数据源是MySQL, 后续数据源变动为Oracle, 那么我们的代码就需要改动 每次切数据源都需要改动, 那么进行优化 静态工厂解决强依赖 在01版本基础上, 使用静态工厂对多个数据源进行了封装, 要哪…

HTML静态网页成品作业(HTML+CSS)——魅族商城首页网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

登录安全分析报告:创蓝云智注册

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…