Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序
目錄
官方說明連接:https://china.xilinx.com/support/answers/66636.html
描述
解決方案
官方說明連接:https://china.xilinx.com/support/answers/66636.html
描述
我在Linux上運行Zynq UltraScale + MPSoC,我需要訪問32位應(yīng)用程序。是否可以在此平臺上運行multiarch Linux?
解決方案
以下過程描述了如何在ZCU102評估平臺上引導(dǎo)64位Ubuntu Core根文件系統(tǒng)。
以下詳細(xì)步驟分為三個基本階段:
?
由此產(chǎn)生的系統(tǒng)可以作為開發(fā)更強(qiáng)大的基于Ubuntu的系統(tǒng)的起點,該系統(tǒng)適合于給定系統(tǒng)的特定需求。
在繼續(xù)之前,請確保應(yīng)用“鏈接的項目”部分中列出的修補(bǔ)程序。
XILINX建立步驟?
本節(jié)中的步驟是標(biāo)準(zhǔn)的PetaLinux構(gòu)建步驟。有關(guān)此處引用的命令的更多詳細(xì)信息,請參閱(UG1144)。
創(chuàng)建面向Zynq UltraScale + MPSoC的Vivado 2015.4項目,確保項目語言設(shè)置為Verilog。ZCU102評估平臺基于XCZU9EG-FFVB1156-2I器件。
使用附加的Tcl文件為此平臺生成Vivado IP Integrator框圖。
創(chuàng)建程序框圖后,為其生成HDL包裝程序并通過實施設(shè)計階段運行項目。
實施后,將HDF文件導(dǎo)出到磁盤上的已知位置。通常,最簡單的方法是將HDF導(dǎo)出到與Vivado項目相同的目錄中。
使用zynqMP模板獲取PetaLinux設(shè)計工具并創(chuàng)建PetaLinux項目:
$ petalinux-create -t?? project --template zynqMP -n <your_project_name>創(chuàng)建PetaLinux項目后,使用Vivado生成的HDF文件對其進(jìn)行初始化:
$ petalinux-config --get-hw-description = <path_to_HDF>項目初始化后,PetaLinux將自動啟動系統(tǒng)級menuconfig界面。現(xiàn)在,只需退出界面并返回終端提示即可。
使用petalinux-build命令構(gòu)建Linux項目。這將構(gòu)建一個使用INITRAMFS根文件系統(tǒng)的Linux映像。
$ petalinux-build構(gòu)建完成后,Linux映像附件將位于<PETALINUX_PROJECT_ROOL / images / linux中。
使用petalinux-package命令創(chuàng)建標(biāo)準(zhǔn)Zynq UltraScale + MPSoC啟動映像(稱為boot.bin):
$ petalinux-package --boot --format BIN --u-boot -o BOOT.BIN將boot.bin文件復(fù)制到其他位置以便安全保存。
將image.ub文件重命名為initramfs.ub并將其復(fù)制到其他位置以便安全保存。
使用petalinux-config命令返回PetaLinux系統(tǒng)級menuconfig:
$ petalinux-config配置項目,以便從ext3 SD卡分區(qū)/ dev / mmcblk0p2引導(dǎo)平臺。?
此選項位于<菜單頂部> - >圖像打包配置 - >根文件系統(tǒng)類型。確保“SD設(shè)備的設(shè)備節(jié)點”選項反映/ dev / mmcblk0p2分區(qū)。
?
?
?
?
退出配置菜單并使用petalinux-build命令重建PetaLinux項目:
$ petalinux-build構(gòu)建完成后,Linux映像附件將位于<PETALINUX_PROJECT_ROOL / images / linux中。
將image.ub文件重命名為sdcard.ub并將其復(fù)制到其他位置以便安全保存。
使用標(biāo)準(zhǔn)分區(qū)工具(如gparted或fdisk),對SD卡進(jìn)行分區(qū),使其具有一個大小為128MB的FAT32分區(qū)和一個大小為4GB或更大的ext3分區(qū)。
如果操作系統(tǒng)未自動完成此操作,請裝入剛剛創(chuàng)建的分區(qū)。
將先前創(chuàng)建的boot.bin和.ub文件復(fù)制到SD卡的FAT32分區(qū)。
?
UBUNTU核心配置步驟
從http://cdimage.ubuntu.com/ubuntu-core/releases/14.04/release/ubuntu-core-14.04.3-core-arm64.tar.gz下載64位ARM版Ubuntu Core 14.04的副本
將下載的tarball復(fù)制到SD卡的ext3分區(qū),并使用標(biāo)準(zhǔn)Linux tar命令將其解壓縮。以root身份(或使用sudo提升)運行此命令非常重要,這樣可以創(chuàng)建根文件系統(tǒng)的某些部分。
$ sudo tar xvfz ubuntu-core-14.04.3-core-arm64.tar.gz解壓縮后,將附加的ttyPS0.conf和ttyPS1.conf文件復(fù)制到/ etc / init目錄。這將確保在引導(dǎo)后顯示登錄提示。
為了正確啟動,Ubuntu要求文件系統(tǒng)中至少存在一個非root用戶。要執(zhí)行此操作,請使用先前創(chuàng)建的initramfs.ub內(nèi)核映像進(jìn)行引導(dǎo)。
在SD卡的FAT32分區(qū)上,將initramfs.ub映像文件復(fù)制(或重命名)為image.ub。
卸載FAT32分區(qū)和ext3分區(qū),然后從主機(jī)彈出SD卡。
將SD卡插入ZCU102板的SD卡插槽,并將其配置為從SD卡啟動。
使用TeraTerm或PuTTY等工具打開終端窗口。終端輸出將顯示在UART接口0上。具體的COM端口因計算機(jī)而異。
?
打開電路板并等待系統(tǒng)引導(dǎo)至Linux登錄提示。默認(rèn)用戶名和密碼組合為root / root。
?
登錄后,將目錄更改為Linux文件系統(tǒng)的根目錄:
#cd /創(chuàng)建可用于chroot命令的臨時工作目錄:
#mkdir / chroot_mnt將ext3分區(qū)掛載到chroot掛載點:
#mount / dev / mmcblk0p2 / chroot_mnt使用chroot命令切換到Ubuntu根文件系統(tǒng):
#chroot / chroot_mnt進(jìn)入chroot環(huán)境后,使用adduser命令為Ubuntu Core環(huán)境添加新用戶:
#adduser ubuntu #addgroup ubuntu adm #addgroup ubuntu sudo為了使網(wǎng)絡(luò)自動工作,請在/etc/network/interfaces.d/中創(chuàng)建網(wǎng)絡(luò)配置腳本
此答復(fù)記錄附有名為eth0的示例腳本。
使用exit命令退出chroot環(huán)境。
從掛載點卸載ext3分區(qū):
#umount / chroot_mnt關(guān)閉ZCU102單板電源,將SD卡從單板上拔出。
將SD卡重新插入主機(jī)。
從主計算機(jī),導(dǎo)航到SD卡的FAT32分區(qū)。
將sdcard.ub映像文件復(fù)制(或重命名)為image.ub
從主計算機(jī)中彈出SD卡,然后將其重新插入ZCU102。再次打開電路板并監(jiān)控終端輸出。
?
設(shè)置32位存儲庫
?
在此引導(dǎo)期間,Zynq UltraScale + MPSoC器件將引導(dǎo)到位于SD卡的ext3分區(qū)上的根文件系統(tǒng),而不是INITRAMFS。
出現(xiàn)登錄提示時,請使用上面為“ubuntu”用戶創(chuàng)建的憑據(jù)。
登錄系統(tǒng)后。使用以下命令添加32位CPU目標(biāo):
sudo dpkg --add-architecture armhf使用以下命令更新包列表:
sudo apt-get -y update您應(yīng)該看到armhf版本現(xiàn)在可用。armhf封裝是32位封裝,而arm64封裝是64位封裝。
現(xiàn)在可以使用終端提示符中的標(biāo)準(zhǔn)apt-get方法安裝32位應(yīng)用程序。
總結(jié)
以上是生活随笔為你收集整理的Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UBOOT手动设置环境变量
- 下一篇: linux 其他常用命令