打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一天一阔阔儿ZYNQ的linux移植完整版(Linux环境搭建以及内核编译)

虚拟机UBUNTU12.04 64bit 701N 芯片是7020clg400

XILINX的交叉编译器安装

主要就是安装出现的一些问题,方法总结:

主要涉及的问题是,ubuntu12.04 64位系统,不能再采用sudo apt-get install ia32-libs命令,这样我们得到的问题是:

下列软件包有未满足的依赖关系:
 ia32-libs : 依赖: ia32-libs-multiarch
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

网上也没有找到合适的方法。

解决办法:

$ sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386       (第一步库安装)

我本意是运行adb的。运行adb时,发现缺乏libncurses5库,自己动手,丰衣足食,比葫芦画瓢,

$sudo apt-get install libncurses5:i386

在64位下,gcc默认编译代码位64位的,但是,如果你想编译位的,可以用gcc -m32选项,来设置。

不过,不幸的是,会出现错误,说找不到 /usr/include/features.h文件什么的。google一下,发现用这种方法:

$sudo apt-get install g++-multilib

运行上面三个兼容库,便能解决高版本64位系统的兼容以及依赖问题。希望大家加油努力尝试,有什么问题请在下面留言。

二、Uboot编译

由于系统限制,依赖和版本问题,由此出现一些问题需要解决,下面全部给出

cd uboot(文件夹)

make zynq_zybo_config配置文件

报错:我的电脑 上的关于交叉编译工具的环境变量是 arm-xilinx-linux-gcc
经过一番折腾,最后在make命令后边指定了交叉编译工具,
make CROSS_COMPILE=arm-xilinx-linux-gnueabi- 切记,最后不要加gcc,那个不用管。
好吧,终于解决了,可是编了半路,有一个问题,
In file included from tools/aisimage.c:10:0:
include/image.h:920:27: fatal error: openssl/evp.h: 没有那个文件或目录
# include <openssl/evp.h>
^
compilation terminated.
scripts/Makefile.host:111: recipe for target 'tools/aisimage.o' failed
make[1]: *** [tools/aisimage.o] Error 1
Makefile:1194: recipe for target 'tools' failed

make: *** [tools] Error 2 

这个是openssl的依赖的问题,运行命令sudo apt-get install libssl-dev 即可解决。
好吧再来一次,这回貌似没有什么问题,好长时间过去了,我还盲目兴奋了一会儿,突然又有一个问题:
./scripts/dtc-version.sh: 行 17: dtc: 未找到命令
./scripts/dtc-version.sh: 行 18: dtc: 未找到命令
*** Your dtc is too old, please upgrade to dtc 1.4 or newer
Makefile:1353: recipe for target 'checkdtc' failed
make: *** [checkdtc] Error 1


好吧,,dtc是device-tree-compiler的缩写,即设备树编译器,说明系统中没有安装这个编译器
安装不就行了:
sudo apt-get install device-tree-compiler

这次一次性编译到底了。

由于我用的ubuntu12.04所以会继续报错

根据uboot编译打印信息:


dtc: invalid option -- 'i'
Usage:

dtc [options] <input file>

报错信息后面省略。。。。

也就是DTC版本不对,大家可以用$dtc -v命令查看自己的版本,我看需要DTC1.4所以我下载对应的安装。

32位:https://launchpad.net/ubuntu/xenial/i386/device-tree-compiler/1.4.0+dfsg-2

64位:https://launchpad.net/ubuntu/xenial/amd64/device-tree-compiler/1.4.0+dfsg-2

请大家注意下载。

下载.dep文件,进行目录内使用dpkg -i device-tree-compiler_1.4.0+dfsg-2_i386.deb 进行安装。


root@ubuntu:/home/ws/zc702# dpkg -i device-tree-compiler_1.4.0+dfsg-2_i386.deb 
(Reading database ... 126283 files and directories currently installed.)
Preparing to replace device-tree-compiler 1.3.0-2 (using device-tree-compiler_1.4.0+dfsg-2_i386.deb) ...
Unpacking replacement device-tree-compiler ...
Setting up device-tree-compiler (1.4.0+dfsg-2) ...
Processing triggers for doc-base ...
Processing 2 changed doc-base files...
Registering documents with scrollkeeper...
Processing triggers for man-db ...
root@ubuntu:/home/ws/zc702# dtc -v
Version: DTC 1.4.0


安装后查看dtc版本为1.4.0,OK  到此生成出来uboot.img,恭喜大家

三、内核编译

内核编译命令:

zt@zt-virtual-machine:~/ZYNQ/User_file/V2017.4/linux-xlnx-xlnx_rebase_v4.9_2017.4$make    ARCH=arm CROSS_COMPILE=/home/zt/ZYNQ/User_file/CodeSourcery/bin/arm-xilinx-linux-gnueabi- UIMAGE_LOADADDR=0x8000 uImage

报错:'mkimage' command not found - U-Boot images will not be built

make[1]: *** [arch/arm/boot/uImage] 错误 1

make: *** [uImage] 错误 2

解决:按照以往经验,我们需要安装依赖包:

sudo apt-get install uboot-mkimage

在我的ubuntu16.04 64bit上无法进行安装,因此我们用方法二:

将uboot路径下的tools文件夹,设置到环境/etc/bash.bashrc下面:

export PATH=/home/paddyzhang/zynq_701n_linux/packages/u-boot-xlnx-xilinx-v2017.4/tools:$PATH

这是我的路径,可以根据你们自己的路径进行设置。

这样我们的内核编译结束。

四、我们生成自己需要的设备树文件。

命令:./scripts/dtc/dtc -I dts -O dtb -o devicetree.dtb /arch/arm/boot/dts/zynq_zybo.dts

这样可以生成dtb文件。但是我的虚拟机linux上会报错:

paddyzhang@paddyzhang-virtual-machine:/mnt/hgfs/F/board_file/701N/linux/dts$ dtc -I dts -O dtb -o system02.dtb zynq-zybo.dts 
Error: zynq-zybo.dts:15.1-9 syntax error

FATAL ERROR: Unable to parse input tree

解决办法:根据我测试和对比发现是include文件有点问题需要处理下:

 将这个文件自己处理为这样再生成。我们也根据自己的要求和需要来定制设备树,来适应我们的工程,我的理解为这样。所以设备树先生成一个,如果PL工程更改了,我们自己在设备树添加节点应该就OK了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[Zynq征文]Zynq Linux
A Tutorial on the Device Tree (Zynq)
7.5 Device Tree Blob (Flat Device Tree) | Boo...
install Tiny OS
Ubuntu 16.04中关于编译ijkplayer下的so经验分享
搭建Android源码编译环境
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服