本文通过五部完成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 http://github.com/Digilent/linux-3.3.digilent.git

得到内核以后 配置内核  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开发哦,天知道呢!

参考数目:digilent官方资料www.digilent.org

嵌入式系统软硬件协同设计实战指南基于Xilinx zynq  . 陆佳华

xilinx  all programmable Zynq-7000 soc 何宾

懒兔子博客  http://www.eefocus.com/nightseas/blog/cate_12977_0.html

肖志远博客:http://blog.csdn.net/column/details/zynq.html

zedboard 构建嵌入式linux的更多相关文章

  1. 4种用于构建嵌入式linux系统的工具_转

    转自:4种用于构建嵌入式linux系统的工具 Linux 被部署到比 Linus Torvalds 在他的宿舍里开发时所预期的更广泛的设备.令人震惊的支持了各种芯片,使得Linux 可以应用于大大小小 ...

  2. 构建嵌入式Linux交叉编译工具链

    开源交叉编译工具链制作方法汇总: 1) 使用crosstool/crosstool-ng生成 2) 使用buildroot生成 ARM交叉编译工具链说明: 1) arm-linux-gcc是一个集合命 ...

  3. ZedBoard上运行linux系统的准备工作框架

    目标:ZedBoard上运行linux系统. 需要什么:图中上色部分. 应该做哪些工作:上色部分之前的所有步骤. 由上图得知,为了顺利在zedboard上构建嵌入式Linux操作系统,我们一般需要如下 ...

  4. 转:嵌入式linux启动时运行的inittab文件

    嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要少得多.嵌入式系统下的linux启动过程一般是:     1 在bootloader中制定各种要 ...

  5. 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

    深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...

  6. 嵌入式linux系统中,lsusb出现unable to initialize libusb: -99 解决办法 【转】

    转自:http://cpbest.blog.163.com/blog/static/41241519201111575726966/ libusb是linux系统中,提供给用户空间访问usb设备的AP ...

  7. 适合初学者的嵌入式Linux计划

    俗话说万事开头难,刚开始的时候,你是否根本就不知如何开始,上网查资料被一堆堆新名词搞的找不到北,去图书馆看书也是找不到方向?又是arm,又是linux,又是uboot头都大了,不知道自己究竟从哪里开始 ...

  8. 嵌入式linux开发环境构建

    2.1硬件环境构建 2.1.1主机与目标板结合的交叉开发模式 在主机上编辑.编译软件,然后再目标办上运行.验证程序. 对于S3C2440.S3C2410开发板,进行嵌入式Linux开发时一般可以分为以 ...

  9. 构建 ARM Linux 4.7.3 嵌入式开发环境 —— BusyBox 构建 RootFS

    上一篇我们已经成功将 ARM Linux 4.7.3 的内核利用 U-BOOT 引导了起来.但是细心的你会发现,引导到后面,系统无法启动,出现内核恐慌 (Kernel Panic). 原因是找不到文件 ...

随机推荐

  1. 基于EasyUI实现windows桌面

    之前为大家介绍了 基于jquery tool实现的windows桌面效果,今天给大家带来一款基于EasyUI实现windows桌面.这款桌面适用浏览器:360.FireFox.Chrome.Safar ...

  2. 关于composer

    Composer PHP依赖管理的新时代http://segmentfault.com/a/1190000000353129 Composer 的主页   https://getcomposer.or ...

  3. Spring MVC @RequestMapping Annotation Example with Controller, Methods, Headers, Params, @RequestParam, @PathVariable--转载

    原文地址: @RequestMapping is one of the most widely used Spring MVC annotation.org.springframework.web.b ...

  4. Java 7之集合类型 - 二叉排序树、平衡树、红黑树---转

    http://blog.csdn.net/mazhimazh/article/details/19961017 为了理解 TreeMap 的底层实现,必须先介绍排序二叉树和平衡二叉树,然后继续介绍红黑 ...

  5. Solr的检索运算符 (转载)

    1. “:” 指定字段查指定值,如返回所有值*:*2. “?” 表示单个任意字符的通配3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)4. “~” 表示模糊检索,如检索拼写类 ...

  6. [JavaEE] Eclipse中web-inf和meta-inf文件夹的信息

    WEB-INF    /WEB-INF/web.xml        你的Web应用程序配置文件,这是一个XML文件,其中描述了 servlet 和其他的应用组件配置及命名规则:    /WEB- I ...

  7. 用bootstrapValidator来验证UEditor

    我们的项目使用了bootstrapValidator来作为前端校验,但是表单里面有一个UEditor,它用bootstrapValidator是没有效果的,为了页面风格统一,只好修修改改咯 首先来看一 ...

  8. 140个google面试题

    某猎头收集了140多个Google的面试题,主要是下面这些职位的. Product Marketing Manager Product Manager Software Engineer Softwa ...

  9. WebStrom9 体验nodejs

    之前就有体验过 WebStrom8.0.3 版本,确实不错. 最喜欢的是集成了Terminal 很方便的使用NPM,今天装上发现 Terminal 死活打不上字.什么原因! WebStrom9 在wi ...

  10. Oracle基础 (十一)字符串函数

    一.字符串函数 LENGTH(char1,char2) SELECT LENGTH('abc def gh') FROM dual; --获取字符串的长度,包含空格 结果: CONCAT(char1, ...