Petalinux 2018.2 for Xilinx
1、概述
? Petalinux是Xilinx公司推出的嵌入式Linux開發套件,包括了Linux Kernel、u-boot、device-tree、rootfs等源碼、庫,以及Yocto recipes,可以讓客戶很方便的生成、配置、編譯及自定義。Petalinux支持Zynq UltraScale+ MPSoC、Zynq-7000全可編程SoC,以及MicroBlaze,可與Xilinx硬件設計工具Vivado協同工作,大大簡化了Linux系統的開發工作。
? 使用PetaLinux工具,開發人員可以定制u-boot、Linux內核或Linux應用,開發者還可以通過網絡或JTAG在隨附的全系統仿真器 (QEMU) 或物理硬件上添加新的內核、器件驅動程序、應用和庫,以及啟動并測試軟件協議棧,完成從系統啟動到執行的所有操作。在主機端提供的PetaLinux工具包括:
- 命令行界面
- 應用、器件驅動程序、庫生成器以及開發模板
- 可引導的系統鏡像生成器
- 調試代理程序
- GCC工具集
- 集成的QEMU全系統仿真器
- 自動化工具
- 支持Xilinx系統調試器
2、安裝Petalinux
2.1 安裝需求
? Petalinux是個大型軟件,對電腦硬件配置要求比較高。Petalinux工具用戶文檔UG1144(v2018.2) Page 9對安裝環境做了個推薦:
- 8 GB RAM (recommended minimum for Xilinx tools)
- 2 GHz CPU clock or equivalent (minimum of 8 cores
- 100 GB free HDD space
- Supported OS:
- Red Hat Enterprise Workstation/Server 7.2, 7.3, 7.4 (64-bit)
- CentOS 7.2, 7.3, 7.4 (64-bit)
- Ubuntu Linux 16.04.3 (64-bit)
? 為安裝Petalinux,我們需要8GB的內存、2GB主頻的CPU、100GB的硬盤,還需要一個能正常運行的Linux系統。
? 接下來,我們將在Ubuntu 16.04.6 LTS (Xenial Xerus)桌面版本上進行Petalinux的安裝使用。其它版本系統,部分指令或者配置可能不兼容,請參考相關系統文檔。
2.2 安裝依賴庫
? Petalinux的運行依賴于一些庫,根據Petalinux工具用戶文檔UG1144(v2018.2) Page 9中Table 2-1:Packages and Linux Workstation Environments一表,整理了一下需要安裝的庫,做成了一個自動安裝腳本install_petalinux201802_lib.sh:
#!/bin/bash sudo apt -y install tofrodos iproute2 gawk sudo apt -y install gcc git make sudo apt -y install xvfb sudo apt -y install net-tools libncurses5-dev tftpd sudo apt -y install zlib1g-dev zlib1g-dev:i386 libssl-dev flex bison libselinux1 sudo apt -y install gnupg wget diffstat chrpath socat xterm sudo apt -y install autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev sudo apt -y install screen pax gzip tar? 建議安裝依賴庫之前先更新系統及其庫等,確保所有軟件在最新狀態。
2.3 安裝TFTP軟件
? TFTP軟件用于通過網絡在線更新系統、軟件等,我們在主板調試時將會用到。以下為TFTP的自動安裝腳本instll_tftp.sh:
#!/bin/bashconfigfile="/etc/default/tftpd-hpa" sudo apt install -y tftpd-hpa tftp-hpa sudo cp ${configfile} /etc/default/tftpd-hpa.bck sudo sed -i '/^TFTP_OPTION/d' ${configfile} sudo sed -i '$a TFTP_OPTION=\"--secure --create\"' ${configfile} sudo chown -R tftp /var/lib/tftpboot/ echo "export TFTP_DIRECTORY=\`cat /etc/default/tftpd-hpa | grep TFTP_DIRECTORY | cut -d \"\\\"\" -f 2\`" | sudo tee -a /etc/bash.bashrc >/dev/null sudo systemctl enable tftpd-hpa sudo systemctl restart tftpd-hpa2.4 安裝文件下載
? Petalinux可在Xilinx官網免費下載,但需先注冊賬號方可下載,安裝包大小為6.15G。
? 為了確保下載的安裝包下載完整,請對其md5進行校驗:
#/bin/bash echo "686edec30123bacf94102f2bc6ed70ff petalinux-v2018.2-final-installer.run" > petalinux-v2018.2-final-installer.md5 md5sum -c petalinux-v2018.2-final-installer.md5? 以上校驗,系統終端中,將輸出校驗ok信息:
petalinux-v2018.2-final-installer.run: OK2.5 安裝
? 根據Petalinux工具用戶文檔UG1144(v2018.2) Page 12中的要求:
Note: You cannot install the tool with the root user, instead the permissions for
/opt/pkg/petalinux should be 755. It is not mandatory to install tool in /opt/pkg/petalinux
directory. You can install at any desired location that has the 755 permissions.
? 我們需要使用非root用戶安裝Petalinux。建議安裝Petalinux到個人用戶目錄下,例如,安裝到~/bin/petalinux201802目錄下,我們使用終端進入petalinux-v2018.2-final-installer.run所在文件夾,執行以下命令:
mkdir -p ~/bin/petalinux201802 chmod +x petalinux-v2018.2-final-installer.run ./petalinux-v2018.2-final-installer.run ~/bin/petalinux201802? 安裝期間,將會有PetaLinux End User License Agreement (EULA)提示,需要按鍵盤q,然后按y進行協議許可確認。
2.6 環境配置
2.6.1 配置環境變量
? Petalinux安裝完成后,需對其啟動環境進行配置:
source ~/bin/petalinux201802/settings.sh? 但此指令只在當前終端生效,重開終端后,仍需要再次執行此指令。為避免此情況,在Ubuntu系統下,我們也可以將其寫入用戶配置信息中:
echo "source ~/bin/petalinux201802/settings.sh" >> ~/.bashrc? 注:1、在CentOS中,不可將其寫入用戶配置信息,否則可能會引起登陸用戶時系統異常;
? 2、此指令未在Red Hat中測試;
? Petalinux環境變量生效后,我們可以使用一下指令驗證Petalinux的安裝情況:
echo $PETALINUX? 系統將輸出Petalinux的安裝目錄,表示安裝成功:
/home/<user>/bin/petalinux201802? 其中,<user>為安裝petalinux的當前用戶名。
2.6.2 關閉webtalk功能
? 默認情況下,啟用webtalk選項可將工具使用情況統計信息發送回Xilinx,我們可以通過運行petalinux-util --webtalk命令來關閉webtalk功能:
petalinux-util --webtalk off? 系統將在終端輸出一下信息,代表webtalk功能關閉成功:
INFO: Turn off webtalk feature!2.6.3 修改默認shell為bash
? Ubuntu默認shell為dash,而在Petalinux工具用戶文檔UG1144(v2018.2) Page 14中,要求:
This section assumes that the following prerequisites have been satisfied:
- ...
- "/bin/sh" is bash
? 所以我們需要將我們需要將/bin/sh調整為bash,執行以下指令即可:
sudo rm /bin/sh sudo ln -s /bin/bash /bin/sh? 確認是否修改成功,我們可以執行以下指令:
ls -l /bin/sh? 系統將輸出包含以下字段的消息,確認shell已修改成功:
/bin/sh -> /bin/bash3、Petalinux使用
3.1 創建工程
? 根據Petalinux工具用戶文檔UG1144(v2018.2) Page 17中Chapter 3 Creating a Project,Petalinux創建工程有兩種方式,分別為:
-
基于現有BSP文件的工程創建
-
基于Vivado產生的硬件描述文件的工程創建
下邊,我們分別說明這兩種方式的具體指令:
3.1.1 基于現有BSP文件的工程創建
? 基于現有BSP文件的工程創建,需要先從Xilinx官網下載SoC相應的BSP包,或者從別處得到相應的BSP包。
? 當我們得到BSP包后,我們可以開始創建我們的工程。例如,我們在/home/user/project目錄下創建工程,可以使用以下指令:
cd ~/project petalinux-create -t project -n <PROJECT-NAME> -s <PATH-TO-BSP>? 其中,
- <PROJECT-NAME>為工程名稱,可省略;
- <PATH-TO-BSP>為BSP包所在目錄路徑;
3.1.2 基于Vivado產生的硬件描述文件的工程創建
? 基于Vivado產生的硬件描述文件的工程創建,需要先從Vivado導出相應硬件描述文件,具體操作為:
? 1、使用Vivado打開相應工程;
? 2、在選項欄中選擇File -> Export -> Export Hardware,勾選??Include bitstream選項,然后點擊OK即可;
? Vivado硬件描述文件將生成在Vivado工程的<VIVADO-PROJECT-NAME>.sdk目錄下,我們可以使用以下指令創建工程:
petalinux-create --t project --template <CPU-TYPE> -n <PROJECT-NAME>? 其中,
-
<CPU-TYPE>為CPU類型,具體值可為:zynqMP (for UltraScale+ MPSoC)、zynq (for Zynq)、microblaze (for MicroBlaze);
-
<PROJECT-NAME>為工程名稱;
工程創建成功后,我們需要根據Vivado硬件描述文件使用petalinux-config配置工程:
? 其中,<PATH-TO-HDF/DSA-DIRECTORY>為Vivado硬件描述文件所在目錄路徑;
? 根據Vivado硬件描述文件使用petalinux-config配置工程后,我們還需要配置SoC型號CONFIG_SUBSYSTEM_MACHINE_NAME:petalinux-config -> DTG Settings ---> (template) MACHINE_NAME,該值可為:
- ac701-full
- ac701-lite
- kc705-full
- kc705-lite
- kcu105
- zc1254-reva
- zc1275-reva
- zc1275-revb
- zc1751-dc1
- zc1751-dc2
- zc702
- zc706
- avnet-ultra96-rev1
- zcu100-reva
- zcu100-revb
- zcu100-revc
- zcu102-rev1.0
- zcu102-reva
- zcu102-revb
- zcu104-reva
- zcu104-revc
- zcu106-reva
- zcu111-reva
- zedboard
3.2 配置工程
? Petalinux工程創建完成后,我們需要根據具體情況對工程進行相關配置,具體指令為:
- 全局配置:petalinux-config
- 配置Kernel:petalinux-config -c kernel
- 配置rootfs:petalinux-config -c rootfs
3.3 編譯工程
? 配置完成后,我們可以對工程執行編譯工作,具體指令為:
petalinux-build? petalinux-build指令可包含參數,具體可參考文檔UG1157 PetaLinux Command Line Reference Page 12 Table 1-6: petalinux-build Command Line Options相關內容。
3.4 打包文件
? 編譯完成后,我們可以打包一些文件,例如啟動文件BOOT.bin、預建文件等用于測試的文件。
3.4.1 打包啟動文件BOOT.bin
? 啟動文件BOOT.bin,可燒錄到flash中,將在SoC從flash啟動時運行。根據不同的SoC,我們選擇不同的指令。
? for Zynq-7000:
petalinux-package --boot --fsbl <FSBL-image> --fpga <FPGA-bitstream> --u-boot? for MicroBlaze:
petalinux-package --boot --fpga <FPGA-bitstream> --u-boot --kernel? for Zynq UltraScale+ MPSoC:
petalinux-package --boot --format BIN --fsbl <FSBL-image> --u-boot <u-boot-image> --pmufw <pmufw-image> --fpga <FPGA-bitstream>3.4.2 打包預建文件
? 預建文件,用于Jtag或者QEMU測試時使用。打包預建文件,我們可以使用以下指令:
petalinux-package --prebuilt --fpga <FPGA-bitstream>3.5 調試
? 預建文件打包好后,我們可以通過petalinux-boot指令使用Jtag在線調試,或者從QEMU啟動進行調試。
3.5.1 啟動等級
? 對于petalinux-boot指令,有可選選項--prebuild <BOOT_LEVEL>參數,<BOOT_LEVEL>值可為1、2、3三種,其意義分別為:
- Level 1: Download the prebuilt FPGA bitstream.
It will also boot FSBL for Zynq-7000 and, FSBL and PMU firmware for Zynq UltraScale+ MPSoC.
- Level 2: Download the prebuilt FPGA bitstream and boot the prebuilt U-Boot.
For Zynq-7000: It will also boot FSBL before booting U-Boot.
For Zynq UltraScale+ MPSoC: It will also boot PMU firmware, FSBL, and ATF before booting U-Boot.
- Level 3:
For MicroBlaze: Downloads the prebuilt FPGA bitstream and boot the prebuilt kernel image on target.
For Zynq-7000: Downloads the prebuilt FPGA bitstream and FSBL and boot the prebuilt U-Boot and boot the prebuilt kernel on target.
For Zynq UltraScale+ MPSoC: Downloads PMU Firmware, prebuilt FSBL, prebuilt kernel, prebuilt FPGA bitstream, linux-boot.elf and the prebuilt ATF on target.
3.5.2 使用Jtag在線調試
? 連接好主板、調試器與電腦后,我們可以使用以下指令進行在線調試:
petalinux-boot --jtag --prebuild 33.5.3 使用QEMU調試
? QEMU是一套集成在Petalinux工具集中的模擬處理器,無需硬件環境即可模擬測試,但測試結果僅供參考,與實際環境可能不符。
? 我們可以使用以下指令進行QEMU調試:
petalinux-boot --qemu --prebuilt 33.6 定制系統
? 在Petalinux工程中,我們可以添加我們所需要的文件,例如庫、應用程序、自啟動程序、模塊或者自定義設備樹等,將其加入到我們的Petalinux系統當中。
3.6.1 添加庫
? 對于添加庫,我們需要先創建一個庫應用:
petalinux-create -t apps --template install --name <LIB-NAME> --enable? 該庫所在目錄路徑為:<plnx-proj-root>/project-spec/meta-user/recipes-apps/<LIB-NAME>。
? 我們可以將我們庫的源文件或者預編譯好的庫文件拷貝到該庫所在目錄路徑下的files目錄下,然后編輯該庫所在目錄路徑下的<LIB-NAME>.bb文件,將files目錄下需要的文件加入到SRC_URI字段中。如加入源文件lib.c、lib.h、Makefile文件:
# # This file is the libs recipe. #SUMMARY = "Simple libs application" SECTION = "PETALINUX/apps" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"S = "${WORKDIR}"TARGET_CC_ARCH += "${LDFLAGS}"SRC_URI = "file://lib.c \file://lib.h \file://Makefile \"do_compile() {oe_runmake }do_install() {install -d ${D}${libdir}install -m 0655 ${S}/<LIB-NAME>.so ${D}${libdir} }FILES_${PN} += "${libdir}" FILES_SOLIBSDEV = ""? 或者加入預編譯庫文件<LIB-NAME>.so:
# # This file is the libs recipe. #SUMMARY = "Simple libs application" SECTION = "PETALINUX/apps" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"S = "${WORKDIR}"TARGET_CC_ARCH += "${LDFLAGS}"SRC_URI = "file://<LIB-NAME>.so \"do_install() {install -d ${D}${libdir}install -m 0655 ${S}/<LIB-NAME>.so ${D}${libdir} }FILES_${PN} += "${libdir}" FILES_SOLIBSDEV = ""3.6.2 添加應用程序
? 對于添加應用程序,我們需要先創建一個應用程序:
petalinux-create -t apps --template install --name <APPS-NAME> --enable? 該應用程序所在目錄路徑為:<plnx-proj-root>/project-spec/meta-user/recipes-apps/<APPS-NAME>。
? 我們可以將我們應用程序的源文件或者預編譯好的應用程序文件拷貝到該庫所在目錄路徑下的files目錄下,然后編輯該應用程序所在目錄路徑下的<APPS-NAME>.bb文件,將files目錄下需要的文件加入到SRC_URI字段中。如加入源文件apps.c、apps.h、Makefile文件:
# # This file is the apps recipe. #SUMMARY = "Simple apps application" SECTION = "PETALINUX/apps" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"S = "${WORKDIR}"SRC_URI = "file://apps.c \file://apps.h \file://Makefile \"do_compile() {oe_runmake }do_install() {install -d ${D}${bindir}install -m 0755 ${S}/<APPS-NAME> ${D}${bindir} }? 或者加入預編譯應用程序文件<APPS-NAME>:
# # This file is the arp recipe. #SUMMARY = "Simple apps application" SECTION = "PETALINUX/apps" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"SRC_URI = "file://<APPS-NAME> \"S = "${WORKDIR}" INSANE_SKIP_${PN} = "ldflags" INHIBIT_PACKAGE_DEBUG_SPLIT = "1" INHIBIT_PACKAGE_STRIP = "1"do_install() {install -d ${D}/${bindir}install -m 0755 ${S}/<APPS-NAME> ${D}/${bindir} }3.6.3 添加自啟動腳本
? 對于添加自啟動腳本,我們需要先創建一個腳本程序:
petalinux-create -t apps --template install --name <SCRIPT-NAME> --enable? 該腳本所在目錄路徑為:<plnx-proj-root>/project-spec/meta-user/recipes-apps/<SCRIPT-NAME>。
? 我們在該腳本所在目錄路徑下的files目錄下,增加腳本文件,如autorun-script:
#!/bin/shDAEMON=/usr/bin/autorun-scriptstart () {echo " Starting autorun-script"start-stop-daemon -S -o --background -x $DAEMON }stop () {echo " Stoping autorun-script"start-stop-daemon -K -x $DAEMON }restart() {stopstart }[ -e $DAEMON ] || exit 1case "$1" instart)start; ;;stop)stop; ;;restart)restart; ;;*)exit 1echo "Usage: $0 {start|stop|restart}"esac exit $?? 編輯該腳本所在目錄路徑下的<SCRIPT-NAME>.bb文件,將files目錄下需要的文件加入到SRC_URI字段中:
# # This file is the script recipe. #SUMMARY = "Simple script application" SECTION = "PETALINUX/apps" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"SRC_URI = "file://autorun-script \"S = "${WORKDIR}"FILESEXTRAPATHS_prepend := "${THISDIR}/files:"inherit update-rc.dINITSCRIPT_NAME = "autorun-script" INITSCRIPT_PARAMS = "start 99 S ."do_install() {install -d ${D}/${sysconfdir}/init.dinstall -m 0755 ${S}/autorun-script ${D}/${sysconfdir}/init.d/autorun-script }FILES_${PN} += "${sysconfdir}/*"3.6.4 添加模塊
? 對于添加模塊,我們需要先創建一個模塊應用:
petalinux-create -t apps --template install --name <MODULE-NAME> --enable? 該庫所在目錄路徑為:<plnx-proj-root>/project-spec/meta-user/recipes-apps/<MODULE-NAME>。
? 我們可以將我們模塊的源文件或者預編譯好的庫文件拷貝到該模塊所在目錄路徑下的files目錄下,然后編輯該模塊所在目錄路徑下的<MODULE-NAME>.bb文件,將files目錄下需要的文件加入到SRC_URI字段中。如加入源文件module.c、module.h、Makefile文件:
# # This file is the module recipe. #SUMMARY = "Simple shivamod application" SECTION = "PETALINUX/apps" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"S = "${WORKDIR}"SRC_URI = "file://module.c \file://module.h \file://Makefile \"do_compile() {oe_runmake }do_install() {install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extrainstall -m 0755 ${S}/<MODULE-NAME>.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra }FILES_${PN} = "${base_libdir}/modules/"? 或者加入預編譯模塊<MODULE-NAME>.ko:
# # This file is the module recipe. #SUMMARY = "Simple shivamod application" SECTION = "PETALINUX/apps" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"SRC_URI = "file://<MODULE-NAME>.ko \"inherit module-baseS = "${WORKDIR}"do_install() {install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extrainstall -m 0755 ${S}/<MODULE-NAME>.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra }FILES_${PN} = "${base_libdir}/modules/"3.6.5 自定義設備樹
? 在Petalinux默認設備樹文件的基礎上自定義設備樹,需要在<plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/目錄下進行自定義。該路徑下所有的自定義設備樹相關字段,將插入或者覆蓋原有默認設備樹中的相關字段。
? 以下內容為在Zynq添加Microchip的KSZ9897R網卡芯片設備樹信息為例,進行示范:
? 1、硬件連接:
- 通過Zynq的I2C1控制KSZ9897R的I2C接口;
- 通過Zynq的gem1與KSZ9897R的Port7相連;
? 2、在<plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files目錄下,添加KSZ9897R的相關設備樹信息文件ksz9897r-conf-i2c.dtsi, 以下為其具體內容:
/ {amba: amba {gem1: ethernet@e000c000 {fixed-link {speed = <1000>;full-duplex;};};i2c1: i2c@e0005000 {clock-frequency = <38000>;ksz9897r: ksz9897r@0 {reg = <0x5f>;};};}; };? 3、修改<plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files目錄下的system-user.dtsi文件,添加ksz9897r-conf-i2c.dtsi相關字段:
/include/ "system-conf.dtsi" /include/ "ksz9897r-conf-i2c.dtsi" / { };? 4、修改<plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/目錄下的device-tree.bbappend文件,添加ksz9897r-conf-i2c.dtsi相關字段:
SRC_URI += "file://system-user.dtsi \file://ksz9897r-conf-i2c.dtsi \"4、Petalinux系統優化
4.1 u-boot讀取kernel的速度優化
? 系統啟動時,u-boot從QSPI flash讀取kernel文件的速度是默認的。根據所用的QSPI flash,我們可以調整其讀取速度。
? 在<plnx-proj-root>/project-spec/meta-plnx-generated/recipes-bsp/u-boot/configs/platform-auto.h中,在cp_kernel2ram中添加讀取速度:
cp_kernel2ram=sf probe 0 <SPEED_HZ> & ...? 其中,<SPEED_HZ>值為Hz計算,宜根據QSPI flash相關參數選擇合適的數值,過小讀取速度太慢,過大則會造成讀取的數據出錯;
? 但是以上優化可能會在執行petalinux-config后被修改。如果是我們使用的QSPI flash均為同款flash,我們可以修改Petalinux安裝目錄下的u-boot_bsp.tcl文件(文件路徑文件路徑<petalinux-path>/etc/hsm/scripts/libs/)第483行左右:
..."kernel" {append data "\n" { "cp_kernel2ram=sf probe 0 <SPEED_HZ> && sf read ${netstart} ${kernelstart} ${kernelsize}\0" \ } }...? 我們將此讀取速度配置作為我們以后Petalinux工程的默認配置。當在項目中執行petalinux-config時,此配置將會對項目中原有的platform-auto.h文件進行修改。
4.2 關閉ssh-dropbear功能
? dropbear是一個相對較小的SSH服務器和客戶端,在一般情況下,我們無需用到此功能,則可關閉此功能。
? 我們進入rootfs配置環境中,先將package group-core-ssh-dropbear功能關閉:petalinux-config -c rootfs —> Filesystem Packages —> misc —> packagegroup-core-ssh-dropbear,去除packagegproup-core-ssh-dropbear的勾選,然后在<plnx-proj-root>/project-spec/meta-user/conf/petalinuxbsp.conf文件最后增加一行即可:
PACKAGE_EXCLUDE += " packagegroup-core-ssh-dropbear"?
總結
以上是生活随笔為你收集整理的Petalinux 2018.2 for Xilinx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招商young金卡还是普卡
- 下一篇: 用公积金贷款后还能提取公积金吗