上一篇中按照《嵌入式系统软硬件协同设计实战指南》配置之后发现并不好用,这次按照《xilinx zynq soc与嵌入式linux设计实战指南》进行配置
一、基本概念:
1、交叉编译:在一个平台上上生成另一个平台上可以执行的代码。
2、通过交叉编译工具可以在CPU能力很强、存储空间足够的主机平台下(PC机)编译出针对其他平台的可执行代码。
3、主机平台上安装交叉编译工具链,然后用他编译源代码,最终生成可在目标平台上运行的代码。
二、安装过程
1、 下载u-boot源码:https://github.com/Xilinx/u-boot-xlnx/releases
2、 下载交叉编译器源码:
https://pan.baidu.com/share/link?shareid=2118817891&uk=2047711911&fid=131808308022716
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