您的位置:首页 > 运维架构 > Linux

linux驱动模块加载出错insmod: error inserting './usb_driver.ko': -1 Unknown symbol in module

2013-05-18 16:38 1776 查看
今天开始调试usb驱动,第一步加载模块部分就开始报错。网上检索,有位朋友总结一些类似情况。本人遇到的恰好是第二种情况,以前不太注意,没出错也就不追究,这次遇到了就一并把一些情况在此记上一笔。转载如下:

insmod: error inserting 'cmos_driver.ko' : -1 File exists 和 insmod: error inserting './cmos_driver.ko': -1 Unknown symbol in module

最近在入手学习linux下驱动程序设计,自己以前也看过一些,但是从来没有自己亲自动手编写过,都只是看下别人写的代码,然后能看懂就觉得可以了,并没有去安装linux环境去亲自去编译模块,并插入到内核中。这几天,因为项目原因安装了Ubuntu10.04、12.04、CentOS6.3,觉得是时候动手来实践下了,可是一动手才发现真的不是那么回事!现将具体情况记录下,以备不时之需。

1、insmod: error inserting './cmos_driver.ko' : -1 File exists

这个问题一般情况下是因为要么你未卸载./cmos_driver.ko对应的模块,要么你是忘了在module_exit所对应的的函数里面忘了退出(此为笔者所遇见的问题),汗!,纠结了许久!解决方法很简单,在module_exit所对应的的函数里面增加一句,return即可!

2、insmod: error inserting './cmos_driver.ko': -1 Unknown symbol in module

此问题是需要添加MODULE_LICENSE(“GPL”),因为很多函数都是在GPL的许可下才可以运行的,故一般情况下都需要加上。此时可以使用dmesg -c来查看具体是什么符号的错误,以笔者的文件为例:

[ 4357.335618] cmos_driver: Unknown symbol __class_create

[ 4357.335680] cmos_driver: Unknown symbol class_destroy

[ 4357.335767] cmos_driver: Unknown symbol device_create

[ 4357.335858] cmos_driver: Unknown symbol device_destroy

此时,如上所述,在源文件中增加如上语句即可。

3、关于刚开始的时候出现I/O port is busy 的错误

此问题原因是这个驱动程序所使用的I/O端口已经被rtc使用了,故必须对源程序做一些修改,可以先查看自己的I/O端口使用情况,方法:cat /proc/ioports,以笔者的I/O端口为例,使用情况如下所示:

0000-001f : dma1

0020-0021 : pic1

0040-0043 : timer0

0050-0053 : timer1

0060-0060 : keyboard

0064-0064 : keyboard

0x70-0x71: rtc

0080-008f : dma page reg

00a0-00a1 : pic2

00c0-00df : dma2

00f0-00ff : fpu

0170-0177 : 0000:00:07.1

0170-0177 : ata_piix

01f0-01f7 : 0000:00:07.1

01f0-01f7 : ata_piix

02f8-02ff : serial

注意红色部分,而我们申请的端口就包含0x70和0x71,故会出现错误,这个问题可以通过使用函数check_region(start,count)来检查是否被使用,如果正在使用,可以释放掉,然后重新申请即可。具体实现如下:

status = check_region(0x70,4);

if(status == 0)

{

printk("The port are available in that range .\n");

}

else if(status == -EBUSY)

{

printk("The port are busy,and we are ready to free them!\n");

release_region(0x70,2);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐