首页 > 代码库 > 安装Dahdi模块出现insmod: can't insert 'dahdi.ko': unknown symbol in module or invalid parameter

安装Dahdi模块出现insmod: can't insert 'dahdi.ko': unknown symbol in module or invalid parameter

从Digitum官网下载的dahdi源代码,编译完成后,安装dadhi时出现错误:

#insmod dahdi.ko

dahdi: Unknown symbol crc_ccitt_table

insmod: can‘t insert ‘dahdi.ko‘: unknown symbol in module or invalid parameter

找原因...

于是查看虚拟机下是否有这个内核符号。

#cat /proc/kallsyms |grep "crc_ccitt"
f8caa260 r __ksymtab_crc_ccitt  [crc_ccitt]
f8caa278 r __kstrtab_crc_ccitt  [crc_ccitt]
f8caa270 r __kcrctab_crc_ccitt  [crc_ccitt]
f8caa268 r __ksymtab_crc_ccitt_table    [crc_ccitt]
f8caa282 r __kstrtab_crc_ccitt_table    [crc_ccitt]
f8caa274 r __kcrctab_crc_ccitt_table    [crc_ccitt]
f8caa292 r _rheldata    [crc_ccitt]
f8caa2a0 d __this_module        [crc_ccitt]
f8caa000 T crc_ccitt    [crc_ccitt]
说明虚拟机下有这个模块。然后继续寻找:

#modinfo crc_ccitt
filename:       /lib/modules/2.6.32-220.el6.i686/kernel/lib/crc-ccitt.ko
license:        GPL
description:    CRC-CCITT calculations
srcversion:     2294FCAD06D727386004EEB
depends:
vermagic:       2.6.32-220.el6.i686 SMP mod_unload modversions 686

原来crc_ccitt内核符号是在/lib/modules/2.6.32-220.el6.i686/kernel/lib/crc-ccitt.ko里面。

查看Linux内核源代码发现默认是没有编译进内核而是模块形式。

#make menuconfig

   ---> library routines

          --->CRC_CCITT funcitons

选中编译进内核即可或者设为模块形式。

于是拷贝这个模块到开发板中,先安装此模块,然后再安装dahdi.ko即可成功。

#insmod crc-ccitt.ko

#insmod dahdi.ko






安装Dahdi模块出现insmod: can't insert 'dahdi.ko': unknown symbol in module or invalid parameter