本文通过五部完成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. apache htaccess

    #RewriteCond :重新条件#RewriteRule : 重写规则# .htaccess文件中的规则会以它们出现的顺序被处理 <IfModule mod_rewrite.c>Rew ...

  2. main方法无法编译

    main方法无法编译,可能是没有括号的原因

  3. LeetCode45 Jump Game II

    题目: Given an array of non-negative integers, you are initially positioned at the first index of the ...

  4. LeetCode18 4Sum

    题意: Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...

  5. 小白日记48:kali渗透测试之Web渗透-XSS(二)-漏洞利用-键盘记录器,xsser

    XSS 原则上:只要XSS漏洞存在,可以编写任何功能的js脚本 [反射型漏洞利用] 键盘记录器:被记录下的数据会发送到攻击者指定的URL地址上 服务器:kali 客户端 启动apache2服务:ser ...

  6. star

    Astronomers often examine star maps where stars are represented by points on a plane and each star h ...

  7. linux安装问题

    java: cannot execute binary file问题 主要原因是 linux系统是32位的,jdk版本是64位的. 补充知识: 1.查看linux位数: #uname -a 如果有x8 ...

  8. 【开源项目5】测滑菜单MenuDrawer的使用以及解析

    在安卓中左右侧滑菜单的使用用的比ios多得多,可能是谷歌带的头吧,几乎所有的谷歌应用都有侧滑菜单.谷歌没有开放这个源码,在一个成熟的开源代码出现之前,大家都是各自为战,偶尔能看到一个勉强实现了的.Me ...

  9. 【Mood-5】14条建议,使你的IT职业生涯更上一层楼

    升值为企业IT部门的领导者,并非一件易事.从一般大众中脱颖而出,则更不容易. 2013是一个好年头,据专家报告显示,6月所有新工作中,10%来自技术领域.这对于那些希望高升.换岗.跳槽的IT技术人员来 ...

  10. C#备份,还原数据库

    private void btnBack_Click(object sender, EventArgs e) { string saveAway = @"C:\1.bak"; // ...