uboot的编译原本以为是一件容易的事情,没想到,这一路下来真心让人纠结,今天就吧这一过程记录下来吧。折腾了好长时间。

必要环境

首先是arm-xilinx交叉变异开发环境,没有的话可以参考我之前的博客,有详细介绍。当然还有各种依赖等等,我这里就不会一一说了,反正第一次的话总会有很多错误,那么就仔细认证的理解错误,缺啥补啥就可以了。

开始

首先,去xilinx官方wiki网站上寻找u-boot-xilinx-master或者去digilent官网也有一个版本,都是可以其实都是一样的,其实digilent的github上关于u-boot是fork的xilinx的,所以都是一样的。
废话不多说,开始吧,首先解压,进入到子目录,有很多目录和文件,首先执行 make zynq_zc702_config,具体的选项可以查看doc目录下的一个README.zynq的文件,就知道了。
之后会出现

HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#

说明配置成功,你也可以使用 make config 命令进行更详细的配置。这里就不多说了

编译

之前看了很多的教程,都说直接运行就可以了,但是总会出现这样一个错误,说是没法找到 arm-xilinx-linux-gnueabigcc ,也就是我就纳闷了,我明明装了交叉编译工具啊,怎么回事,这个问题纠结了好半天,甚至怀疑官方的有问题,最后发现,我的电脑 上的关于交叉编译工具的环境变量是 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
这次一次性编译到底了。

ps :个人感受,编译u-boot之前建议了解一下gcc编译器和makefile语法相关的概念,这样出了问题可以自己找问题,任何人的linux系统是不同的,所以呢就算完全按照我的过程走下来,不一定就会成功。还有,就是出了问题要冷静,不要想着有个人帮你解决问题,要多思考,多查资料,还要有耐心,一周两周解决不掉是很正常的,如果暂时解决不了可以搁置一下。
Good Luck!

zedboard u-boot编译的心路历程相关推荐

  1. android编译脚本下载,Android编译 Fak_aac心路历程

    下载官方库 编译脚本 #!/bin/sh NDK_ROOT=/Users/momo/Library/Android/sdk/ndk-bundle ANDROID_API_VERSION=15 NDK_ ...

  2. RadHat 6 系列心路历程、新功能及变化

    RadHat 6.0系列心路历程 首先最大的改变是配置内核为2.6.32  .默认文件系统升级为为ext4(比ext3速度更快,可达16TB).其它可用文件系统附加件包括XFS(可扩展到100TB)和 ...

  3. 【博客话题】我的linux心路历程

    2011年的某一天,程程同学在QQ上跟我说"linux 20周年了,有没有关于linux话题的好点子",回神一想,是啊,linux都20周年了,是应该搞一个有意义的话题了,我就建议 ...

  4. ArchSummit微课堂|蘑菇街DevOps实践及心路历程分享

    本文整理自 #ArchSummit微课堂#--赵成分享的蘑菇街DevOps实践及心路历程,主要介绍一些运维体系建设中的的经历和实践, 什么是DevOps?为什么是DevOps? 蘑菇街DevOps实践 ...

  5. 一个小透明作者到出版书籍,我的心路历程分享给各位作者

    2020年和电子工业出版社签约,之后开始了自己第一本书的写作之旅.历时近一年,我的第一本书终于出版了.作为一个开发人员,也算是完成了一桩心愿,先看看她的样子吧! 书籍出版后,我也整理了这些年写作的经历 ...

  6. LienJack-2年前端面试心路历程(字节跳动、YY、虎牙、BIGO)

    LienJack-2年前端面试心路历程(字节跳动.YY.虎牙.BIGO) 大厂面经 字节跳动 1 面 对 tree-shaking 的了解 虽然生产模式下默认开启,但是由于经过 babel 编译全部模 ...

  7. CSDN日报20170615 ——《11 年高考结束到 17 年日本修士的心路历程》

    程序人生 | 11 年高考结束到 17 年日本修士的心路历程 作者:sileixinhua 记住在任何时候,钱的确是生活的根本,但是兴趣最重要,干自己喜欢的事,不要为了钱而工作,不要为了钱而去实现梦想 ...

  8. 小八——WebGL心路历程(1),从一个原生的webGL程序粗放认识webGL

    HTML5时代的到来,让WebGL这个重磅核武器渐渐被大多人所熟悉并且使用.笔者最近两周左右的时间因为项目的原因,一直在看WebGL相关的文章. 说说我的基础吧:计算机本科毕业生水平,大学本科用MFC ...

  9. Linux 心路历程

    1.心路历程 折腾Linux快一年了,使用过各种发行版,从Ubuntu,openSUSE.deepin以及centos,再到现在的Mint.也从开始的各种心累,心态爆炸到现在的遇问思源,熟悉常用的指令 ...

最新文章

  1. 软件工程需求设计说明书
  2. 【安全漏洞】DedeCMS-5.8.1 SSTI模板注入导致RCE
  3. 计算机性能和显卡的提升,提高显卡性能,详细教您怎么提高显卡性能
  4. 日活4000万,占据22%手游时长份额的竟然是……(文末有彩蛋)
  5. 用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld
  6. elasticsearch 7.8.0 kibana 7.8.0安装部署
  7. 自定义滚动条CSS样式
  8. 前端学习(1952)vue之电商管理系统电商系统之级联选择器
  9. Modbus协议栈开发笔记之五:Modbus RTU Slave开发
  10. 幼儿园计算机课程名称,幼儿园课程建设30:计算机与幼儿园课程的整合(3)
  11. 安装最新版SopCast 0.4.1
  12. 创灵原始与鸿蒙,上古启示录
  13. 微博音视频下载与合并
  14. Bad client credentials
  15. windows11便签在哪里,win11怎么新建便签
  16. 面试中最易被“秒杀”的五种表现
  17. Pycurl的简单使用与对比
  18. 【Benewake(北醒)】 单点系列标品介绍
  19. 一个无名前端的10年前端路
  20. IEC 61131-3编程标准(GBT 15969.3)

热门文章

  1. [ERROR] The distro “Ubuntu“ has running processes and can‘t be operated. “wsl -t <name>“ ......
  2. 自定义通用信号处理核心板CMB-2C6657-1K7
  3. OpenCV角点检测: Harris算子, ShiTomasi算子
  4. 灰色预测(MATLAB)
  5. 学习编程需要什么基础
  6. java中cbrt_JavaScript中带有示例的Math.cbrt()方法
  7. Scratch案例——画彩虹
  8. 买域名+配置SSL站点
  9. 【Serenity BDD】使用ChromeDriver打开Chrome浏览器是弹出“Chrome is being controlled by automated software”提示栏
  10. pytorch Load部分weights