【linux驱动开发】编译linux驱动程序报错:ERROR: Kernel configuration is invalid.

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、报错
  • 二、解决方法
    • 1.先编译linux内核源码
    • 2.再重新编译驱动程序


一、报错

在编译驱动程序过程中,经常碰到的一个小问题:

make -C /home/lubancat/LubanCat_SDK/kernel M=/home/lubancat/lubancat_rk_code_storage/linux_driver/device_tree modules
make[1]: Entering directory '/home/lubancat/LubanCat_SDK/kernel'ERROR: Kernel configuration is invalid.include/generated/autoconf.h or include/config/auto.conf are missing.Run 'make oldconfig && make prepare' on kernel src to fix it.
Makefile:630: include/config/auto.conf: No such file or directory
make[1]: *** [Makefile:691: include/config/auto.conf] Error 1
make[1]: Leaving directory '/home/lubancat/LubanCat_SDK/kernel'
make: *** [Makefile:10: all] Error 2

二、解决方法

1.先编译linux内核源码

步骤1如下:

lubancat@lubancat-vm:~/LubanCat_SDK/kernel$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- lubancat2_defconfigHOSTCC  scripts/basic/fixdepHOSTCC  scripts/kconfig/conf.oYACC    scripts/kconfig/zconf.tab.cLEX     scripts/kconfig/zconf.lex.cHOSTCC  scripts/kconfig/zconf.tab.oHOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#

步骤2如下:

lubancat@lubancat-vm:~/LubanCat_SDK/kernel$ make ARCH=arm64 -j4 CROSS_COMPILE=aarch64-linux-gnu- dtbs
.....等待编译完成,这里省略中间的编译过程,最后的输出结果如下即可
Image Name:   
Created:      Tue Jul 29 14:27:08 2025
Image Type:   AArch64 Linux Script (uncompressed)
Data Size:    1258 Bytes = 1.23 KiB = 0.00 MiB
Load Address: 00000000
Entry Point:  00000000
Contents:Image 0: 1250 Bytes = 1.22 KiB = 0.00 MiB

2.再重新编译驱动程序

Makefile文件内容如下

#指定linux内核源码的路径
KERNEL_DIR=/home/lubancat/LubanCat_SDK/kernelARCH=arm64
CROSS_COMPILE=aarch64-linux-gnu-
export  ARCH  CROSS_COMPILEobj-m := get_dts_info.o
all:$(MAKE) -C $(KERNEL_DIR) M=$(CURDIR) modules.PHONE:cleanclean:$(MAKE) -C $(KERNEL_DIR) M=$(CURDIR) clean	

直接make,即可编译成功

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试宝典:MySQL中的锁

InnoDB中锁的类型非常多,总体上可以如下分类: 这些锁都是做什么的?具体含义是什么?我们现在来一一学习。 1. 解决并发事务问题 我们已经知道事务并发执行时可能带来的各种问题。最大的一个难点是:一方面要最大程度地利用数据库的并发访问能力,另一方面又要确保每个用户…

设备识别最佳实践:四维交叉验证框架

设备识别最佳实践:四维交叉验证框架 1. MAC地址分析(40%权重) - 设备身份核验 核心方法: # MAC地址标准化(OUI提取) mac"B4:2E:99:FB:9D:78" oui$(echo $mac | tr -d : | cut -c 1-6 | tr a-f A-…

《Java 程序设计》第 9 章 - 内部类、枚举和注解

大家好,今天我们来学习《Java 程序设计》第 9 章的内容 —— 内部类、枚举和注解。这三个知识点是 Java 中提升代码灵活性和可读性的重要工具,在实际开发中非常常用。接下来我们逐一展开讲解,每个知识点都会配上可直接运行的代码示例&#xf…

CTF Misc入门篇

在CTF比赛中,misc方向是必考的一个方向,其中,图形隐写是最最常见的类型。 先从Misc开始入门,一般会借助CTF SHOW解题平台,解题,然后进行技巧总结。 目录 图片篇(基础操作) misc1 misc2 misc3 misc4 …

Vulnhub 02 Breakout靶机

一、信息收集 我是在仅主机模式下扫描的。 以此去访问端口。 80端口是上面的主页,查看一下源代码,发现了如下图所示的注释,翻译过来是:别担心,没有人会来这里,安全地与你分享我的访问权限,它是…

论文阅读:2024 arxiv AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks https://arxiv.org/pdf/2403.04783#page9.14 https://www.doubao.com/chat/14064782214316034 文章目录…

Spring Boot 请求限流实战:基于 IP 的高效防刷策略

前言 互联网流量就像洪水猛兽,来得快去得也快。如果不给接口装个“限速阀”,服务器瞬间被刷爆,宕机成真,根本不稀奇。没有限流机制,系统就像没有刹车的赛车,跑得太快反而翻车。为了保证服务稳定、响应迅速,保护后端资源不被恶意请求掏空,限流成必备武器。 本篇文章将…

机器学习第二课之线性回归的实战技巧

1 线性回归简介 1 线性回归应用场景 线性回归是一种用于分析自变量与连续型因变量之间线性关系的模型,其核心是通过拟合线性方程(y w_1x_1 w_2x_2 ... w_nx_n b)来预测因变量或解释自变量的影响。由于其简单、可解释性强的特点,线性回归…

【时时三省】(C语言基础)指向指针数据的指针变量

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省在了解了指针数组的基础上,需要了解指向指针数据的指针变量,简称为指向指针的指针。怎样定义一个指向指针数据的指针变量呢?下面定义一个指向指针数据的指针变量&#…

前端css 的固定布局,流式布局,弹性布局,自适应布局,响应式布局

1. 固定布局容器的宽高是固定的,单位一般是px,不会随着屏幕大小变化2.流式布局(百分比布局/vw)vw: 视图宽度的百分比,1vw代表视窗宽度的1% vh: 视图高度的百分比,1vh代表视窗高度的1%特点: 宽度随屏幕大小变化单位用%或vw 高度通常…

python学习DAY26打卡

DAY 26 函数专题1:函数定义与参数 内容: 函数的定义 变量作用域:局部变量和全局变量 函数的参数类型:位置参数、默认参数、不定参数 传递参数的手段:关键词参数 传递参数的顺序:同时出现三种参数类型时…

echarts图表点击legend报错问题(折线图)

原因是&#xff1a;echats 实例&#xff0c;不能够用响应式变量去接收。<template><div class"attendance-chart"><div v-if"loading" class"loading">加载中...</div><div v-else-if"error" class"e…

Django模型开发:模型字段、元数据与继承全方位讲解

文章目录一、模型字段类型详解Django 与 MySQL 字段类型映射整数类型深度对比二、常用字段选项null 与 blank 的区别注释与帮助文本默认值设置日期时间特殊选项选项列表&#xff08;choices&#xff09;三、模型元数据与方法模型 Meta 类模型管理器&#xff08;Manager&#xf…

墨者:SQL注入实战-MySQL

1. 墨者学院&#xff1a;SQL注入实战-MySQL&#x1f680; 2. 实训重点目标✨ 目标一&#xff1a; 了解sqlmap的使用及其tamper插件的使用&#xff1b; 目标二&#xff1a; 了解base64编码及解码。 3. 解题方向&#x1f50d; 目标网站的id参数通过Base64编码传输&#xff0c;…

Milvus 实战全流程

&#x1f4da; 学习路径总览1. Milvus 基础知识什么是向量数据库&#xff1f;Milvus 的核心概念&#xff08;collection、field、index、partition、segment&#xff09;Milvus 和 Faiss、Annoy、HNSW 的区别2. 安装与部署Docker 快速部署 Milvus&#xff08;推荐&#xff09;本…

Mysql数据库基础(入门)

目录 一.认识Sql 1.什么是Sql 2.Sql的作用 3.Sql通用语法 4.Sql分类 二.数据库的操作&#xff08;DDL&#xff09; 1.创建数据库 2.显示/使用数据库 3.修改数据库 4.删除数据库 三.常用数据类型 1.数值类型 2.字符串类型 3.日期类型 4.详细的数据类型 四.表的操…

MySQL 锁机制 15 连问 · 面试速答版

一、脑图&#xff1a;锁全景&#xff08;先记结构&#xff0c;再填细节&#xff09; 锁层级 ├─ 表锁 │ ├─ 意向锁 IS / IX │ └─ 表锁 READ / WRITE └─ 行锁├─ 记录锁 Record├─ 间隙锁 Gap└─ 临键锁 Next-Key二、15 问 15 答&#xff08;面试官一问一…

【Linux】发展历程

很高兴为您详细介绍Linux操作系统的详细发展历程。Linux是一个自由和开放源代码的操作系统内核&#xff0c;由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;于1991年首次发布。以下是Linux操作系统的主要发展里程碑&#xff1a;1. Linux 0.01 (1991)发布日期&#xff1a…

LNMP架构+wordpress实现动静分离

WordPress简称WP&#xff0c;最初是一款博客系统&#xff0c;后逐步演化成一款免费的CMS&#xff08;内容管理系统/建站系统&#xff09;。 WordPress网站的适用场景&#xff1a; 博客 企业官网 作品集网站 电商平台 线上教育系统 论坛和社群网站 甚至会员系统、订阅内容…

智慧灯杆:不止于照明,塔能科技的城市感知网络野心

当夜幕悄然降临&#xff0c;城市里的路灯便依次亮了起来&#xff0c;它们可不单单照亮了行人前行的路以及车辆行驶的道路&#xff0c;实际上还在悄无声息地经历着一场变革。现如今的路灯&#xff0c;早已不再仅仅充当单纯的照明工具这么一个角色了&#xff0c;而是逐渐转变成了…