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祝大家学习愉快。^_^
insmod: error inserting 'simp-blkdev.ko': -1 Invalid module format的更多相关文章
- 解决insmod: error inserting 'hello.ko': -1 Invalid module format
编译自己的内核模块后,insmod出现error:error inserting 'hello.ko': -1 Invalid module format 出现这种情况的原因是因为Makefile种使 ...
- insmod: error inserting 'hello.ko': -1 Invalid module format
在学习编写linux驱动程序的时候,一般都是从写一个helloworld的模块開始. 可是在编译完毕后,进行模块载入的时候,有时会出现例如以下错误: insmod: error inserting ' ...
- insmod hello.ko -1 Invalid module format最简单的解决的方法
在下也是从网上搜索到的这样的解决的方法. 遇到这样的情况后,通过dmesg看一下内核日志. 假设发现有例如以下日志.那就好办了. hello: version magic '2.6.33.3 ' sh ...
- ubuntu12.04出现ERROR: Removing 'hello': Device or resource busy和insmod: error inserting 'hello.ko': -1 Device or resource busy解决方案
一:insmod时候错误: 1:错误信息insmod: error inserting 'hello.ko': -1 Device or resource busy 2:原因:你的代码里面的设备号和系 ...
- insmod: can't insert 'led.ko': invalid module format详细解释
insmod: can't insert 'led.ko': invalid module format 之前在Imx257学习版固件编写的驱动想直接移植imx257核心板的开发板上.以为2个板子的源 ...
- [Mongo] error inserting documents: BSONObj size is invalid (mongoimport mongorestore 数据备份恢复)
解决办法如下, ./mongoimport -port 6066 -d xxx -c xxx --batchSize=10 /root/mong_data/test/xxx 原因转自 http://b ...
- tomcat出现Error in dependencyCheck java.io.IOException: invalid manifest format
我只能说这个错误很坑爹,检查了很多地方都没问题,结果最后在MANIFEST.MF 里面把所有的空的行都删掉就好了.坑爹有木有.
- 内核模块加载错误 “Invalid module format” 解决办法
参考链接: http://blog.chinaunix.net/uid-20448327-id-172345.html
- insmod: ERROR: could not insert module dm-snapshot.ko: Unknown symbol in module
下面方法成功的前提是你的mod和你的操作系统版本是匹配的,也就是说你的mod之前成功过.说个多余的提示,mod在/lib/modules目录里面 insmod: ERROR: could not in ...
随机推荐
- ajax.abort 终止AJAX请求
$(document).ready(function () { var ajax; $('#choice').change(function() ...
- Centos7安装并配置mysql5.6完美教程
Centos7安装并配置mysql5.6完美教程 Centos7将默认数据库mysql替换成了Mariadb,对于我们这些还想使用mysql的开发人员来说并不是一个好消息.然而,网上关于Linux安装 ...
- 九度OJ 1348 数组中的逆序对 -- 归并排序
题目地址:http://ac.jobdu.com/problem.php?pid=1348 题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求 ...
- jQuery事件绑定和委托
可以用多种方法实现,on() . bind() . live() . delegate() ,还有one(). 有时我们可能会像下面这样绑定一个事件: $("#div1"). ...
- linux共享文件samba安装与java读取外部文件夹方法
测试环境RedHat 6.4 一.安装 samba组件安装: (1)首先用“rpm –qa |grep samba”命令检验系统samba服务是否安装. #rpm –qa |grep samba sa ...
- IE专用CSS,最全的CSS hack方式一览
http://blog.csdn.net/freshlover/article/details/12132801
- 如何使用ERStudio 生成comment
在ER使用中,在生成sql过程中,如何批量生成字段描述,如何批量添加Owner,请看下文: 1.ER生成字段描述 2.ER生成描述添加Owner 使用的ER版本是8.0,英文版本,在操作过程中,有些配 ...
- 推荐:PHPCMS v9 安全防范教程!
一.目录权限设置很重要:可以有效防范黑客上传木马文件. 如果通过 chmod 644 * -R 的话,php文件就没有权限访问了. 如果通过chmod 755 * -R 的话,php文件的权限就高了. ...
- python描述符descriptor(一)
Python 描述符是一种创建托管属性的方法.每当一个属性被查询时,一个动作就会发生.这个动作默认是get,set或者delete.不过,有时候某个应用可能会有 更多的需求,需要你设计一些更复杂的动作 ...
- 使用ajaxFileUpload实现异步上传图片
index.html <head runat="server"> <title></title> <script src="jq ...