首页 > 代码库 > 安装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