Chinaunix首页 | 论坛 | 博客
  • 博客访问: 238786
  • 博文数量: 36
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 730
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-30 14:04
文章分类

全部博文(36)

文章存档

2014年(36)

我的朋友

分类: 嵌入式

2014-09-25 11:14:43

本文通过五部完成zedboard的嵌入式LINUX搭建,所谓磨刀不五砍材工嘛

1:系统环境搭建
要准备好交叉编译环境 见 http://blog.csdn.net/xiabodan/article/details/22717175

2:编译u-boot
然后要准备好u-boot 可以首先 apt-get install git ,然后可以在xilinx git中下载相关的u-boot原码, git clone git://git.xiinx.com/u-boot-xarm.git

解压原码:如果是zip文件的,unzip u-boot-xarm

配置u-boot make zynq_zed_config 有可能会权限不够,需要chmod

编译u-boot 在编译之前我们要首先设置一下交叉编译器的软链接,避免出现误用gcc

ln -s arm-xilinx-linux-gnueabi-gcc arm-linux-gcc

ln -s arm-xilinx-linux-gnueabi-ar arm-linux-ar

ln -s arm-xilinx-linux-gnueabi-gcc arm-linux-gcc

ln -s arm-xilinx-linux-gnueabi-objcopy arm-linux-objcopy

ln -s arm-xilinx-linux-gnueabi-objdump arm-linux-objdump

make

在u-boot-xarm目录下可以看到生辰的新文件u-boot(.elf),u-boot.bin,u-boot(.elf)会在xilinx SDK里面用到,强调一下这里的u-boot.bin不能直接用于xilinx的zynq,而用到的是u-boot(.elf)必须经过SDK和system.bit还有fsbl文件一起生辰zynq的第一阶段启动文件BOOT.BIN。此时我们的u-boot.elf算是编译完成。先留在这里后面在用。


3:编译内核以及设备树
首先我们要准备的当然是内核原码了:git clone 

得到内核以后 配置内核 make ARCH=arm digilent_zed_defconfig

make ARCH = arm


编译成功以后会在./arch/arm/boot/目录下找到zImage文件了,当然还要编译设备树进入./arch/arm/boot/dts/目录下可以看到zynq-zed-adv7511dts文件,为什么是adv7511文件,我们会在将FPGA的时候说,这与xilinx硬件有关。然后我们在内核跟目录下

make zynq-zed-adv7511.dtb

可以看到

DTC arch/arm/boot/zynq-zed-adv7511.dtb
DTC: dts->dtb on file "arch/arm/boot/dts/zynq-zed-adv7511.dts"

这两句话输出然后在执行 make

这时会在./arch/arm/boot/目录下生成zynq-zed-adv7511.dtb文件


至此我们生辰了u-boot.elf zImage .dtb

4:下面需要制作根文件系统
今天就不整了 麻烦死了 有时间载来 现在就用linaro的这么好 不用白不用。

5:XILINX SDK生成BOOT.BIN


将我们第2布中生成的boot.elf文件拷贝出来。打开XILINX FPGA官方提供的硬件工程cf_adv7511_zed 这个工程可以在analog官网上下载

可以从图中看到zynq_fsbl_0.eld文件是xilinx用于zynq的第一阶段启动文件。这个文件比u-boot还要先运行,具体过程看 http://blog.csdn.net/xiabodan/article/details/23093111

而system.bit当然是我们的FPGA的下载流文件了,这个文件一般用于FPGA端配置,具体不多说了,有时间在详细的写出来。

至于这个u-boot.elf当然就是我们在第2阶段生成的uboot了

通过这三个文件生成的BOOT.BIN才是我们的启动文件。

最后将之前的三个文件 zImage .zynq-zed-adv7511.dtb BOOT.BIN(其中zynq-zed-adv7511.dtb要重命名为devicetree.dtb)拷贝入SD卡FAT32中,同时将linaro文件系统拷贝到SD卡的EXT4分区,当然之前必须进行SD卡的分区为两个分区(FAT32与EXT4 ),分区工具可以用GParted。

上电!奇迹出现了吧!

等着你的将是linux的开发了,不过由于小编不是专业的LINUX选手,还要去做FPGA的配置!苦逼的FPGA农民工。写本文的木的纯属记个笔记,以后不忘,因为不知道这辈子会不会做INUX开发哦,天知道呢!

阅读(1912) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~