在ZYNQ-ZEDBOARD上搭建LINARO文件系统

                                    在ZYNQ-ZEDBOARD上搭建LINARO文件系统

本文记录如何在ZEDBOARD上搭建LINARO文件系统,目前还不支持HDMI输出,只能够在串口打印下测试,由于修改了默认的RAMDISK文件系统,中间遇到很多问题,中间从网上找了很多博文,尝试的方式也换了很多。

主要的参考资料:

何宾《XILINX ZYNQ-7000嵌入式系统设计与实现》

http://www.openhw.org/topic-1403

http://blog.csdn.net/yake827/article/details/51980181  雅克的博客

准备的工具(软件版本基本按照何宾的例子,VIVADO 2015.4,)

1、虚拟机VMWARE  12

2、ubuntu 14.04

3、GITHUB工具

4、SDK (LINUX)

5、LINARO文件系统

1、主要步骤

1.1软件准备

1)UBUNTU的安装,参考何宾书,操作非常详细

         注意:不要添加607页的搜索链接资源,更新包很大,会导致UBOOT编译不出来

2)FTP安装

         随便找一个FTP工具就可以了

3)UBUNTU下安装FTP工具

         按照书上的即可

4)安装SSH /GIT

         按照书上即可

5)安装交叉编译环境SDK

         按照书上即可,此外也可以不用SDK自带的,另一种方式的文件很小,不像SDK有1G那么大。

1.2主要过程

         主要包含4个操作过程:

         1、制作UBOOT

         2、制作内核文件和设备树文件

         3、SD卡的准备

         4、载入文件系统

         这四个操作过程基本在网上都可以找到,但是参差不齐,主要是UBOOT和内核文件不统一,GIT的文件不一样,加载的文件有uImage  也有 zImage ,这里还没有搞清楚区别,暂时忽略。

1.3何宾书上的问题

         书上对于操作过程以及软件安装说的比较详细,软件安装一切顺利,文件选择也基本都对,但是,最后输出的配图用的uImag,但前面却用的zImage , UBOOT的启动过程文件、设备树文件也没有修改,因此是不太可能在HDMI上显示的,也基本不能打印,因此第26章的实验是做不出来的。

         本书能给一个比较正统的方式,交叉编译命令正确,整体过程没错,但缺乏一些必要改动,此章前面几章解释比较详细,可以按照步骤来做。

1.4遇到的主要问题

1、uboot编译不过

         修改.config 文件 ,注释掉SIGNATURE那一行,即注释掉 报错行的宏定义 ;

2、 uboot 执行错误 :BOOTM地址错误

         由于板子默认是采用RAMDISK的方式,采用默认的例子比较容易做,但采用LINARO的文件系统,在uboot导入文件的时候需要修改地址,如下:

         这里的 - 号,左右都要有空格,意思是替代的地址,那么就要把 - 作为一个地址,需要空格,没有空格直接错误,在串口打印下会有错误,BOOT阶段无法进行下去。

3、内核文件,内核采用uimage,其编译的命令要注意加上地址

         内核文件GIT时候需要按照参考资料里的,不清楚何宾书上的是否也可以。

         内核文件较大解压时候,编译有可能编译不出来,需要重新解压,再次编译

4、设备树文件

         设备树文件需要增加文件系统的挂载点,按照网上的名字,不是查看的盘符的名字,在虚拟机下看到SD卡的名字是dev/sdd1 ,sdd2,这里不能这么写,会导致无法引导文件系统;

5、SD卡制作和文件系统

         制作SD卡按照参考文档即可,注意文件系统导入到EXT4 正常,此处导入错误的文件,导致无法启动。

2、整体过程描述

版本都是采用2015.4 ,GIT的UBOOT、内核版本也尽量使这个版本。

2.1     FPGA工程搭建

1、搭建最小的ARM系统,除了基本的UART、SD、USB外其余均不需要。

红框的都去掉。

2、导出文件和WRAPPER后,直接编译BIT文件;

3、然后导入SDK,建立FSBL工程。

在SDK中点击菜单File->New->ApplicationProject。项目名fsbl(可以更改),OS平台standalone,语言为C,点击Next,Templates选项选择ZynqFSBL。

点击Finish,SDK会自动编译FSBL代码,并在工程Debug下生成fsbl.elf目标文件。Project Explorer –》binaries–》fsbl.elf。

此处需要保留FPGA部分综合的BIT文件以及FSBL.elf文件,用于生成UBOOT。

2.2 uboot编译以及文件生成

2.2.1 uboot编译

首先需要git uboot源码:

地址:https://github.com/Xilinx/u-boot-xlnx选择2015.4的版本,个人是在Windows下安装的Github 软件,在网址上敲入该地址即可,点击RELEASE,回退版本即可。

        

         修改内容:

         解压后,配置交叉编译环境后编译即可,其过程为:

         1、安装DTC工具

                   apt-getinstall device-tree-compiler

         2、进入到UBOOT文件下

source  /Xilinx/SDK/2015.4/settings64.sh

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

                   (这里可以查看交叉编译环境有没有准备好 如果没有需要重新配置)

                   生成.config 文件,改版本编译需要注释掉SIGNATURE那一行。

           make CROSS_COMPILE=arm-xilinx-linux-gnueabi- 后就产生了UBOOT文件

           改名字:mv u-boot u-boot.elf

2.2.2 合成文件U-BOOT.BIN

         制作U-BOOT.bin文,在SDK下:

点击菜单Xilinx Tools >Create Zynq Boot Image

首先设置BIF文件路径。BIF文件用于指定当前boot.bin制作过程中用到的三个文件的路径,相当于一个项目配置文件。

设置好后我们先按顺序添加三个文件,显示FSBL文件

FSBL的在弹出对话框中的Partitiontype是bootloader,而bitstream(如果有)和uboot都是datafile。此处一定要注意,否则会出现问题。添加正确的话,修改输出路径中文件名为boot.bin(也可以不修改)

点击Create Image创建boot.bin,成功的话会在输出路径生成相应文件。

         (该部分不容易出错)

2.3内核以及设备树编译

2.3.1内核编译

文件地址:

https://github.com/Digilent/linux-Digilent-Dev

(该文件编译后续未采用,2016.4编译难以编过)

采用雅可的参考内核:

https://github.com/Xilinx/linux-xlnx  

采用2015.4版本。

 

过程:

1、安装u-boot-tools : apt-get install u-boot-tools

         进入内核文件夹:

2、编译:

         1source /xilinx/SDK/2015.4/settings64.sh

         2)make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- xilinx_zunq_defconfig

         3) make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-uImage LOADADDR=0x8000

         生成的内核存在于/arch/arm/boot

2.3.2设备树文件编译

注意上面的dev/mmcblk0p2 是指mmcblk0 的p1  p2,可能在虚拟机上看到的不是这个名字,这个是相对嵌入式系统的名字。

2.4文件系统

2.4.1 SD卡制作

(本部分直接按照参考即可)


 

将U-BOOT.bin,devicetree.dtb,uImage 文件拷入到FAT32部分。

2.4.2载入文件系统

文件系统下载地址:

releases.linaro.org/archive

选择12.09->ubuntu->précises-images->Ubuntu-desktop->linaro-precise-unbutu-desktio-20120923-436.tar.gz

(上图是参考的截图,只有解压以及拷贝的操作)

 

本文拷贝点:

sudo rsync –a –progress ./ media/本人名字/rootfs

到目前为止,所有的文件均准备完成。

2.5输出截图

         目前,还不能从HDMI输出,后面需要增加该部分的功能。

猜你喜欢

转载自blog.csdn.net/sss10_leon/article/details/79422922