linux使用make编译_linux load

2022-10-01 12:04:40 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

文章目录

  • petalinux install
  • 创建工程
    • PetaLinux BSP安装
    • Vivado设置硬件平台
    • 创建新的 PetaLinux 工程
  • 设置和构建
    • 导入硬件配置
    • 构建系统镜像
      • 默认镜像
      • 生成uImage
    • 生成 Zynq UltraScale MPSoC 的启动镜像
  • 启动和封装
    • 封装Prebuilt Image
    • 使用 petalinux-boot 命令处理预建镜像
    • SD 卡在硬件上启动 PetaLinux 镜像
    • JTAG 在硬件上启动 PetaLinux 镜像
    • TFTP 卡在硬件上启动 PetaLinux 镜像
    • BSP 封装
  • 自定义工程
    • 固件设置
    • Root File System根文件系统类型配置
    • Boot Images 存储配置
    • Primary Flash Partition Configuration
    • 管理镜像大小
    • 配置 INITRD BOOT
    • 配置 INITRAMFSBOOT
    • Configuring SD Card ext File System Boot
      • 准备 SD 卡
      • PetaLinux 设置和构建系统镜像
      • 拷贝镜像文件
  • 自定义Rootfs
  • 附录B:PetaLinux工程结构
  • 附录C :Boot Components
    • FSBL
    • Arm Trusted Firmware (ATF)
    • PMU 固件
    • 仅用于 MicroBlaze 平台的 FS-Boot

petalinux install

1.新装系统后 需要设置su密码: 方法 sudo passwd 提示“Enter new UNIX password” 退出root:su 用户名

2 . 修改Ubuntu的软件源,改成国内的服务器地址,这里选择了aliyun,然后执行 sudo apt-get update sudo apt-get upgrade

  1. dash->bash 修改/bin/sh,因为ubuntu默认的“/bin/sh”是dash,需要修改成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 命令来选择与您的电路板设计接近 的默认电路板配置, 如下所示

  1. petalinux-config –get-hw-description=<PATH-TO-HDF/DSA-DIRECTORY>
  2. 按需设置 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 封装选项

  1. BSP 封装包含硬件资源。 $ petalinux-package –bsp -p –hwsource –output MY.BSP 它不会修改指定的 PetaLinux 工程 。 它会将指定的硬件工程源放入 MY.BSP 存档中的 /hardware/ 中。
  2. 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引导的过程。

  1. 设置 RootFS 类型为 INITRD。 如需了解更多信息,请参阅 根文件系统类型配置。
  2. 设置 RAMDISK loadaddr。 确保 loadaddr 不与内核或 DTB 地址重叠, 并且是有效的 DDR 地址。
  3. 构建系统镜像。 如需了解更多信息,请参阅 构建系统镜像。
  4. 使用以下方法之一来启动系统镜像: a. 利用 SD 卡在硬件上启动 PetaLinux 镜像,请参见 利用 SD 卡在硬件上启动 PetaLinux 镜像。 b. 利用 JTAG 在硬件上启动 PetaLinux 镜像,请参见 利用 JTAG 在硬件上启动 PetaLinux 镜像。

重要提示! PetaLinux 的默认 RootFS 是 INITRAMFS。在 INITRD 模式下,内核镜像中不包含 RootFS。

配置 INITRAMFSBOOT

  1. 将 RootFS 类型设置为 INITRAMFS。
  2. 构建系统镜像。 如需了解更多信息,请参阅 构建系统镜像。
  3. 利用以下方法之一启动系统镜像。 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 文件系统的步骤:

  1. 使用分区编辑器(如 gparted) 将 SD 卡格式化为两个分区。
  2. 第一个分区的大小应该至少为 60 MB, 并格式化为 FAT32 文件系统。 确保分区之前有 4 MB 的空闲空间。 第一个 分区将包含引导加载程序、设备树和内核镜像。 将这个分区标记为 BOOT。
  3. 第二个分区应该格式化为 ext4 文件系统,可以占用 SD 卡上剩余的空间。这个分区将存储系统根文件系统。 将这 个分区标记为 RootFS。 为获得最佳性能,请确保 SD 卡分区为 4 MB 对齐。

PetaLinux 设置和构建系统镜像

为 SD 卡 ext 文件系统启动和构建系统镜像而配置 PetaLinux 的步骤如下:

  1. 更改至您的 PetaLinux 工程根目录中。 $ cd
  2. 启动顶层系统配置菜单。 $ petalinux-config
  3. 选择“Image Packaging Configuration → Root filesystem type” 。
  4. 选择 “SD card” 作为 RootFS 类型。
  5. 退出菜单配置并保存配置设置。 注释: 启动实参将在 <-plnx-proj-root>/components/plnx_workspace/device-tree/device-tree/ syst em-conf.dtsi 中自动更新。这些更改只有在构建之后才予以反映。
  6. 构建 PetaLinux 镜像。 如需了解更多信息,请参阅 构建系统镜像。
  7. 生成启动镜像。 如需了解更多信息,请参阅 生成 Zynq UltraScale MPSoC 的启动镜像。
  8. 生成的 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 禁用了第一阶段启动加载器,则可以将工程设置为构建第一阶段启动加载器, 如下所示:

  1. 启动顶层系统设置配置菜单并配置: $ petalinux-config a. 选择“Linux Components Selection —>”子菜单。 b. 选择“First Stage Boot Loader” 选项。 [*] First Stage Bootloader c. 退出菜单并保存更改。
  2. 启动 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。

  1. 启动顶层系统设置配置菜单并配置: $ petalinux-config a. 选择“Arm Trusted Firmware Compilation Configuration —>”子菜单。 b. 输入您的设置。 c. 退出菜单并保存更改。
  2. 在构建工程时构建 ATF: petalinux-build 只构建 ATF: petalinux-build -c arm-trusted-firmware

ATF ELF 文件将作为 Zynq UltraScale MPSoC 的 bl31.elf 安装在工程根目录内的 images/linux 中。

PMU 固件

这仅用于 Zynq® UltraScale ™ MPSoC。这是可选项。默认情况下,顶层系统设置被设定为生成 PMU 固件。

  1. 启动顶层系统设置配置菜单并配置: $ petalinux-config a. 选择“Linux Components Selection” 。 b. 选择“PMU Firmware” 选项。 [*] PMU Firmware c. 退出菜单并保存更改。
  2. 构建工程时构建 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 闪存

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194981.html原文链接:https://javaforall.cn

0 人点赞