Ubuntu12.04 LTS ZYBO Linux Kernel编译
2014-12-25 11:25
357 查看
这两天断断续续终于跑通了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里面讲的一步步来吧,先编译内核。
编译内核首先要下载内核源代码,这里用了
make了解不多,所以想想还是按照digilent手册Embedded Linux® Hands-on Tutorial for the ZYBO里面讲的一步步来吧,先编译内核。
编译内核首先要下载内核源代码,这里用了
git clone https://github.com/DigilentInc/Linux-Digilent-Dev.git[/code]
由于网络原因,本来想在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三个模块搞一搞。
相关文章推荐
- Linux内核编译过程详解(kernel2.6.7) 转
- arm-linux-gcc4.3.2编译kernel 2.6.24成功,gcc4.3 内核
- Ubuntu12.04编译VLC,在linux上运行
- Linux 环境下编译 0.11版本内核 kernel
- Linux编译内核kernel解决USB、网卡驱动等问题【suse enterprise linux】
- Compiling the Linux Kernel(编译内核)
- ubuntu12.04 64建立交叉编译环境,bin/.arm-none-linux-gnueabi-gcc: not found(安装 ia32-libs)
- linux 编译 kernel 3.3 以上关于 bnx2 网卡加载失败问题 bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"
- 在Linux下安裝Rails开发环境(基于Ubuntu12.04LTS)
- ubuntu12.04 64bit 编译android源码时遇到的问题"make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates"
- linux下编译和烧写bootloader/vivi以及kernel的操作步骤
- 编译Xen 3.4 Dom0 using Linux Kernel 2.6.31 on Ubuntu 9.10 (Karmic)
- Linux内核编译步骤(基于Ubuntu10.04+2.6.35.2 Kernel)
- 配置、编译 Linux Real Time Kernel(ZZ)
- ubuntu12.04编译安装kernel3.7.1教程
- Ubuntu12.04LTS 编译android 错误总结
- LINUX内核编译过程详解[UBUNTU9.04 kernel 2.6.28.9]
- ubuntu环境下编译内核详解(linux kernel compile)
- Compile Linux Kernel on Ubuntu 12.04 LTS
- Linux 环境下编译 0.11版本内核 kernel