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檔案放入SD卡fat分割槽,根檔案系統放入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