petalinux 17.2安装流程-基于Ubuntu系统

本文详细记录了PetaLinux SDK版本2017.2的安装过程,包括解决安装过程中遇到的问题如提示未找到FTP服务器及不能在root或sudo用户下安装等,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. #安装petalinux时出现警告,提示No tftp server found - please refer to "PetaLinux SDK Installation Guide" 

  for its impact and solution,需要安装下面3个库:apt-get install tftpd tftp openbsd-inetd

 gedit /etc/inetd.conf
 #在文件中增加以下内容
 tftp        dgram    udp    wait    nobody    /usr/sbin/tcpd    /usr/sbin/in.tftpd /tftproot
 #保存并退出
 mkdir /tftproot
 chmod 777 /tftproot
 /etc/init.d/openbsd-inetd restart
 netstat -an | more grep udp
 #看到有如下输出,即表示tftp安装成功
 #udp        0      0 0.0.0.0:69              0.0.0.0:*


2. 报不能再root或sudo下安装SDK,所以必须切换到普通用户进行操作
PetaLinux Extensible SDK installer version 2017.2
=================================================
ERROR: The extensible sdk cannot be installed as root.
*********************************************
ERROR: Failed to install Yocto SDK for zynqMP.
*********************************************

解决办法:
work@ubuntu: mkdir /home/work/petalinux
work@ubuntu:chmod 777 /home/work/petalinux
将petalinux-v2017.2-final-installer.run 文件拷贝到/home/work/petalinux目录下
work@ubuntu:~/petalinux$./petalinux-v2017.2-final-installer.run   不指定目录的话,默认在当前目录
INFO: Checking installer checksum...
INFO: Extracting PetaLinux installer...
INFO: Installing PetaLinux...
*********************************************
WARNING: You haven't specified the installation location.
*********************************************
*********************************************
WARNING: By default, it will be installed in your working directory: /home/work/petalinux
*********************************************
Please input "y" to proceed the installation, exit otherwise
:y
INFO: Checking PetaLinux installer integrity...
*********************************************
WARNING: PetaLinux installation directory: /home/work/petalinux/. is not empty!
*********************************************
Please input "y" to continue to install PetaLinux in that directory?[n]y
INFO: Extracting Installation files...


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] > y
Do you accept Webtalk Terms and Conditions? [y/N] > y
Do you accept Third Party End User License Agreement?[y/N] > y
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
INFO: Installing PetaLinux SDK to "/home/work/petalinux/."
INFO: Installing PetaLinux zynqMP Yocto SDK to "/home/work/petalinux/./components/yocto/source/aarch64"...
PetaLinux Extensible SDK installer version 2017.2
=================================================
You are about to install the SDK to "/home/work/petalinux/components/yocto/source/aarch64". Proceed[Y/n]? Y
Extracting SDK.............................................done
Setting it up...
Extracting buildtools...
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.
 $ . /home/work/petalinux/components/yocto/source/aarch64/environment-setup-aarch64-xilinx-linux
INFO: PetaLinux Yocto SDK for zynqMP has been successfully installed.
INFO: Installing PetaLinux zynq Yocto SDK to "/home/work/petalinux/./components/yocto/source/arm"...
PetaLinux Extensible SDK installer version 2017.2
=================================================
You are about to install the SDK to "/home/work/petalinux/components/yocto/source/arm". Proceed[Y/n]? Y
Extracting SDK.........................................done
Setting it up...
Extracting buildtools...
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.
 $ . /home/work/petalinux/components/yocto/source/arm/environment-setup-cortexa9hf-neon-xilinx-linux-gnueabi
INFO: PetaLinux Yocto SDK for zynq has been successfully installed.
INFO: Installing PetaLinux microblaze (Full) Yocto SDK to "/home/work/petalinux/./components/yocto/
source/microblaze_full"...
PetaLinux Extensible SDK installer version 2017.2
=================================================
You are about to install the SDK to "/home/work/petalinux/components/yocto/source/microblaze_full". Proceed[Y/n]? Y
Extracting SDK.............................done
Setting it up...
Extracting buildtools...
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.
 $ . /home/work/petalinux/components/yocto/source/microblaze_full/
 environment-setup-microblazeel-v10.0-bs-cmp-mh-div-xilinx-linux
INFO: Installing PetaLinux microblaze (Lite) Yocto SDK to "/home/work/petalinux/./components/yocto/source/microblaze_lite"...
PetaLinux Extensible SDK installer version 2017.2
=================================================
You are about to install the SDK to "/home/work/petalinux/components/yocto/source/microblaze_lite". Proceed[Y/n]? Y
Extracting SDK.............................done
Setting it up...
Extracting buildtools...
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.
 $ . /home/work/petalinux/components/yocto/source/microblaze_lite/
  environment-setup-microblazeel-v10.0-bs-cmp-ml-xilinx-linux
INFO: PetaLinux Yocto SDK for microblaze has been successfully installed.
INFO: PetaLinux SDK has been installed to /home/work/petalinux/.


至此整个安装完成,中间等待过程比较长,所依赖的库按照xilinx的手册UG114提前安装好或在安装时提示缺少什么库在去安装。

work@ubuntu:~/petalinux$sudo dpkg-reconfigure dash  解决shell 没有更改成bash
[sudo] password for work: 
Removing 'diversion of /bin/sh to /bin/sh.distrib by dash'
Adding 'diversion of /bin/sh to /bin/sh.distrib by bash'
Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash'
Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash'


work@ubuntu:~/petalinux$source settings.sh   
PetaLinux environment set to '/home/work/petalinux'
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services   ------>安装成功了,不容易啊.........



<think>好的,用户现在想了解的是Petalinux中的两个命令:`petalinux-build--sdk`和`petalinux-package--sysroot`的功能及正确用法。我需要先回忆这两个命令的具体作用,然后结合用户提供的引用内容来组织回答。首先,用户之前的问题是关于Yocto构建失败和内核配置错误的,现在转向了PetalinuxSDK生成相关命令。这可能是因为他们在进行嵌入式Linux开发时,需要为应用程序开发准备SDK环境,所以需要了解如何正确生成和使用SDK。根据用户提供的引用[1]和[2],他们提到生成SDK文件夹、拷贝sysroot目录,以及在SDK中设置LinuxSystem Root路径。这说明这两个命令在生成SDK工具链和系统根目录方面是关键步骤。我需要先分别解释这两个命令的功能: 1. `petalinux-build--sdk`:这个命令应该是用来生成SDK工具链,包括交叉编译器、库文件等,供应用程序开发使用。引用中提到的执行该命令后会生成SDK文件夹,里面包含编译所需的根文件系统,用户需要将其拷贝到特定目录,如`/opt/sdk-project/sysroot/...`。2.`petalinux-package--sysroot`:可能用于打包sysroot目录,生成系统根目录的结构,包含头文件、库文件等,以便在应用程序开发时引用。用户引用中提到执行该命令后会在images/linux下生成SDK文件夹,其中包含需要的根文件夹。 接下来需要详细说明每个命令的用途、使用场景、具体步骤,以及注意事项。比如,何时需要执行这些命令,执行后的产物是什么,如何正确配置开发环境等。 另外,用户可能容易混淆这两个命令,需要明确它们的区别。例如,`petalinux-build --sdk`可能生成完整的工具链和SDK,而`petalinux-package --sysroot`可能专注于打包sysroot部分,或者可能是同一个过程的不同阶段? 需要查阅Petalinux文档确认这两个命令的具体作用和参数。例如,`petalinux-build`通常用于构建整个项目,而`--sdk`选项可能触发SDK的生成。而`petalinux-package`通常用于打包输出文件,如镜像文件,`--sysroot`可能是指生成sysroot目录。另外,用户引用中提到执行`petalinux-package--sysroot`后生成SDK文件夹,而引用[2]中则是通过`petalinux-build--sdk`生成。这里可能存在混淆,或者这两个命令是相互关联的,需要一起使用?可能需要进一步解释这两个命令的关系:例如,先执行`petalinux-build--sdk`生成工具链和SDK,然后使用`petalinux-package--sysroot`来打包sysroot部分,或者后者是前者的一个步骤?实际在Petalinux中,`petalinux-build--sdk`会生成一个包含sysroot和工具链的SDK安装包,通常是一个.sh文件,运行后会安装到指定目录。而`petalinux-package`可能用于打包整个项目的镜像,包括内核、设备树、根文件系统等,但`--sysroot`选项可能用于生成sysroot目录供应用程序开发使用。需要明确这两个命令的正确用法和顺序,以及生成的文件如何被应用程序开发环境使用,比如在SDK中设置系统根路径。另外,用户可能在操作过程中遇到问题,比如路径设置错误,或者没有先构建整个项目,导致生成SDK失败。需要提醒用户注意事项,比如确保项目已经成功构建,再执行这些命令。总结回答的结构应该是: 1.分别解释两个命令的功能和作用。 2.说明每个命令的使用方法和步骤。3.指出常见使用场景和典型操作流程。4.提供注意事项和常见问题解决方法。5.最后生成相关问题。需要注意引用用户提供的引用内容,比如引用[1]中提到拷贝cortexa9hf目录,引用[2]中生成sdk的步骤,这些可以作为例子来说明命令的使用方法。同时,要确保使用正确的LaTeX格式,数学表达式用$...$,独立公式用$$...$$,但在这个问题中可能涉及较少数学内容,主要需要正确格式化代码块和命令示例。 最后,生成的相关问题应围绕PetalinuxSDK生成、使用,以及应用程序开发中的常见问题,比如如何设置交叉编译环境,如何解决sysroot路径错误等。</think>### 一、`petalinux-build --sdk` 命令详解 #### 1. 核心功能 - **生成嵌入式开发工具链**:包含交叉编译器(如`arm-linux-gnueabihf-gcc`)、库文件、头文件等[^1] - **打包系统根目录(sysroot)**:提供应用程序开发所需的开发环境依赖项 - **输出SDK安装包**:默认生成`.sh`格式的安装脚本(位于`images/linux/sdk.sh`) #### 2. 使用场景 - 需要为应用程序开发准备独立编译环境时 - 需要复用Petalinux工程配置到其他开发机器时 - 需通过`CMake`或`Autotools`构建复杂项目时 #### 3. 操作步骤 ```bash # Step 1: 确保工程已完整编译 petalinux-build # Step 2: 生成SDK安装petalinux-build --sdk # Step 3: 安装SDK到指定目录(示例路径) ./images/linux/sdk.sh -d /opt/petalinux_sdk ``` 安装完成后,环境变量将自动配置到`/opt/petalinux_sdk/environment-setup-cortexa9hf-neon-xilinx-linux-gnueabi`[^2] --- ### 二、`petalinux-package --sysroot` 命令解析 #### 1. 核心功能 - **提取系统根目录结构**:生成`sysroot`目录,包含目标设备的完整头文件和库 - **生成SDK基础框架**:与`petalinux-build --sdk`配合使用,提供应用程序开发的基础环境 #### 2. 典型输出结构 ```text sysroot/ ├── usr/ │ ├── include/ # 内核及用户空间头文件 │ └── lib/ # 动态库与静态库 └── opt/ └── sdk/ # 工具链元数据 ``` #### 3. 使用流程 ```bash # Step 1: 生成sysroot目录 petalinux-package --sysroot # Step 2: 查看生成路径 ls images/linux/sdk/sysroots/cortexa9hf-neon-xilinx-linux-gnueabi/ ``` --- ### 三、命令对比与协作关系 | 特性 | `petalinux-build --sdk` | `petalinux-package --sysroot` | |--------------------|------------------------------------------|-------------------------------------| | **输出类型** | 完整SDK安装包(含工具链+sysroot) | 仅sysroot目录结构 | | **依赖条件** | 需先完成`petalinux-build` | 可直接执行 | | **典型文件路径** | `images/linux/sdk.sh` | `images/linux/sdk/sysroots/` | | **开发环境整合** | 通过`.sh`脚本安装到全局路径 | 需手动配置到IDE或编译系统 | #### 协作示例: ```bash # 完整SDK生成流程 petalinux-build petalinux-build --sdk # 生成完整工具链 petalinux-package --sysroot # 补充sysroot结构 ``` --- ### 四、典型错误与修复 #### 1. 错误:`SDK installation failed: No space left on device` - **原因**:安装路径磁盘空间不足 - **修复**: ```bash df -h /opt # 检查磁盘空间 ./sdk.sh -d /mnt/large_disk/sdk # 指定大容量路径 ``` #### 2. 错误:`Could not find SDK environment setup file` - **原因**:未正确执行环境变量配置 - **修复**: ```bash source /opt/petalinux_sdk/environment-setup-cortexa9hf-neon-xilinx-linux-gnueabi ``` --- ### 五、应用开发集成示例 #### 1. CMake项目配置 ```cmake # CMakeLists.txt 配置片段 set(CMAKE_SYSROOT /opt/sdk-project/sysroot/cortexa9hf-neon-xilinx-linux-gnueabi) set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc) ``` #### 2. 手动编译命令 ```bash source /opt/petalinux_sdk/environment-setup-cortexa9hf-neon-xilinx-linux-gnueabi arm-linux-gnueabihf-gcc -o app app.c -I${SYSROOT}/usr/include -L${SYSROOT}/usr/lib ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值