petalinuxeth0設置
『壹』 zynqmp 怎麼將linux系統下載到emmc
1,vivado硬體配置,要選擇EMMC代表的SD1;
2,編譯petalinux:執行petalinux-config。
(1)選擇Subsystem AUTO Hardware Setting
-> Advanced bootable images storage settings
->boot image settings;
選擇primary flash,這里是將BOOT.bin設置為從qspi flash啟動
(2)選擇Subsystem AUTO Hardware Setting
-> Advanced bootable images storage settings
->kernel image settings;
選擇primary sd,進入後我們看到這里實際就是設置image.ub的存放區域。
(3)選擇Image Packaging Configuration,設置啟動啟動文件系統所在位置;
在設置啟動方式的時候,如下兩張圖這樣設置讀取根文件系統的位置/dev/mmcblk1p2。
(4)設置你的驅動然後編譯,依次執行:petalinux-config -c kernel;petalinux-config -c rootfs;
petalinux-build;petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga --u-boot --force;
3,做之前先分區(把EMMC分區),先做一個SD卡啟動的petalinux文件,
petalinux系統在zynq上面啟動起來以後就進行如下分區:即是mmcblk1分為mmcblk1p1和mmcblk1p2
具體步驟如下:
(1) 把EMMC進行分區,執行命令: fdisk /dev/mmcblk1
(2)使用n命令,添加一個新的分區
Command (m for help): n
Command action
e extended
p primary partition (1-4)
選擇p,添加主分區
,(3)選擇分區號,選擇1,
Partition number (1-4): 1 // 選擇分區號
First cylinder (1-238592, default 1): Using default value 1 // 選擇分區的第一個柱面,選擇1
Last cylinder or +size or +sizeM or +sizeK (1-238592, default 238592): Using default value 238592 // 選擇最後一個柱面
注意:1-238592,first要選第一個數,last要選擇的比238592小,其中1024就是表示1M
(4)使用t命令,設置分區格式
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): b
Changed system type of partition 1 to b (Win95 FAT32)
(5)使用w命令,保存配置,必須保存配置
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table
(6)使用對應文件系統工具對分析進行格式化(只能在debian裡面才能識別命令)
mkfs.fat /dev/mmcblk1p1 設置為fat32格式
mkfs.ext4 /dev/mmcblk1p2設置為ext4格式
注意:執行完w命令然後才算分區成功,執行完mkfs命令才算格設置內存屬性成功。
以上分區完成後,可以使用p命令,顯示分區信息;也可以使用用d命令表示刪除分區
Command (m for help): p
Disk /dev/mmcblk0: 7818 MB, 7818182656 bytes
4 heads, 16 sectors/track, 238592 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 238592 7634936 83 Linux
(7)執行這句:mkdosfs -F 32 /dev/mmcblk0p1
當然,可以重復上述步驟,多分幾個區,用來存放不同的狀態:
FLASH要要用來存放BOOT.bin
第一個分區用來存放image.ub或者設備樹(比如uImage和devicetree.dtb)等文件;--可以設置為128MB
第二個分區用來存放用戶數據(比如可執行程序);可以設置為2048MB
第三個分區用來存放程序執行需要的庫文件(opencv的庫,qtcreator庫,相機庫,視頻編碼解碼庫等);剩餘的1個多GB
4,把系統同步到ext4裡面
先把sd卡裡面系統掛載進來 :mount /dev/mmcblk0p2 /mnt
再把剛剛弄好的系統掛進來: mount /dev/mmcblk1p2 /tmp , 然後cd /mnt
然後進入把SD卡裡面的系統同步到emmc裡面:rsync -av ./* /tmp ,時間有點久,直到結束為止。
(要是不用SD卡也可以掛載U盤,解壓,然後進行系統同步到EMMC所掛載的地方/tmp)
5,然後將BOOT.BIN和image.ub燒錄到QSPI-FLASH中
首先擦除QSPI-FLASH:flash_eraseall /dev/mtd0
存放BOOT.bin到flash : flashcp BOOT.bin /dev/mtd0
此處若是將image.ub寫入emmc的FAT分區中(不存放到flash中),先使用mount掛載eMMC的FAT分區,
然後將image.ub使用cp指令拷貝進 /mnt/mmcFat即可,也就是把uImage 拷貝到 /dev/mmcblk1p1;
進入uImage所在目錄,然後執行 cp uImage /tmp;也就是把uImage存放到了 /dev/mmcblk1p1裡面。
6,最後斷電拔出SD卡,將撥碼開關設置為flash啟動,就能看到petalinux啟動起來;
7,報錯及其解決辦法
————————————————
版權聲明:本文為CSDN博主「寒聽雪落」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wangjie36/article/details/104740448/
『貳』 如何將PetaLinux移植到Xilinx FPGA上
第一步,我們下載了PetaLinux軟體包12.12版以及用於Kintex-7目標板的電路板支持包(BSP)。然後運行了PetaLinux SDK安裝程序,並在控制台上使用下列命令把SDK安裝到了/opt/Petalinux-v12.12-final目錄下:
@ cd /opt
@ cd /opt/PetaLinux -v12.12-final-full.tar.gz
@ tar zxf PetaLinux-v12.12-final-full.tar.gz
隨後,我們把從賽靈思網站獲得的PetaLinux SDK許可證復制並拷貝到.xilinx和.Petalogix文件夾中。接下來,我們使用下列命令獲取適當設置,設置了SDK的工作環境:
@ cd /opt/PetaLinux-v12.12-final
@ source settings.sh
為驗證工作環境是否設置正確,我們使用了以下命令:
@ echo $PETALINUX
如果環境設置正確,將顯示PetaLinux的安裝路徑。在本案例中,PetaLinux的安裝路徑是 /opt/PetaLinux-v12.12-final。
『叄』 petalinux 啟動時間
PetaLinux
工具提供在
Xilinx
處理系統上定製、構建和調配嵌入式
Linux
解決方案所需的所有組件,設置Master
Serial啟動
,第一數字即是系統已啟動的時間。
『肆』 如何將PetaLinux移植到Xilinx FPGA上
用戶可輕松將這款高穩健操作系統安裝到目標FPGA平台上,以供嵌入式設計項目使用。
從最初不起眼的膠合邏輯開始,FPGA已經歷了漫長的發展道路。當前FPGA的邏輯容量和靈活性已將其帶入了嵌入式設計的中心位置。目前,在單個可編程晶元上可實現一個完整系統,這種架構有助於軟硬體的協同設計,並能將軟硬體應用進行集成。
這些基於FPGA的嵌入式設計種類需要穩健的操作系統。PetaLinux應運而生,已成為眾多嵌入式設計人員青睞的對象。它以開源的方式提供,支持包括賽靈思MicroBlaze®
CPU和ARM®處理器在內的多種處理器架構。要將PetaLinux移植到特定的FPGA上,必須針對目標平台定製、配置和構建內核源代碼、引導載入程序、器件樹和根文件系統。
對於PES大學和C-DOT的一個設計項目而言,我們的研發團隊准備移植PetaLinux並在採用Kintex®-7 XC7K325T FPGA的賽靈思KC705評估板上運行多個PetaLinux用戶應用。結果證明整個過程相當便捷。
選擇PetaLinux的原因
在詳細介紹具體做法之前,有必要花點時間來探討針對基於FPGA的嵌入式系統提供的操作系統選項。PetaLinux是FPGA上最常用的操作系統,另外還有μClinux
和Xilkernel。μClinux為Linux發行版,是一款包含小型Linux內核的移植型Linux操作系統,適用於無存儲器管理單元(MMU)的處理器[1]。μClinux配備有各種庫、應用和工具鏈。Xilkernel就其本身而言,是一款小型、高穩健性、模塊化內核,能夠提供高於μClinux
的定製性能,有助於用戶通過定製內核來優化其設計尺寸與功能[2]。
同時,PetaLinux也是一款完整的Linux發行版及開發環境,適用於基於FPGA的片上系統(SoC)設計。PetaLinux包含預配置二進制可引導映像、面向賽靈思器件的完全可定製Linux
以及配套提供的PetaLinux軟體開發套件(SDK)[3]。其中SDK包括用於自動完成配置、構建和部署過程中各種復雜工作的工具和實用程序。賽靈思提供可下載的PetaLinux開發包,其中包括針對各種賽靈思FGPA開發套件而設計的硬體參考項目。同時包含在內的還有適用於賽靈思FPGA的內核配置實用程序、交叉編譯器等軟體工具、硬體設計創建工具以及大量其它設計輔助功能。
據報道,Xilkernel 的性能優於μClinux[4],而PetaLinux的性能又優於Xilkernel
[5]。由於這個原因,特別是由於已針對我們賽靈思目標板提供的軟體包原因,我們為我們的項目選擇了PetaLinux。移植PetaLinux的另一大優勢是用戶可以輕松實現遠程編程。這就意味著用戶可使用遠程接入方式,通過遠程登錄,採用新的配置文件(或比特流文件)載入FPGA目標板。
有兩種方法可以創建用於構建PetaLinux系統的軟體平台:在Linux終端上使用PetaLinux命令或通過下拉菜單使用GUI。
開始安裝
下面詳細介紹我們項目團隊安裝PetaLinux的方法。第一步,我們下載了PetaLinux軟體包12.12版以及用於Kintex-7目標板的電路板支持包(BSP)。然後運行了PetaLinux
SDK安裝程序,並在控制台上使用下列命令把SDK安裝到了/opt/Petalinux-v12.12-final目錄下:
@ cd /opt
@ cd /opt/PetaLinux -v12.12-final-full.tar.gz
@ tar zxf PetaLinux-v12.12-final-full.tar.gz
隨後,我們把從賽靈思網站獲得的PetaLinux SDK許可證復制並拷貝到.xilinx和.Petalogix文件夾中。接下來,我們使用下列命令獲取適當設置,設置了SDK的工作環境:
@ cd /opt/PetaLinux-v12.12-final
@ source settings.sh
為驗證工作環境是否設置正確,我們使用了以下命令:
@ echo $PETALINUX
如果環境設置正確,將顯示PetaLinux的安裝路徑。在本案例中,PetaLinux的安裝路徑是 /opt/PetaLinux-v12.12-final。