linux 编程-linux 内核编程 insmod错误:Unknown symbol in module

问题描述

linux 内核编程 insmod错误:Unknown symbol in module

日志报错:unknown symbol usb_register_notify
网上说这是因为依赖的模块没有加载,
怎么知道自己的内核程序依赖哪些模块?

解决方案

linux-3.1.4下的驱动模块 "Unknown symbol in module" 问题(by liukun321咕唧咕唧)
insmod: Unknown symbol in module or no symbol version for
linux2.6.28 insmod no invalid module in object

解决方案二:

可以参考下lsmod和modinfo这两个命令

时间: 2024-12-23 18:50:42

linux 编程-linux 内核编程 insmod错误:Unknown symbol in module的相关文章

arm上加载insmod驱动时出现Unknown symbol in module

问题 这几天在arm上做蓝牙耳机驱动的时候,编译好了驱动但是在板子上insmod时候. 怎么会出现这种情况,不对呀,仔细查我们会发现,其实编译驱动的时候,就出现了一些警告,只是当时没有在意而已,而恰恰是这些警告导致的这些问题. 硬件设备 板子用的是realarm 内核linux-2.6.35 交叉编译器arm-linux-gcc 4.4.3 问题解析 究其原因,其原因就是我们的驱动找不到内核的几个函数,我们可以看到我们找不到的函数有两个,一个是kill_proc_info 一个是snd_hwde

Linux 3.8.0下EXPORT_SYMBOL出现Unknown symbol问题

在Linux 3.8.0下用EXPORT_SYMBOL时出现Unknown symbol,导出的变量外部模块在编译的时候不能使用! 解决: 1.把mod_1的Module.symvers放到mod_2的当前路径,从而编译mod_2,符号信息会自动连接进去. 或 2.在mod_2的makefile中使用KBUILD_EXTRA_SYMBOLS指定mod_1的Module.symvers, 如: KBUILD_EXTRA_SYMBOLS=/mod_1/Module.symvers 本栏目更多精彩内容

Debian/Ubuntu Linux下内核编程者必备

如果你想要升级你的Debian/Ubuntu Linux内核,或者你希望为内核开发新的模块,或者您要为某个硬件写新的驱动程序--这一切都涉及到Debian/Ubuntu Linux内核编程. 作为一个内核编程者,有那么几个软件是你必须要有的,看作是你进行内核编程的几件法宝吧,下面我一一列举出来: 1.gcc 大名鼎鼎的gcc我想没有人不知道的吧?它是任何编程者必然要先安装的一个武器了.不过一般如果你是安装的Debian系统,应该已经默认安装了的.要是Ubuntu你就安装一下吧,安装方法嘛,就是输

android内核-编译好的linux驱动模块向android手机的linux内核中insmod时错误

问题描述 编译好的linux驱动模块向android手机的linux内核中insmod时错误 我编写了一个helloworld.ko的驱动模块,编译成功后向手机中insmod时报错,错误提示为version magic '2.6.35.7_hi3716m mod_unload ARMv7 ' should be '3.3.6_hi3716m mod_unload ARMv7 p2v8 ',请问怎么解决?还有ARMv7后的p2v8是什么意思? 解决方案 应该是内核版本不对?

Linux 内核编程基本功之内核同步与互斥锁mutex

Linux 内核编程基本功之内核同步与互斥锁mutex 作者 digoal 日期 2016-11-07 标签 PostgreSQL , 同步流复制 , mutex , Linux 背景 在使用PostgreSQL实现同步流复制时,在主节点发现有大量的mutex,导致了写并发被限制. 本文为转载文章 http://blog.csdn.net/cug_fish_2009/article/details/6126414 Pro-II.内核同步与互斥锁 1.理解互斥锁? 互斥锁的使用也是保持内核临界区的

《Linux设备驱动开发详解 A》一一第3章Linux内核及内核编程

第3章Linux内核及内核编程 本章导读本章有助于读者打下Linux驱动编程的软件基础.由于Linux驱动编程的本质属于Linux内核编程,因此我们有必要熟悉Linux内核及内核编程的基础知识.3.1-3.2节讲解了Linux内核的演变及新版Linux 内核的特点.3.3节分析了Linux内核源代码目录结构和Linux内核的组成部分及其关系,并对Linux的用户空间和内核空间进行了说明.3.4节讲述了Linux内核的编译及内核的引导过程.除此之外,还描述了在Linux内核中新增程序的方法,驱动工

linux内核编程笔记【原创】

以下为本人学习笔记,如有转载请注明出处,谢谢   1. service用法 oneshot DEFINE_MUTEX(buzzer_mutex);   mutex_lock(&buzzer_mutex); mutex_unlock(&buzzer_mutex);   static void WriteNumber(const char *fileName, int number) {                                                      

【书摘】Linux内核编程

导读:本文节选自人民邮电出版社出版的<Linux内核编程>一书.本书的三位作者有多年的行业经验:Claudia Salzberg Rodriguez就职于IBM Linux技术中心,从事内核及相关编程工具的开发工作:Gordon Fischer为很多设备开发了Linux和UNIX设备驱动程序:Steve Smolski在半导体行业已经浸染了26年,开发过各种驱动程序和嵌入式系统.该书译者为陈莉君.贺炎和刘霞林. 作者独特的由表及里的讲解方法使得内核编程更易于理解:从用户空间到内核,把内核内在的

Linux下多进程/多线程编程

linux下多进程.多线程编程 linux下进程   (一) 理解Linux下进程的结构  Linux下一个进程在内存里有三部份的数据,就是"数据段","堆栈段"和"代码段",其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操作系统的运行."代码段",顾名思义,就是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段.  堆栈段存放的就是子程序的返回地址