zedboard 构建嵌入式linux
本文通过五部完成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的更多相关文章
- 4种用于构建嵌入式linux系统的工具_转
转自:4种用于构建嵌入式linux系统的工具 Linux 被部署到比 Linus Torvalds 在他的宿舍里开发时所预期的更广泛的设备.令人震惊的支持了各种芯片,使得Linux 可以应用于大大小小 ...
- 构建嵌入式Linux交叉编译工具链
开源交叉编译工具链制作方法汇总: 1) 使用crosstool/crosstool-ng生成 2) 使用buildroot生成 ARM交叉编译工具链说明: 1) arm-linux-gcc是一个集合命 ...
- ZedBoard上运行linux系统的准备工作框架
目标:ZedBoard上运行linux系统. 需要什么:图中上色部分. 应该做哪些工作:上色部分之前的所有步骤. 由上图得知,为了顺利在zedboard上构建嵌入式Linux操作系统,我们一般需要如下 ...
- 转:嵌入式linux启动时运行的inittab文件
嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要少得多.嵌入式系统下的linux启动过程一般是: 1 在bootloader中制定各种要 ...
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
- 嵌入式linux系统中,lsusb出现unable to initialize libusb: -99 解决办法 【转】
转自:http://cpbest.blog.163.com/blog/static/41241519201111575726966/ libusb是linux系统中,提供给用户空间访问usb设备的AP ...
- 适合初学者的嵌入式Linux计划
俗话说万事开头难,刚开始的时候,你是否根本就不知如何开始,上网查资料被一堆堆新名词搞的找不到北,去图书馆看书也是找不到方向?又是arm,又是linux,又是uboot头都大了,不知道自己究竟从哪里开始 ...
- 嵌入式linux开发环境构建
2.1硬件环境构建 2.1.1主机与目标板结合的交叉开发模式 在主机上编辑.编译软件,然后再目标办上运行.验证程序. 对于S3C2440.S3C2410开发板,进行嵌入式Linux开发时一般可以分为以 ...
- 构建 ARM Linux 4.7.3 嵌入式开发环境 —— BusyBox 构建 RootFS
上一篇我们已经成功将 ARM Linux 4.7.3 的内核利用 U-BOOT 引导了起来.但是细心的你会发现,引导到后面,系统无法启动,出现内核恐慌 (Kernel Panic). 原因是找不到文件 ...
随机推荐
- 基于EasyUI实现windows桌面
之前为大家介绍了 基于jquery tool实现的windows桌面效果,今天给大家带来一款基于EasyUI实现windows桌面.这款桌面适用浏览器:360.FireFox.Chrome.Safar ...
- 关于composer
Composer PHP依赖管理的新时代http://segmentfault.com/a/1190000000353129 Composer 的主页 https://getcomposer.or ...
- 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 ...
- Java 7之集合类型 - 二叉排序树、平衡树、红黑树---转
http://blog.csdn.net/mazhimazh/article/details/19961017 为了理解 TreeMap 的底层实现,必须先介绍排序二叉树和平衡二叉树,然后继续介绍红黑 ...
- Solr的检索运算符 (转载)
1. “:” 指定字段查指定值,如返回所有值*:*2. “?” 表示单个任意字符的通配3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)4. “~” 表示模糊检索,如检索拼写类 ...
- [JavaEE] Eclipse中web-inf和meta-inf文件夹的信息
WEB-INF /WEB-INF/web.xml 你的Web应用程序配置文件,这是一个XML文件,其中描述了 servlet 和其他的应用组件配置及命名规则: /WEB- I ...
- 用bootstrapValidator来验证UEditor
我们的项目使用了bootstrapValidator来作为前端校验,但是表单里面有一个UEditor,它用bootstrapValidator是没有效果的,为了页面风格统一,只好修修改改咯 首先来看一 ...
- 140个google面试题
某猎头收集了140多个Google的面试题,主要是下面这些职位的. Product Marketing Manager Product Manager Software Engineer Softwa ...
- WebStrom9 体验nodejs
之前就有体验过 WebStrom8.0.3 版本,确实不错. 最喜欢的是集成了Terminal 很方便的使用NPM,今天装上发现 Terminal 死活打不上字.什么原因! WebStrom9 在wi ...
- Oracle基础 (十一)字符串函数
一.字符串函数 LENGTH(char1,char2) SELECT LENGTH('abc def gh') FROM dual; --获取字符串的长度,包含空格 结果: CONCAT(char1, ...