作者:xiabodan 出處:http://blog.csdn.net/xiabodan/article/details/23379645
本文通過五部完成zedboard的嵌入式LINUX搭建,所謂磨刀不五砍材工嘛
1:系統環境搭建
要準備好交叉編譯環境 見http://blog.csdn.net/xiabodan/article/details/22717175
2:編譯u-boot
然後要準備好u-boot 可以首先 apt-get install git ,然後可以在xilinx git中下載相關的u-boot原碼,git clone git://git.xiinx.com/u-boot-xarm.git
解壓原碼:如果是zip文件的,unzip u-boot-xarm
配置u-boot make zynq_zed_config 有可能會權限不夠,需要chmod
編譯u-boot 在編譯之前我們要首先設置一下交叉編譯器的軟鏈接,避免出現誤用gcc
ln -s arm-xilinx-linux-gnueabi-gcc arm-linux-gcc
ln -s arm-xilinx-linux-gnueabi-ar arm-linux-ar
ln -s arm-xilinx-linux-gnueabi-gcc arm-linux-gcc
ln -s arm-xilinx-linux-gnueabi-objcopy arm-linux-objcopy
ln -s arm-xilinx-linux-gnueabi-objdump arm-linux-objdump
make
在u-boot-xarm目錄下可以看到生辰的新文件u-boot(.elf),u-boot.bin,u-boot(.elf)會在xilinx SDK裏面用到,強調一下這裏的u-boot.bin不能直接用於xilinx的zynq,而用到的是u-boot(.elf)必須經過SDK和system.bit還有fsbl文件一起生辰zynq的第一階段啓動文件BOOT.BIN。此時我們的u-boot.elf算是編譯完成。先留在這裏後面在用。
3:編譯內核以及設備樹
首先我們要準備的當然是內核原碼了:git clone http://github.com/Digilent/linux-3.3.digilent.git
得到內核以後 配置內核 make ARCH=arm digilent_zed_defconfig
make ARCH = arm
編譯成功以後會在./arch/arm/boot/目錄下找到zImage文件了,當然還要編譯設備樹進入./arch/arm/boot/dts/目錄下可以看到zynq-zed-adv7511dts文件,爲什麼是adv7511文件,我們會在將FPGA的時候說,這與xilinx硬件有關。然後我們在內核跟目錄下
make zynq-zed-adv7511.dtb
可以看到
DTC arch/arm/boot/zynq-zed-adv7511.dtb
DTC: dts->dtb on file "arch/arm/boot/dts/zynq-zed-adv7511.dts"
這兩句話輸出然後在執行 make
這時會在./arch/arm/boot/目錄下生成zynq-zed-adv7511.dtb文件
至此我們生辰了u-boot.elf zImage .dtb
4:下面需要製作根文件系統
今天就不整了 麻煩死了 有時間載來 現在就用linaro的這麼好 不用白不用。
5:XILINX SDK生成BOOT.BIN
將我們第2布中生成的boot.elf文件拷貝出來。打開XILINX FPGA官方提供的硬件工程cf_adv7511_zed 這個工程可以在analog官網上下載
可以從圖中看到zynq_fsbl_0.eld文件是xilinx用於zynq的第一階段啓動文件。這個文件比u-boot還要先運行,具體過程看http://blog.csdn.net/xiabodan/article/details/23093111
而system.bit當然是我們的FPGA的下載流文件了,這個文件一般用於FPGA端配置,具體不多說了,有時間在詳細的寫出來。
至於這個u-boot.elf當然就是我們在第2階段生成的uboot了
通過這三個文件生成的BOOT.BIN纔是我們的啓動文件。
最後將之前的三個文件 zImage .zynq-zed-adv7511.dtb BOOT.BIN(其中zynq-zed-adv7511.dtb要重命名爲devicetree.dtb)拷貝入SD卡FAT32中,同時將linaro文件系統拷貝到SD卡的EXT4分區,當然之前必須進行SD卡的分區爲兩個分區(FAT32與EXT4 ),分區工具可以用GParted。
上電!奇蹟出現了吧!
等着你的將是linux的開發了,不過由於小編不是專業的LINUX選手,還要去做FPGA的配置!苦逼的FPGA農民工。寫本文的木的純屬記個筆記,以後不忘,因爲不知道這輩子會不會做INUX開發哦,天知道呢!
參考數目:digilent官方資料www.digilent.org
嵌入式系統軟硬件協同設計實戰指南基於Xilinx zynq . 陸佳華
xilinx all programmable Zynq-7000 soc 何賓
懶兔子博客 http://www.eefocus.com/nightseas/blog/cate_12977_0.html
肖志遠博客:http://blog.csdn.net/column/details/zynq.html