insmod 时出现的错误

情况1.   从另外一个版本中为了测试模块拷贝到本系统中

现象: sudo insmod ft52x6_ts.ko
insmod: error inserting 'ft52x6_ts.ko': -1 Invalid module format

原因: (1). 所用内核源码版本号与目前使用的内核不同;
(2). 编译目标不同,比如编译的是i686,装好的是i386;
(3). 使用编译器版本不同;
(4). 目前使用的内核不是自己编译出来的。

解决办法: 暂无

 

情况2. 安装touchscreen的参考代码,使用安装模块的方法

现象: insmod ft52x6_ts.ko
insmod: init_module 'ft52x6_ts.ko' failed (No such device)

原因1: 驱动初始化使用的设备地址和Board初始化设备地址不匹配造成的

解决办法:更改Board初始化设备使用TS厂商提供的地址

原因2:驱动加载顺序有错,也会导致这样的错误(例,加载ppp_mppe时,如果没加载sha1_generic,便提示No such device)

解决方法:明确依赖关系,有时需要差些资料才行。

 

情况3..在插入模块的时候出现如下问题:
# insmod globalmem.ko insmod: error inserting 'globalmem.ko': -1 Device or resource busy ANSWER:主设备号被占用了,换另一个。
你把globalmem.c文件里面的宏定义那里改为226或其他,然后再编译就可以插入了!
特别注意:      如果换了主设备号以后,下面接着创建节点的时候也要该,否则出现下面错误:
# mknod /dev/globalmem c 254 0    /*这里的254跟已修改的主设备号228不一致*/# echo 'hello world' > /dev/globalmem/bin/sh: can't create /dev/globalmem: No such device or address
解决办法:
# rm /dev/globalmem # mknod /dev/globalmem c 226 0# echo 'hello world' > /dev/globalmem written 12 bytes(s) from 0

部分来源:http://blog.csdn.net/linuxdriverdeveloper/article/details/7265018

你可能感兴趣的:(Linux)