petalinux install
1.新装系统后 需要设置su密码:
方法 sudo passwd
提示“Enter new UNIX password”
退出root:su 用户名
2 . 修改Ubuntu的软件源,改成国内的服务器地址,这里选择了aliyun,然后执行
sudo apt-get update
sudo apt-get upgrade
-
dash->bash
修改/bin/sh,因为ubuntu默认的“/bin/sh”是dash,需要修改成bash
$ ls -al /bin/sh #查看未修改之前的/bin/sh
lrwxrwxrwx 1 root root 4 5月 29 16:40 /bin/sh -> dash
$ sudo dpkg-reconfigure dash #修改,弹出的对话框选择“否”
$ ls -al /bin/sh #查看修改后的/bin/sh
lrwxrwxrwx 1 root root 4 5月 30 15:14 /bin/sh -> bash
虚拟机Oracle VM VirtualBox linux系统如何访问windows共享文件夹
[oracle@ODIGettingStarted ~]$ su
Password:
[root@ODIGettingStarted oracle]# mkdir /mnt/Windows_Share
[root@ODIGettingStarted oracle]# mount -t vboxsf VirtureBox_Share /mnt/Windows_Share/
[root@ODIGettingStarted oracle]#
https://www.cnblogs.com/dpf-learn/p/6143084.html
https://blog.csdn.net/binbinxyz/article/details/42785849 成功
修改文件‘/etc/rc.local’实现自动挂载共享文件夹到指定文件夹virtualbox面板中选定要操作的虚拟机–>设置–>共享文件夹–>添加共享文件夹–>勾选‘固定分配’。打开Linux终端,输入:sduo vi /etc/rc.local打开rc.local文件
可以看到这个脚本是默认不运行的,所以我们要把’exit 0‘这行删除,并添加以下内容:mount -t vboxsf sharefolder /mysharefolder’sharefolder’是我们设置的windows下的要共享的文件夹,’/mysharefolder’是我们设置的linux下要共享的文件夹。重启虚拟机即可。
链接:https://www.jianshu.com/p/39327c9ea368
5.安装lib
汇总
sudo apt-get install -y gcc git make net-tools libncurses5 libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev zlib1g:i386 libc6:i386 libstdc++6:i386 screen pax gzip tofrodos iproute2 gawk xvfb vim tftp openbsd-inetd python x11proto-xf86dga-dev
gedit /etc/inetd.conf
#在文件中增加以下内容
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftproot
#保存并退出
sudo mkdir /tftproot
sudo 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:*
补充库(root权限):
#在运行petalinux-config -c kernel出现错误,需要提前安装下面两个库
sudo apt-get install libncurses5 libncurses5-dev
#编译时会出现错误arm-xilinx-linux-gnueabi-gcc: Command not found,需要安装下面三个库
sudo apt-get install libc6:i386
sudo apt-get install libstdc++6:i386
sudo apt-get install zlib1g:i386
sudo apt-get install wget diffstat chrpath socat xterm autoconf libtool unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev
sudo apt-get install -y gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev zlib1g:i386 screen pax gzip tofrodos iproute2 gawk xvfb vim tftp openbsd-inetd libc6:i386 libstdc++6:i386 zlib1g:i386
提示No tftp server found
https://www.cnblogs.com/vacajk/p/6146146.html
#在运行petalinux-config -c kernel出现错误,需要提前安装下面两个库
apt-get install libncurses5 libncurses5-dev
#编译时会出现错误arm-xilinx-linux-gnueabi-gcc: Command not found,需要安装下面三个库
apt-get install libc6:i386
apt-get install libstdc++6:i386
apt-get install zlib1g:i386
#安装petalinux时出现错误,提示缺少zlib和openssl,需要安装下面一个库
apt-get install libssl-dev
#安装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
6.安装Petalinux
cd /opt/
sudo mkdir petalinux
sudo chown 用户名 petalinux //修改petalinux目录的所有者为普通用户
sudo chown 用户名 petalinux-v2016.4-final-installer1.run //将安装包拷贝到petalinux目录下,同样修改所有者权限为普通用户
$ ./petalinux-v2016.4-final-installer1.run .
注:
修改petalinux目录的所有者为普通用户
注意,这一步最容易出错,Petalinux的安装目录的所有者必须是普通用户,否则将无法安装过程中将会遇到各种问题
从Xilinx官网上下载petalinux-v2016.4-final-installer1.run,具体链接为https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools/2016-4.html
原文:https://blog.csdn.net/XJT2015/article/details/78762824
7.验证
source /opt/petalinux/settings.sh //先设置环境变量:
echo $PETALINUX //验证环境变量是否设置成功,执行:
若出现如下路径,则表示成功:
/opt/petalinux
//自己以普通用户模式下
gedit ~/.bashrc
//在末尾添加:
source /opt/petalinux/settings.sh
---------------------**
参考:
https://blog.csdn.net/u013457167/article/details/77914069
https://www.cnblogs.com/vacajk/p/6146146.html
https://blog.csdn.net/u013457167/article/details/77887705
https://blog.csdn.net/zhupingyang/article/details/80509199
https://www.cnblogs.com/likaiwei/p/10223354.html 创建工程
https://blog.csdn.net/XJT2015/article/details/78762824
创建工程
PetaLinux BSP安装
PetaLinux reference board support packages (BSPs) 是受支持的电路板上的参考设计,
此外,这些设计可作为在受支持的电路板上创建自己的工程的基础使用。
BSP 参考设计未包含在 PetaLinux 工具安装程序中,需要单独下载和安装。
从 BSP 中创建工程:
petalinux-create -t project -s
Vivado设置硬件平台
如何向 PetaLinux 工程导出硬件平台。
HDF将在未来的版本中被弃用。它将被Xilinx支持归档(XSA)取代,XSA是Vivado®Design Suite 2019.2中引入的一种硬件描述格式。XSA是HDF的超级集合,它拥有可以通过XSCT/Vitis更改的附加配置。
配置好硬件项目后,PetaLinux项目需要一个硬件描述文件(XSA)包含有关处理器系统的信息。可以从 Vivado中运行导出硬件,获得硬件描述文件。
在项目初始化(或更新)时,PetaLinux生成一个设备树源文件、u -BOOT配置头文件,并基于硬件描述文件XSA启用Linux内核驱动程序。
创建新的 PetaLinux 工程
petalinux-create
$ petalinux-create --type project --template --name
<PROJECT_NAME>
参数如下:
• --template - 支持下列平台类型:
○ zynqMP (UltraScale+™ MPSoC)
○ zynq (Zynq-7000 器件)
○ microblaze (MicroBlaze™ CPU)
注释: MicroBlaze 选项不得与 Zynq-7000 器件或可编程逻辑电路 (PL) 中的 Zynq UltraScale+ 设计配合使用。
• --name <PROJECT_NAME> - 您正在构建的工程名称。
该命令可从默认模板中创建新的 PetaLinux 工程文件夹。 以下步骤可自定义这些设置, 以便与以前创建的硬件工程匹
配。
如果使用了 --template 选项,而未使用 BSP, 您可以使用 petalinux-config 命令来选择与您的电路板设计接近
的默认电路板配置, 如下所示
- petalinux-config --get-hw-description=<PATH-TO-HDF/DSA-DIRECTORY>
- 按需设置 CONFIG_SUBSYSTEM_MACHINE_NAME。
设置和构建
导入硬件配置
$ petalinux-config --get-hw-description=<-path-to-directory-containinghardware description-file>
包含.xsa/.hdf 的路径
如果两个文件在硬件描述目录中均可用,则.xsa文件将优先于.hdf文件。
当 petalinux-config --get-hw-description , 会启动顶层系统配置菜单:
Subsystem AUTO Hardware Settings →” 菜单可自定义整个系统范围内的硬件设置。
构建系统镜像
petalinux-build
该步骤生成设备树 DTB 文件、 第一阶段引导加载程序(如果选定的话)、 U-Boot、 Linux 内核以及根文件系统镜像。 最后, 它生成必需的启动镜像。
在构建完成时,生成的镜像将位于 / images 和 /tftpboot 目录之内
默认镜像
运行petalinux-build时,它会为Zynq UltraScale+ MPSoC、Zynq-7000设备和MicroBlaze平台生成FIT镜像(FIT image,Flattened uImage Tree)。还会生成 RAM 磁盘镜像 rootfs.cpio.gz.u-boot
镜像 /images/linux/image.ub, 是一种 FIT 镜像。
内核镜像(包括 RootFS)是 Zynq® UltraScale+™ MPSoC 的“Image”。
构建镜像位于 <-plnx-proj-root>/images/linux 目录中。
生成uImage
如果想使用 uImage,请使用 petalinux-package --image。 例如:
$ petalinux-package --image -c kernel --format uImage
注释: 该选项仅支持 Zynq-7000 器件和 MicroBlaze™ 处理器。
生成 Zynq UltraScale+ MPSoC 的启动镜像
如何为 Zynq UltraScale+ MPSoC 生成 BOOT.BIN
在执行此步骤之前, 要确保您已构建了硬件比特流。 启动镜像可放入闪存或 SD 卡。在您打开电路板的电源时, 它可从
启动镜像中启动。 启动镜像通常含有第一阶段引导加载程序、 FPGA 比特流(可选)、 PMU 固件、 ATF 和 U-Boot。
petalinux-package --boot --format BIN --fsbl images/linux/zynqmp_fsbl.elf --u-boot images/linux/u-boot.elf --pmufw images/linux/pmufw.elf --fpga images/linux/*.bit --force
较全面版本
petalinux-package --boot --format BIN --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit --atf bl31.elf --force
or
petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --pmufw images/linux/pmufw.elf --atf images/linux/bl31.elf --fpga images/linux/system.bit --u-boot images/linux/u-boot.elf --force
INFO: File in BOOT BIN: “/home/weijie.wang/workplace/G_pulse/petalinux/GPulse/images/linux/zynqmp_fsbl.elf”
INFO: File in BOOT BIN: “/home/weijie.wang/workplace/G_pulse/petalinux/GPulse/images/linux/pmufw.elf”
INFO: File in BOOT BIN: “/home/weijie.wang/workplace/G_pulse/petalinux/GPulse/images/linux/system.bit”
INFO: File in BOOT BIN: “/home/weijie.wang/workplace/G_pulse/petalinux/GPulse/images/linux/bl31.elf”
INFO: File in BOOT BIN: “/home/weijie.wang/workplace/G_pulse/petalinux/GPulse/images/linux/u-boot.elf”
INFO: Generating zynqmp binary package BOOT.BIN…
启动和封装
封装Prebuilt Image
$ petalinux-package --prebuilt --fpga
使用 petalinux-boot 命令处理预建镜像
预建选项的启动级别
–prebuilt <BOOT_LEVEL> 启动预建镜像(覆盖所有设置)。受支持的启动级别为 1 至 3。
• 1 级: 下载预建 FPGA 比特流。
○ 它启动 Zynq® UltraScale+™ MPSoC 的 FSBL 和 PMU 固件。
• 2 级: 下载预建 FPGA 比特流并启动预建 U-Boot。
○ 对于 Zynq UltraScale+ MPSoC:它在启动 U-Boot 之前启动 PMU 固件、 FSBL 和 ATF。
• 3 级:
○ 对于 MicroBlaze™ 处理器: 下载预建 FPGA 比特流并启动目标上的预建内核镜像
预建选项启动级别用途的示例:
$ petalinux-boot --jtag --prebuilt 3
SD 卡在硬件上启动 PetaLinux 镜像
将以下文件从 /pre-built/linux/images/ 复制到 SD 卡中 FAT32 格式的第一分区根目
录中:
• BOOT.BIN
• image.ub
将电路板启动模式设定为 SD 启动
JTAG 在硬件上启动 PetaLinux 镜像
JTAG 启动与 XSDB 通信,而 XSDB 与 hw_server 通信。 所用的 TCP 端口是 3121;确保该端口的防火墙被禁用
在工作站上运行 petalinux-boot 命令, 如下所示:
$ petalinux-boot --jtag --prebuilt 3
TFTP 卡在硬件上启动 PetaLinux 镜像
BSP 封装
自定义的 PetaLinux 工程可以通过 BSP 交付给下一个级别的团队或外部客户。
$ petalinux-package --bsp -p --output MY.BSP
附加 BSP 封装选项
- BSP 封装包含硬件资源。
$ petalinux-package --bsp -p --hwsource --output MY.BSP
它不会修改指定的 PetaLinux 工程 。 它会将指定的硬件工程源放入 MY.BSP 存档中的
/hardware/ 中。 - BSP 封装包含其他资源。
自定义工程
固件设置
$ petalinux-config
选择“Firmware Version Configuration ” 。
按要求选择主机名称、产品名称、固件版本以进行编辑。
Root File System根文件系统类型配置
petalinux-config
“Image Packaging Configuration → Root File System Type” 。
按要求选择 “INITRAMFS” /“INITRD” /“JFFS2” /“NFS” /“SD card” 。
注释: SD 启动功能预期将 RootFS 加载到 ext4 分区, 所有其他启动镜像加载到 FAT32 分区。
Boot Images 存储配置
$ petalinux-config
Subsystem AUTO Hardware Settings → Advanced Bootable Images Storage Settings
• boot image settings (BOOT.BIN - FSBL, PMU 固件, ATF, U-Boot)
• “u-boot env partition settings”
• “kernel image settings” (image.ub - Linux 内核, DTB 和 RootFS)
• “jffs2 RootFS image settings”
• “DTB settings”
Primary Flash Partition Configuration
管理镜像大小
$ petalinux-config -c rootfs
$ petalinux-config -c kernel
配置 INITRD BOOT
Initial RAM disk (INITRD) 提供了在 PetaLinux 开机过程期间利用引导加载程序加载 RAM 磁盘的能力。
Linux内核将其挂载为RootFS并启动初始化过程。本节描述配置INITRD引导的过程。
- 设置 RootFS 类型为 INITRD。 如需了解更多信息,请参阅 根文件系统类型配置。
- 设置 RAMDISK loadaddr。 确保 loadaddr 不与内核或 DTB 地址重叠, 并且是有效的 DDR 地址。
- 构建系统镜像。 如需了解更多信息,请参阅 构建系统镜像。
- 使用以下方法之一来启动系统镜像:
a. 利用 SD 卡在硬件上启动 PetaLinux 镜像,请参见 利用 SD 卡在硬件上启动 PetaLinux 镜像。
b. 利用 JTAG 在硬件上启动 PetaLinux 镜像,请参见 利用 JTAG 在硬件上启动 PetaLinux 镜像。
重要提示! PetaLinux 的默认 RootFS 是 INITRAMFS。在 INITRD 模式下,内核镜像中不包含 RootFS。
配置 INITRAMFSBOOT
- 将 RootFS 类型设置为 INITRAMFS。
- 构建系统镜像。 如需了解更多信息,请参阅 构建系统镜像。
- 利用以下方法之一启动系统镜像。
a. 在 QEMU 上启动 PetaLinux 镜像,请参见 启动 QEMU 上的 PetaLinux 镜像。
b. 利用 SD 卡在硬件上启动 PetaLinux 镜像,请参见 利用 SD 卡在硬件上启动 PetaLinux 镜像。
c. 利用 JTAG 在硬件上启动 PetaLinux 镜像,请参见 利用 JTAG 在硬件上启动 PetaLinux 镜像。
In INITRAMFS mode, RootFS is included in the kernel image.
• Image → Image (kernel) + rootfs.cpio (for Zynq® UltraScale+™ MPSoC)
rootfs.cpio就是一个Linux内核空实例的磁带备份文件
Configuring SD Card ext File System Boot
准备 SD 卡
用于启动 PetaLinux SD 卡 ext 文件系统的步骤:
- 使用分区编辑器(如 gparted) 将 SD 卡格式化为两个分区。
- 第一个分区的大小应该至少为 60 MB, 并格式化为 FAT32 文件系统。 确保分区之前有 4 MB 的空闲空间。 第一个
分区将包含引导加载程序、设备树和内核镜像。 将这个分区标记为 BOOT。 - 第二个分区应该格式化为 ext4 文件系统,可以占用 SD 卡上剩余的空间。这个分区将存储系统根文件系统。 将这
个分区标记为 RootFS。
为获得最佳性能,请确保 SD 卡分区为 4 MB 对齐。
PetaLinux 设置和构建系统镜像
为 SD 卡 ext 文件系统启动和构建系统镜像而配置 PetaLinux 的步骤如下:
- 更改至您的 PetaLinux 工程根目录中。
$ cd - 启动顶层系统配置菜单。
$ petalinux-config - 选择“Image Packaging Configuration → Root filesystem type” 。
- 选择 “SD card” 作为 RootFS 类型。
- 退出菜单配置并保存配置设置。
注释: 启动实参将在 <-plnx-proj-root>/components/plnx_workspace/device-tree/device-tree/
syst em-conf.dtsi 中自动更新。这些更改只有在构建之后才予以反映。 - 构建 PetaLinux 镜像。 如需了解更多信息,请参阅 构建系统镜像。
- 生成启动镜像。 如需了解更多信息,请参阅 生成 Zynq UltraScale+ MPSoC 的启动镜像。
- 生成的 rootfs.tar.gz 文件将出现在 images/linux 目录中。若要提取,请使用 tar xvf
rootfs.tar.gz。
将选项:Subsystem AUTO Hardware Settings -> Advanced bootable images storage Settings -> boot image settings 中 ‘image storage media’ 更改为 ‘primary sd’;
将选项:Subsystem AUTO Hardware Settings -> Advanced bootable images storage Settings -> kernel image settings 中 ‘image storage media’ 更改为 ‘primary sd’;
将选项:Subsystem AUTO Hardware Settings -> Advanced bootable images storage Settings -> dtb image settings 中 ‘image storage media’ 更改为 ‘primary sd’
将选项:Image Packaging Configurations 中 ‘Root filesystem type’ 更改为 ‘SD card’
拷贝镜像文件
自定义Rootfs
附录B:PetaLinux工程结构
本节简要介绍PetaLinux工程的文件和目录结构。构建的Linux系统由以下组件组成:
• Device tree
• First stage boot loader (optional)
• U-Boot
• Linux kernel
• RootFS is composed of the following components:
- Prebuilt packages
- Linux user applications (optional)
- User modules (optional)
PetaLinux工程目录包含工程、Linux子系统和子系统组件的配置文件。petalinux-build命令使用这些配置文件构建项目。可以运行petalinux-config修改它们。下面是一个PetaLinux项目的例子
工程构建后, 将自动生成三个目录:
• <-plnx-proj-root>/build 用于构建生成的文件。
• <-plnx-proj-root>/images 用于可启动镜像
• /build/tmp 用于 Yocto 生成的文件。此目录可通过 petalinux-config 设置。
附录C :Boot Components
FSBL
First Stage Boot Loader
默认情况下,顶层系统设置被设定为生成第一阶段启动加载器 (FSBL)。这是可选项
注释: 如果不希望 PetaLinux 构建 FSBL/FS-BOOT,则需要自己手动构建。否则, 系统将无法正常启动。
如果之前从 menuconfig 禁用了第一阶段启动加载器,则可以将工程设置为构建第一阶段启动加载器, 如下所示:
- 启动顶层系统设置配置菜单并配置:
$ petalinux-config
a. 选择“Linux Components Selection —>”子菜单。
b. 选择“First Stage Boot Loader” 选项。 [*] First Stage Bootloader
c. 退出菜单并保存更改。 - 启动 petalinux-build 构建 FSBL:
构建工程时构建 FSBL:
$ petalinux-build
仅构建 FSBL:
$ petalinux-build -c fsbl (for MicroBlaze, it is fs-boot)
引导加载程序 ELF 文件将作为 zynqmp_fsbl.elf (Zynq® UltraScale+™ MPSoC)、 zynq_fsbl.elf
(Zynq®-7000 器件)和 fs-boot.elf(MicroBlaze™ 处理器) 安装在工程根目录内的 images/linux 中。
Arm Trusted Firmware (ATF)
Arm 可信固件 (ATF)
此项用于 Zynq® UltraScale+™ MPSoC。
- 启动顶层系统设置配置菜单并配置:
$ petalinux-config
a. 选择“Arm Trusted Firmware Compilation Configuration —>”子菜单。
b. 输入您的设置。
c. 退出菜单并保存更改。 - 在构建工程时构建 ATF:
$ petalinux-build
只构建 ATF:
$ petalinux-build -c arm-trusted-firmware
ATF ELF 文件将作为 Zynq UltraScale+ MPSoC 的 bl31.elf 安装在工程根目录内的 images/linux 中。
PMU 固件
这仅用于 Zynq® UltraScale+™ MPSoC。这是可选项。默认情况下,顶层系统设置被设定为生成 PMU 固件。
- 启动顶层系统设置配置菜单并配置:
$ petalinux-config
a. 选择“Linux Components Selection” 。
b. 选择“PMU Firmware” 选项。
[*] PMU Firmware
c. 退出菜单并保存更改。 - 构建工程时构建 PMU 固件:
$ petalinux-build
仅构建 PMU 固件:
$ petalinux-build -c pmufw
PMU 固件 ELF 文件将作为 Zynq UltraScale+ MPSoC 的 pmufw.elf 安装于工程根目录内的 images/linux 中。
仅用于 MicroBlaze 平台的 FS-Boot
PetaLinux 中的 FS-Boot 是仅用于 MicroBlaze™ 平台的第一阶段引导加载程序演示。其目的是演示如何从闪存向内存加
载镜像并跳转到其中。 如果要试用 FS-Boot, 至少需要 8 KB 区块 RAM。
FS-Boot 仅支持标准 SPI 模式和 Quad SPI 模式的并列式闪存和 SPI 闪存