一天一阔阔儿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了。
这是Zynq的Linux一直全部过程,今天2018/07/03.后面持续更新zynq的Linux下软硬件开发。打球去~~~~~~
后面有什么问题,大家留言,我继续优化不足
一天一阔阔儿ZYNQ的linux移植完整版(Linux环境搭建以及内核编译)相关推荐
- Linux疑难杂症解决方案100篇(十五)-万字长文带你深入Linux 内核学习:环境搭建和内核编译
一.linux内核学习之一:环境搭建--安装Debian7.3 本系列文章假设读者已对linux有一定的了解,其实学习linux内核不需要有很深的关于linux的知识,只需要了解以下内容:linux基 ...
- 小知识点:ARM 架构 Linux 大数据集群基础环境搭建(Hadoop、MySQL、Hive、Spark、Flink、ZK、Kafka、Nginx、Node)
换了 M2 芯片的 Mac,以前 x86 版本的 Linux 大数据集群基础环境搭建在 ARM 架构的虚拟机集群上有些用不了了,现在重新写一份基于 ARM 架构的,少数不兼容之外其他都差不多,相当 ...
- 三星 linux手机系统版本,三星手机将支持完整版 Linux
IT 之家10 月 19 日消息,三星在 SDC 2017 开发者大会上宣布 Dex 即将支持运行完整版 Linux 发行版. 大家都知道,微软虽然不是第一个做手机连续(Continuum)功能的,但 ...
- 三星手机打不开php文件,三星手机将支持完整版Linux
IT 之家10 月 19 日消息,三星在 SDC 2017 开发者大会上宣布 Dex 即将支持运行完整版 Linux 发行版. 大家都知道,微软虽然不是第一个做手机连续(Continuum)功能的,但 ...
- linux 下51单片机开发环境搭建
linux 下51单片机开发环境搭建(arch linux) 编译sdcc 软件: sdcc 命令:sdcc file.c 得到一堆文件需要( .inx) 命令: packihx file.inx & ...
- Linux 下的 ActiveMQ C++ 环境搭建与测试
Linux 下的 ActiveMQ C++ 环境搭建与测试 一.下载安装jdk jdk官网下载地址:https://www.oracle.com/technetwork/java/javase/dow ...
- 【Linux Mint 深度学习开发环境搭建】开发软件安装
系列文章目录 第一章 Linux mint 深度学习开发环境搭建之Nvidia显卡相关软件安装 第二章 Linux mint 深度学习开发环境搭建之开发软件安装 第三章 Linux mint 深度学习 ...
- linux设备驱动开发之环境搭建(基于exynos4412)
第一章 linux设备驱动开发之环境搭建(基于exynos4412) 目录 第一章 linux设备驱动开发之环境搭建(基于exynos4412) 1.搭建开发板运行环境 1.1.交叉开发模式 安装交叉 ...
- 视频教程-Linux下Shell从入门到精通完整版-Linux
Linux下Shell从入门到精通完整版 京东商城运维架构师,京峰Linux云计算教学总监,担任国内多家知名社区运维专家网站Linux版主,专注Linux自动化运维,熟练LVS.Nginx,前端架构及 ...
最新文章
- 如何用法向量求点到平面距离_高中数学丨2020新标课本,空间向量与二面角所有知识点,一张表搞定...
- 认识nio中buf的三个常用属性
- VS2015安装简单的C#单元测试
- 【案例解析】 e家洁创始人:O2O创业的痛点与深坑
- Spring Boot AJAX 示例
- Java forEach中 Lambda Expr中的 final变量要求
- andoridstudio run图标是灰色两步解决
- 【Shiro】六、Apache Shiro Session管理
- 解决genemotion模拟器冲突导致的Android Studio无法启动ADB的问题
- CCF NOI1048 检测矩阵
- java比较器Comparator 和 Comparable 的区别
- 【SSH】---【Struts2、Hibernate5、Spring4】【SSH框架整合笔记 】
- 如何在ECLIPSE中使用MVN CLEAN INSTALL
- PHP网页表单输入框输入字符简体繁体互转(非JS)
- SpringBoot与Shiro整合-权限管理实战
- C/C++ %s %d %u 基本概念与用法
- Go 每日一库之 gorilla/handlers
- 苹果手机click事件失效
- 创建一个 Spring Boot 项目的4种方法,你会几种?- 第396篇
- 【码云周刊第 65 期】5个前端 UI 优秀框架
热门文章
- 形容等待时间长的句子_关于等待的句子大全
- SQLDBX找不到服务器 no server found
- windows11安装微软商店的ubuntu报错,已解决
- SMAA算法详解 - SMAADetectHorizontalCornerPattern
- Oracle数据库:oracle外连接left/right/full outer join on,oracle扩展的左右外连接展示符号(+)
- [20190227]Windows系统评估工具winsat.txt
- 百度UEditor 整合135编辑器到功能栏
- JS的日期操作:String转date日期格式、求日期差
- 国际最新LOGO设计趋势总结
- Spring Cloud 工具集