BUG——IMX6ULL编译正点原子Linux内核报错

         最初编译的是正点原子改过的Linux内核,可能是版本问题,一直报错,无法成功编译。然后换成NXP官方Linux内核6.6版本,初始编译虽然也报各种错,但都是缺少库或相关工具,全部安装后就可以成功编译出镜像了(人都麻了(x_x))

        最后测来测去,发现主要原因是gcc版本不对。之所以使用NXP最新的内核版本没有问题,那是因为我的gcc编译器是14.0版本的,与NXP这个6.6版本发布时间相距不远。一般来说,要确保你下载的源码比你使用的gcc版本要新,不然容易出现不兼容的问题。

        如果你使用的是正点原子提供的linux内核源码,那么就要确保你的gcc编译器版本低于7.5,至于10.3、11.5、14都不行。确切地来说,下面这个链接里面的编译器基本可用,我用的是7.5版本的。

Linaro Releases

        下面将分为两个部分,【编译Linux内核】是正常步骤,【报错历程】是我在错误使用gcc版本时遇到的问题,只不过最后没能解决就不了了之了。

 

编译Linux内核

        在gcc编译器版本正确的情况下,初次编译

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
make distclean
make imx_v7_deconfig
make -j16# 给虚拟机分配多少处理器,就在-j后面加上多少数字,-j后面最好不要空,否则容易卡死系统崩溃

        编译之后大概率会遇到一个"yylloc"重定义的问题,解决办法很简单,在/scripts/dtc目录下,找到dtc-lexer.lex.c_shipped文件,并把里面的对应变量定义YYLTYPE yylloc;前面加上extern。详情见博客编译linux内核时multiple definition of `yylloc‘错误的解决方案

        之后再编译就不会出现任何问题了。其中正点原子build.sh脚本里说用到gcc版本是5.3,但我用上5.3后,依旧会出现这个重定义的问题,解决后就不会继续报错了。

        如果你的gcc编译版本过新,那么初次编译也会遇到这个问题,只不过解决了这个后还会出现一堆不兼容问题。

        正常情况下,编译后会产生镜像文件如zImage,如果编译最后没有产生镜像,反而是突然停下了,也没有报错提示。那么多半是因为并行编译导致,使用单核编译再试一遍(只有make,没有“-j”),这时会出现报错提示。

       

 

 报错历程

        下面是我遇到的部分报错历程,这是在gcc版本过新(14.0)的情况下测试的。总之,即便一步一步照着报错提示去查教程修改,最后也难逃无法解决的链接问题

【1】fatal error: curses.h: No such file or directory

sudo apt-get install libncurses-dev

【2】出现多重定义的问题

我采用的是

编译itop4412 uboot失败,提示multiple definition of `yylloc‘; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first_编译提示genneric-asm-offsets.h-CSDN博客

【3】出现下面报错

  LD      crypto/crypto_hash.o
  LD      crypto/cryptomgr.o
  LD      crypto/built-in.o
  LD      fs/ext4/ext4.o
  LD      fs/ext4/built-in.o
make: *** [Makefile:948: fs] Error 2

sudo apt-get install lzop

 安装上面库后,报错减少了

 LD      fs/ext4/ext4.o
 LD      fs/ext4/built-in.o
make: *** [Makefile:948: fs] Error 2

【4】单独使用配置时出现下面问题

 

sudo apt-get install flex
sudo apt-get install bison

【5】

参考博客:

【1】linux内核编译 fatal error: curses.h: 没有那个文件或目录解决办法

【2】解决Linux下交叉编译U-Boot源码时报‘multiple definition of `yylloc‘‘的错误-CSDN博客

【3】Linux驱动开发环境搭建,初次体验开发全流程(必看)_i.mx6ull编译环境是什么-CSDN博客

【5】Linux kernel 编译openssl/bio.h: No such file or directory openssl找不到

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148973.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

运营商二要素接口如何用PHP实现调用

一、什么是手机二要素? 运营商二要素又称手机二要素,运营商二要素核验,手机二要素核验,即传入姓名、手机号码,校验此两项是否一致。实时核验,返回校验结果! 二、手机二要素适用哪些场景&#…

【逐行注释】MATLAB的程序,对比EKF(扩展卡尔曼滤波)和PF(粒子滤波)的滤波效果,附下载链接

文章目录 总述部分源代码运行结果扩展性 总述 本代码使用 M A T L A B MATLAB MATLAB实现了扩展卡尔曼滤波( E K F EKF EKF)和粒子滤波( P F PF PF)在状态估计中的对比分析。 主要功能包括: 参数设置:初始…

【apt-file命令详解:Linux下的包管理利器】

文章目录 前言一、apt-file命令简介二、安装apt-file三、apt-file命令的基本用法四、高级技巧五、总结 🌈你好呀!我是 山顶风景独好 🎈欢迎踏入我的博客世界,能与您在此邂逅,真是缘分使然!😊 &a…

基于SSM的“银发在线教育云平台”的设计与实现(源码+数据库+文档)

基于SSM的“银发在线教育云平台”的设计与实现(源码数据库文档) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 首页页面图 健身养生详情页面 在线课堂界面 …

Intellij IDEA 通过数据库表生成带注解的Java实体类(lombok版)

前言:因为今天在写实体类的时候,发现表中的字段太多,而且又要加注解怕写错漏写,现在市面上也有许多插件,但是有些达不到代码简洁,需要修改。后来还是选择了采用groovy写了一个脚本编写,本来idea…

gitlab使用小结

GitLab 是一个基于 Git 的代码托管平台,提供了丰富的功能来管理代码仓库、CI/CD、项目管理等。以下是一些常用的 GitLab 命令和示例,帮助你更好地使用 GitLab。 1、 克隆仓库 克隆一个远程仓库到本地: git clone gitgitlab.example.com:us…

深圳mes制造系统的主要功能

深圳MES系统的主要功能包括以下几个方面: 生产计划管理:MES系统可以帮助企业制定生产计划,包括订单管理、生产排程、生产任务分配等,实现生产资源的合理配置和生产计划的优化。 生产过程控制:MES系统可以监控生产过程中…

SpringBoot技术栈的网上超市开发实践

2 系统开发技术 这部分内容主要介绍本系统使用的技术,包括使用的工具,编程的语言等内容。 2.1 Java语言 Java语言自公元1995年至今,已经超过25年了,依然在软件开发上面有很大的市场占有率。当年Sun公司发明Java就是为了发展一门跨…

局域网远程命令重启电脑

只要知道远程服务器的管理员密码和IP地址,在局域网中的任意一台机器上打开“命令提示符”窗口,运行以下命令: 1、获取远程服务器的管理员权限 net use IP地址 "管理员密码" /user:administrator 2、使用shutdown命令远程重启服务器…

32中的外部中断

一、理解中断 关于32的中断 中断就是给cpu一个信号,cpu收到这个对应的信号再进行指挥 最常用的就是按键 key1按下是咩意思key2呢这样 中断信号线CPU要和对应的元器件连接 二、中断代码 代码编写 所有的0脚对应中断寄存器0,以此类推 引脚为n …

Unity :单例模式 + MonoBehaviour 是什么体验?

单例模式 与 MonoBehaviour的冲突点 单例模式 MonoBehaviour 保持单例的快速解决方案 就是自己创建一个空对象,然后把脚本挂在上去就行了,之后你就别自己挂载该脚本就行了 一般写法 public class AgentMoNo : MonoBehaviour {private static AgentM…

Python编码系列—Python观察者模式:实现事件驱动架构的利器

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

ComfyUI新版本提升效率小技巧(建议收藏)

原文链接:建议收藏!ComfyUI提升效率的小技巧,肯定有你不知道的 (chinaz.com) 本篇带来ComfyUI非常实用的9个小技巧,可以提升我们的ComfyUI工作效率,建议大家收藏起来哈 新版中文搜节点 点击设置 comfy→搜索框框架…

PHP判断微信或QQ访问

PHP判断微信或QQ访问 若是微信或者QQ打开&#xff0c;提示图会覆盖网页&#xff0c;但网页功能仍在运行&#xff01; <meta name"viewport" content"initial-scale1, maximum-scale1, user-scalableno, widthdevice-width"><style> .top-gui…

OpenCV目标检测(1)模板匹配函数matchTemplate()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将一个模板与重叠的图像区域进行比较。 该函数在图像中滑动&#xff0c;使用指定的方法将大小为 w h w \times h wh的重叠块与模板 templ 进行…

基于python+django+vue的旅游景点数据分析系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

【Canvas与诗词】铁马冰河入梦来

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>金红圈铁马冰河入梦来</title><style type"text/css&q…

【linux经典工具】strace-就十分钟你也能成为性能调优专家

strace 是什么 strace是一款功能强大的 Linux 进程监控和诊断工具。主要作用就是&#xff1a;用于调试程序、解决问题、拦截和记录系统调用以及跟踪正在运行的进程。它能输出了程序如何与系统交互的过程&#xff0c;尤其是在无法获取源代码的情况下&#xff08;那些开源工具、…

召回04 离散特征的处理

推荐系统会将一个id映射成一个向量 Qne-Hot编码 Embedding(嵌入)&#xff1a; 把每个类别映射成一个低维的稠密向量

k均值算法 聚类算法 k-means

首先我们导入科学计算的库 import numpy as np import matplotlib.pyplot as plt直接我们生成一组数据&#xff0c;为了保证每次的数据是一致的&#xff0c;我们设置一个随机种子。 np.random.seed(0) Xnp.random.rand(100,2) print(X) 结果 然后我们就要开始写K-means算…