(一)

今天写了个块设备驱动例子,在虚拟机上加载模块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相关推荐

  1. insmod: error inserting 'xxx.ko': -1 Invalid module format

    乘着实验机器在编译内核,把以前遇到的一个问题也总结一下,本来之前运行得好好地模块,后来怎么突然不行了呢,具体问题如下: 该问题表示:内核模块编译的环境与现在insmod想要运行的环境不一致 这个可能是 ...

  2. 解决insmod error inserting 'hello ko' -1 Invalid module form

    实现 功能:在PC的LINUX实现驱动测试,不用在2440上测试 解决insmod: error inserting 'hello.ko': -1 Invalid module format 第一次写 ...

  3. insmod: error inserting './scull.ko': -1 Unknown symbol in module

    编译驱动的时候碰到了  insmod: error inserting './igb.ko': -1 Unknown symbol in module 的问题,在网上看了下,说是查看 dmesg |  ...

  4. insmod: error inserting 'myvivi.ko': -1 Unknown symbol in module 问题解决办法

    加载驱动时遇到:insmod: error inserting 'myvivi.ko': -1 Unknown symbol in module的问题,在网上查了下,解决办法如下: 1.用modinf ...

  5. insmod: error inserting '***.ko': -1 Invalid parameters 真正原因以及解决方法

    原因1 :的确是你的内核版本和你Makefile制定的不一样. 这个我就不谈了 原因二:是我们在确保了内核版本和我们Makefile指定的一样的情况下: 竟然还报错 insmod: error ins ...

  6. insmod: error inserting 'memdev.ko': -1 File exists

    在写Linux驱动是,sudo insmod ***.ko时出现错误:insmod: error inserting 'memdev.ko': -1 File exists 原因可能是你以前同名的驱动 ...

  7. insmod: error inserting 'vivi.ko': -1 Unknown symbol in module 问题解决办法

    加载驱动时遇到:insmod: error inserting 'vivi.ko': -1 Unknown symbol in module的问题,在网上查了下,解决办法如下: 1.用modinfo  ...

  8. 驱动加载错误:insmod: error inserting 'hello.ko': -1 Device or resource busy

    一:insmod时候错误: 1:错误信息insmod: error inserting 'hello.ko': -1 Device or resource busy 2:原因:你的代码里面的设备号和系 ...

  9. Linux在加载模块时报insmod: error inserting xxx.ko -1 File exists这个错

    insmod: error inserting xxx.ko': -1 File exists 在写Linux块设备驱动时,insmod xxx.ko时出现错误:insmod: error inser ...

最新文章

  1. python 字典排序
  2. 【思维导图】脑机音乐接口,高效检测用户的情绪状态
  3. c语言表现一些简单的图片,C语言的一些简单例题.doc
  4. 机器学习之五:神经网络、反向传播算法推导
  5. 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主
  6. 二叉搜索树的经典问题
  7. LeetCode OJ:Construct Binary Tree from Preorder and Inorder Traversal(从前序以及中序遍历结果中构造二叉树)...
  8. Waveform Audio 驱动(Wavedev2)之:WAV 驱动解析
  9. 异步服务_微服务全链路异步化实践
  10. Rust+Yew之hello world
  11. 周五下午3h直播丨2021第5期大咖讲坛:数据库安全与智能运维
  12. 23种设计模式之简单工厂模式,工厂方法模式,抽象工厂模式详解
  13. word如何添加艺术字体
  14. GoldWave几种转换格式方法
  15. lpad与rpad函数
  16. 卡内基梅陇大学计算机学院,卡内基梅隆大学计算机学院
  17. java 窗口点击事件
  18. 计算机文化教育对学生思维品质的影响,信息技术教育让素质教育绽放“光芒”...
  19. 关于PV操作和信号量临界值的一些理解
  20. 李开复:大学四年应是这样度过

热门文章

  1. 3月第5周业务风控关注 | 央视曝光偷密码的“×××”,9亿人个人信息存风险
  2. Access 2003 的输入掩码(Input Mask)
  3. Andorid屏幕唤醒异常,Power按键无法点亮屏幕的分析
  4. PHP如何把word文档转换为html
  5. WPF实现Aero毛玻璃效果
  6. makefile编写知识小结
  7. SonarQube安装及使用
  8. ELO(埃洛匹配分制度)Java篇
  9. win7计算机怎样共享的打印机,两台win7电脑如何共享打印机
  10. 爬取manhua.fzdm.com上的妖尾漫画