1. 程式人生 > >Ubuntu16.4學習之zedboard安裝交叉編譯環境和交叉編譯流程

Ubuntu16.4學習之zedboard安裝交叉編譯環境和交叉編譯流程

上一篇中按照《嵌入式系統軟硬體協同設計實戰指南》配置之後發現並不好用,這次按照《xilinx zynq soc與嵌入式linux設計實戰指南》進行配置

一、基本概念:

1、交叉編譯:在一個平臺上上生成另一個平臺上可以執行的程式碼。

2、通過交叉編譯工具可以在CPU能力很強、儲存空間足夠的主機平臺下(PC機)編譯出針對其他平臺的可執行程式碼。

3、主機平臺上安裝交叉編譯工具鏈,然後用他編譯原始碼,最終生成可在目標平臺上執行的程式碼。

二、安裝過程

2、 下載交叉編譯器原始碼:

3、(1)


   (2)複製xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin至zedboard資料夾下

  (3) chmod a+x xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin  增加可執行屬性

   (4) ./ xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin 安裝交叉編譯器

   出現


(如果之前沒有安裝32位的庫就會提示需要安裝32的庫。

apt-get install lib32ncurses5 ​

apt-get install lib32z1

zcu102交叉編譯鏈還需安裝這個庫sudo apt-get install lib32stdc++6))

(5)此後步驟要先切換到root模式

上個步驟提示安裝失敗,執行dpkg進行重配置

輸入sudo dpkg-reconfigure dash


彈出


按Tab鍵並選擇NO

(6)重新安裝


根據命令提示,按enter鍵


最後提示安裝完成

(7)修改環境變數

sudo gedit /etc/environment 


修改完之後儲存

(8)重啟ubuntu,之後進入root模式

輸入arm-xilinx-linux-gnueabi-gcc -v

最後顯示


顯示gcc的版本資訊,表明交叉編譯環境安裝成功

三、編譯系統核心

1.編譯U-BOOT: 作用生成u-boot.elf用於生成BOOT.bin檔案

(1)解壓u-boot原始碼壓縮 tar -zxvf u-boot-xlnx-xilinx-v2017.3.tar.gz

(2)針對zedboard開發板 

make CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_zed_config

 make CROSS_COMPILE=arm-xilinx-linux-gnueabi-


如果zcu102的話,

make CROSS_COMPILE=aarch64-linux-gnu- xilinx_zynqmp_zcu102_rev1_0_config

make CROSS_COMPILE=aarch64-linux-gnu-

需要安裝兩個庫sudo apt-get install  libssl-dev

apt-get install device-tree-compiler

2、編譯核心: 生成uImage映象檔案

核心下載地址:https://github.com/Xilinx/linux-xlnx/releases?after=zynq-soc-for-4.6

(1)解壓核心檔案:tar -xzvf linux-xlnx-xilinx-v2017.3.tar.gz

(2)進入解壓後的檔案

(3)編譯 

對核心進行配置和編譯

make CROSS_COMPILE=arm-xilinx-linux-gnueabi- ARCH=arm xilinx_zynq_defconfig

make CROSS_COMPILE=arm-xilinx-linux-gnueabi- ARCH=arm



由圖看到生成image和zimage映象檔案

解釋:ARCH=arm是指該體系架構時ARM架構,CROSS_COMPILE是指定交叉編譯器,xilinx_zynq_defconfig是預設廠家的配置檔案

以上過程很慢

Zcu102:

make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 xilinx_zynqmp_defconfig

make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64

3、製作啟動映象

mkimage -f zcu102.its image.ub   將編譯核心生成的Image和裝置樹檔案*.dtb,生成image.ub檔案

4、在sdk中,用fsbl檔案,bit檔案,u-boot.elf(點選Creat Boot Image按順序新增這三個檔案)生成BOOT.bin.

5、放入SD卡

為了zedboard上執行linux系統,需要啟動檔案BOOT.bin,linux核心映象(zImage)、裝置樹(device tree blob)和檔案系統。

BOOT.bit和image.ub檔案放入SDfat分割槽,根檔案系統放入ext4分割槽。

Eth: gcc serv.c -o serv  編譯eth上位機原始碼生成可執行檔案

cd  /run/media/mmcblk0p1

sudo tar -zxvf ROO1.tar.gz -C /media/andychen/ROOT1

route add default gw 10.12.13.2

route –n

ifconfig wlan0 up

iwlist wlan0 scanning | grep ESSID

iwconfig wlan0 essid "lijie"

ubuntu 123456

修改DNS :echo nameserver 192.168.43.1 > /etc/resolv.conf

Windows cmd下檢視交換機已用IP :arp –a