上一篇中按照《嵌入式系统软硬件协同设计实战指南》配置之后发现并不好用,这次按照《xilinx zynq soc与嵌入式linux设计实战指南》进行配置一、基本概念:1、交叉编译:在一个平台上上生成另一个平台上可以执行的代码。2、通过交叉编译工具可以在CPU能力很强、存储空间足够的主机平台下(PC机)编译出针对其他平台的可执行代码。3、主机平台上安装交叉编译工具链,然后用他编译源代码,最终生成可在目标平台上运行的代码。二、安装过程1、 下载u-boot源码
:https://github.com/Xilinx/u-boot-xlnx/releases2、
下载交叉编译器源码:https://pan.baidu.com/share/link?shareid=2118817891&uk=2047711911&fid=1318083080227163
、(1)![](data/attach/1907/ota9z15riy8w8dgavpeqz8ndzx1bitz9.jpg)
(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 安装交叉编译器 出现
![](data/attach/1907/1ymqorz61aoed500krsltzl4y6j6ulkl.jpg)
(如果之前没有安装32位的库就会提示
需要安装32
位的库。apt-get install lib32ncurses5 apt-get install lib32z1zcu102交叉
编译链还需
安装这个库(
sudo apt-get install lib32stdc++6))(5)此后步骤要先切换到root模式上个步骤提示安装失败,执行dpkg进行重配置输入sudo dpkg-reconfigure dash
![](data/attach/1907/eu0pjbwe1qi3idory5rpzm3rhtt2gaf6.jpg)
弹出
![](data/attach/1907/wsznewfebkgi4ii5kh9h3iyit4wj6gjg.jpg)
按Tab键并
选择NO(6)重新安装
![](data/attach/1907/2xz271xmlryie12g9fuy623amnql7wty.jpg)
根据命令提示,按enter键
![](data/attach/1907/e8q95cdzaacmlrgy7a25ich6wcsg8iyp.jpg)
最后提示安装完成(7)修改
环境变量sudo gedit /etc/environment
![](data/attach/1907/jn0pg0ksbkomszrjf3z0wqebnilp6s6y.jpg)
修改完之后保存(8)重启ubuntu,之后进入root模式输入arm-xilinx-linux-gnueabi-gcc -v最后显示
![](data/attach/1907/ofvfen7yqdmokyiklwt6sqmih2ejnqop.jpg)
显示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-![](data/attach/1907/nmewnb1ikhv7r3emttrbpfv9wmu0q10w.jpg)
如果是zcu102的话,则:make CROSS_COMPILE=aarch64-linux-gnu- xilinx_zynqmp_zcu102_rev1_0_config
make CROSS_COMPILE=aarch64-linux-gnu-
需要安装两个库
sudo apt-get install libssl-devapt-get install device-tree-compiler2
、编译内核: 生成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_defconfigmake CROSS_COMPILE=arm-xilinx-linux-gnueabi- ARCH=arm
![](data/attach/1907/fcybmirsw4ny6v3m3istx3u3zis02w4h.jpg)
![](data/attach/1907/faafnyhbpsncqc0u1ri0r1awu183n8ls.jpg)
由图看到生成image和zimage镜像文件
解释:ARCH=arm是指该体系架构时ARM架构,CROSS_COMPILE是指定交叉编译器,xilinx_zynq_defconfig是默认厂家的配置文件以上过程很慢Zcu102:make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 xilinx_zynqmp_defconfigmake 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分区。
http://www.wiki.xilinx.com/Zynq+UltraScale%EF%BC%8B+MPSoC+Ubuntu+part+2+-+Building+and+Running+the+Ubuntu+Desktop+From+Sources Eth: gcc serv.c -o serv
编译eth
上位机源码
生成可执行文件cd /run/media/mmcblk0p1 sudo tar -zxvf ROO1.tar.gz -C /media/andychen/ROOT1route add default gw 10.12.13.2route –nifconfig wlan0 upiwlist wlan0 scanning | grep ESSIDiwconfig wlan0 essid "lijie"ubuntu 123456 修改DNS :echo nameserver 192.168.43.1 > /etc/resolv.confWindows cmd下
查看交换机
已用IP :arp –a