insmod: error inserting 'simp-blkdev.ko': -1 Invalid module format
(一)
今天写了个块设备驱动例子,在虚拟机上加载模块insmod simp_blkdev.ko的时候,出现以下错误。
insmod: error inserting 'simple-blk.ko': -1 Invalid module format
其实错误很简单,Makefile的编写失误,因为之前是想让这个驱动模块在TQ2440上运行的,所以,Makefile的编写使用了以下形式:
ifneq ($(KERNELRELEASE),)
obj-m := simp_blkdev.o
else
KDIR := /usr/src/linux-2.6.30.4
all:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif
主要错误在于红色部分,这个内核模块版本与虚拟机的内核模块版本不一致,导致出现以上错误。
用uname -r 命令查看当前系统的版本是多少,我的查询结果是2.6.18-164.el5
故将其改为:KDIR := /lib/modules/2.6.18-164.el5/build
并且将 ARCH=arm CROSS_COMPILE=arm-linux- 去掉,因为我们要在虚拟机上加载模块,故不使用交叉编译工具。改完之后,再make,编译成功,问题解决。
————————————————————————————————
(二)
按照最开始那个Makefile编译出来的.ko文件,通过nfs下载到开发板上,在开发板上加载insmod simp-blkdev.ko 的时候却出现这个错误。
vmap allocation for size 16785408 failed: use vmalloc=<size> to increase size.
insmod: can't insert 'simp-blkdev.ko': Cannot allocate memory
出错原因也很简单,它的意思是不能分配16785408这么大的空间,所以 失败,回到simp_blkdev.c上,原来我们在这里分配的内存空间是16M,当然就出错啦,要知道嵌入式里面的内存是相当宝贵的,不是每一次分配那 么大的空间内核都会响应给你,所以我把simp_blkdev.c上的分配空间改为16k,再重新编译,错误得到解决。
PS:学驱动也有一些日子了,但是由于临近期末考试,没有更多的时间来写文章,待考完试我再一一详细介绍驱动相关的知识。最后,正如之前你看到的,LWJ祝大家学习愉快。^_^
转载于:https://www.cnblogs.com/Ph-one/p/4606922.html
insmod: error inserting 'simp-blkdev.ko': -1 Invalid module format相关推荐
- insmod: error inserting 'xxx.ko': -1 Invalid module format
乘着实验机器在编译内核,把以前遇到的一个问题也总结一下,本来之前运行得好好地模块,后来怎么突然不行了呢,具体问题如下: 该问题表示:内核模块编译的环境与现在insmod想要运行的环境不一致 这个可能是 ...
- 解决insmod error inserting 'hello ko' -1 Invalid module form
实现 功能:在PC的LINUX实现驱动测试,不用在2440上测试 解决insmod: error inserting 'hello.ko': -1 Invalid module format 第一次写 ...
- insmod: error inserting './scull.ko': -1 Unknown symbol in module
编译驱动的时候碰到了 insmod: error inserting './igb.ko': -1 Unknown symbol in module 的问题,在网上看了下,说是查看 dmesg | ...
- insmod: error inserting 'myvivi.ko': -1 Unknown symbol in module 问题解决办法
加载驱动时遇到:insmod: error inserting 'myvivi.ko': -1 Unknown symbol in module的问题,在网上查了下,解决办法如下: 1.用modinf ...
- insmod: error inserting '***.ko': -1 Invalid parameters 真正原因以及解决方法
原因1 :的确是你的内核版本和你Makefile制定的不一样. 这个我就不谈了 原因二:是我们在确保了内核版本和我们Makefile指定的一样的情况下: 竟然还报错 insmod: error ins ...
- insmod: error inserting 'memdev.ko': -1 File exists
在写Linux驱动是,sudo insmod ***.ko时出现错误:insmod: error inserting 'memdev.ko': -1 File exists 原因可能是你以前同名的驱动 ...
- insmod: error inserting 'vivi.ko': -1 Unknown symbol in module 问题解决办法
加载驱动时遇到:insmod: error inserting 'vivi.ko': -1 Unknown symbol in module的问题,在网上查了下,解决办法如下: 1.用modinfo ...
- 驱动加载错误:insmod: error inserting 'hello.ko': -1 Device or resource busy
一:insmod时候错误: 1:错误信息insmod: error inserting 'hello.ko': -1 Device or resource busy 2:原因:你的代码里面的设备号和系 ...
- Linux在加载模块时报insmod: error inserting xxx.ko -1 File exists这个错
insmod: error inserting xxx.ko': -1 File exists 在写Linux块设备驱动时,insmod xxx.ko时出现错误:insmod: error inser ...
最新文章
- python 字典排序
- 【思维导图】脑机音乐接口,高效检测用户的情绪状态
- c语言表现一些简单的图片,C语言的一些简单例题.doc
- 机器学习之五:神经网络、反向传播算法推导
- 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主
- 二叉搜索树的经典问题
- LeetCode OJ:Construct Binary Tree from Preorder and Inorder Traversal(从前序以及中序遍历结果中构造二叉树)...
- Waveform Audio 驱动(Wavedev2)之:WAV 驱动解析
- 异步服务_微服务全链路异步化实践
- Rust+Yew之hello world
- 周五下午3h直播丨2021第5期大咖讲坛:数据库安全与智能运维
- 23种设计模式之简单工厂模式,工厂方法模式,抽象工厂模式详解
- word如何添加艺术字体
- GoldWave几种转换格式方法
- lpad与rpad函数
- 卡内基梅陇大学计算机学院,卡内基梅隆大学计算机学院
- java 窗口点击事件
- 计算机文化教育对学生思维品质的影响,信息技术教育让素质教育绽放“光芒”...
- 关于PV操作和信号量临界值的一些理解
- 李开复:大学四年应是这样度过