Ubuntu12.04 LTS ZYBO Linux Kernel编译

这两天断断续续终于跑通了zybo(其实就是zynq)linux内核的编译。起因是什么呢?主要是为了精简FPGA PL的逻辑,这里想把HDMI部分逻辑去掉,EDK工程搞定之后,也生成了对应的fsbl.elf,但是发现系统启动不起来(在进入文件系统这里卡住)。虽然不能确定问题出在哪,但是我的判断是linux device tree有问题,因为我用的还是带hdmi的.dtb文件。那么就需要重新编译dtb文件,dtb的源代码dts文件是会修改的,但是要将dts源代码编译为dtb执行文件需要一个编译器,这个编译器有standalone的,但是一般都是用linux内核源代码里面./script/dtc里面自带的编译器。我尝试在./script/dtc里面make编译dtc执行文件,发现有关联库不存在的问题,这个因为对于linux make了解不多,所以想想还是按照digilent手册Embedded Linux® Hands-on Tutorial for the ZYBO里面讲的一步步来吧,先编译内核。

编译内核首先要下载内核源代码,这里用了

git clone https://github.com/DigilentInc/Linux-Digilent-Dev.git

由于网络原因,本来想在github上下载zip文件然后解压,发现大小不一样,很奇怪,最后还是用了git。

之后就是在Linux-Digilent-Dev目录下编译内核:

make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-  xilinx_zynq_defconfig
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- 

此时问题就来了,总报错CROSS_COMPILE=arm_xilinx_linux_gnuebi-出错。这时候google了一下发现需要安装xilinx的软件Vivado或者ISE,而且必须包含SDK,因为这个cross compile就在SDK的gnu目录下,虽然我也不大懂这个交叉编译。一切准备好之后还需要 http://www.wiki.xilinx.com/Install+Xilinx+Tools看到的两句:

$ export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
$ source /opt/Xilinx/Vivado/2014.4/settings32.sh

然后再在Linux-Digilent-Dev目录下执行编译指令即可完成编译。


然后在就可以编译devicetree执行文件了:

Linux-Digilent-Dev$ ./script/dtc/dtc -I dts -O dtb -o ./devicetree.dtb digilent-zybo.dts

替换了原有的linux devicetree文件之后,再启动,rootfs可以正常挂载,果然这个问题,那么至此一个可定制文件系统的最小zynq系统就完成了,下面看一下zynq的资源运用情况,可以看到逻辑为零。下面就是写逻辑,做驱动了。目前的想法是把音频I2S,XADC,DSP三个模块搞一搞。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值