[asterisk-users] problems inserting dahdi modules using Debian Leni
Shaun Ruffell
sruffell at digium.com
Wed Jan 5 08:22:37 CST 2011
On 01/05/2011 05:02 AM, covici at ccs.covici.com wrote:
> Shaun Ruffell <sruffell at digium.com> wrote:
>
>> On 1/5/11 12:46 AM, covici at ccs.covici.com wrote:
>>> Shaun Ruffell<sruffell at digium.com> wrote:
>>>
>>>> On 1/4/11 9:26 PM, covici at ccs.covici.com wrote:
>>>>>
>>>>> Shaun Ruffell<sruffell at digium.com> wrote:
>>>>>
>>>>>> On 01/04/2011 05:09 PM, covici at ccs.covici.com wrote:
>>>>>>> Hi. I have a Debian Leni system with asterisk-1.8. I was trying to
>>>>>>> get meetme to work and it depends on dahdi, so I compiled dahdi-trunk
>>>>>>> and dahdi-tools-trunk, however, when trying to insert dahdi_dummy, it
>>>>>>> complained about symbol crc_ccitt_table, although the module was
>>>>>>> actually there in the kernel tree. So, I took the Debian source, and I
>>>>>>> had the config and I did make Bzimage, make modules and make
>>>>>>> modules_install, but dahdi_dummy still complains about the same symbol,
>>>>>>> it says no version for that symbol, so I am confused as to how to
>>>>>>> resolve this so I can modprobe dahdi_dummy properly.
>>>>>>>
>>>>>>> Any ideas would be appreciated.
>>>>>>>
>>>>>>
>>>>>> First off, I recommend using dahdi-linux 2.4.0 *without* compiling
>>>>>> dahdi_dummy. A dummy span is no longer needed for DAHDI to provide a
>>>>>> timing source to asterisk.
>>>>>>
>>>>>> But you'll still need crc_ccitt module for dahdi to load, so that
>>>>>> doesn't fix the problem as you describe here.
>>>>>>
>>>>>> If you rebuilt your kernel (which probably wasn't necessary...) you need
>>>>>> to reboot into the new kernel, then rebuild DAHDI against your running
>>>>>> kernel in order to load. Sounds like you have built DAHDI against one
>>>>>> version of the kernel and you're running against another one.
>>>>>>
>>>>>> Also...make sure you're using "modprobe" and not "insmod" to load the
>>>>>> driver...so that crc_ccitt will automatically be loaded as a dependency.
>>>>>>
>>>>>> For example you can see it automatically loaded here (and how
>>>>>> dahdi_dummy isn't needed for timing).
>>>>>>
>>>>>> ]# lsmod | grep crc_ccitt
>>>>>> ]# dahdi_test -c 1
>>>>>> Unable to open dahdi interface: No such file or directory
>>>>>> ]# modprobe dahdi
>>>>>> ]# lsmod | grep crc_ccitt
>>>>>> crc_ccitt 10240 1 dahdi
>>>>>> ]# dahdi_test -c 5
>>>>>> Opened pseudo dahdi interface, measuring accuracy...
>>>>>> 99.998% 99.981% 99.990% 99.990% 99.991%
>>>>>> --- Results after 5 passes ---
>>>>>> Best: 99.998 -- Worst: 99.981 -- Average: 99.990100, Difference: 99.990101
>>>>>> ]#
>>>>>
>>>>> I did rebuild the kernel, it has the same version and the same config as
>>>>> the old one and it did build a crc_ccitt module, and I even rebooted the
>>>>> system with the new modules, but no joy at all. Igot the same results
>>>>> whether I rebuilt the kernel or not, so this is what is confusing to me.
>>>>>
>>>>
>>>> What you get from the following commands:
>>>>
>>>> ]# lsmod | grep crc_ccitt
>>> I had to modprobe it, but I got:
>>> crc_ccitt 2080 0
>>>
>>>
>>>> ]# modinfo crc_ccitt
>>> filename: /lib/modules/2.6.26-2-686/kernel/lib/crc-ccitt.ko
>>> license: GPL
>>> description: CRC-CCITT calculations
>>> depends:
>>> vermagic: 2.6.26-2-686 SMP mod_unload modversions 686
>>>
>>>> ]# uname -a
>>> Linux eirasterisk 2.6.26-2-686 #3 SMP Tue Jan 4 15:29:02 EST 2011 i686
>>> GNU/Linux
>>>
>>>> ]# cat /proc/kallsyms | grep crc_ccitt
>>> 00000000 a crc-ccitt.c [crc_ccitt]
>>> f8c6d284 ? __mod_license69 [crc_ccitt]
>>> f8c6d290 ? __mod_description68 [crc_ccitt]
>>> f8c72250 r __ksymtab_crc_ccitt [crc_ccitt]
>>> f8c72268 r __kstrtab_crc_ccitt [crc_ccitt]
>>> f8c72260 r __kcrctab_crc_ccitt [crc_ccitt]
>>> f8c72258 r __ksymtab_crc_ccitt_table [crc_ccitt]
>>> f8c72272 r __kstrtab_crc_ccitt_table [crc_ccitt]
>>> f8c72264 r __kcrctab_crc_ccitt_table [crc_ccitt]
>>> 00000000 a crc-ccitt.mod.c [crc_ccitt]
>>> f8c6d2b4 ? __module_depends [crc_ccitt]
>>> f8c6d32c ? ____versions [crc_ccitt]
>>> f8c6d2c0 ? __mod_vermagic5 [crc_ccitt]
>>> f8c725e0 d __this_module [crc_ccitt]
>>> 3771b461 a __crc_crc_ccitt [crc_ccitt]
>>> f8c72000 T crc_ccitt [crc_ccitt]
>>> 75811312 a __crc_crc_ccitt_table [crc_ccitt]
>>> f8c72050 R crc_ccitt_table [crc_ccitt]
>>>
>>>> ]# modinfo dahdi
>>> filename: /lib/modules/2.6.26-2-686/dahdi/dahdi.ko
>>> version: SVN-trunk-r9614
>>> alias: dahdi_dummy
>>> license: GPL v2
>>> description: DAHDI Telephony Interface
>>> author: Mark Spencer<markster at digium.com>
>>> srcversion: A63E42F5ADDDE39777BCC24
>>> depends:
>>> vermagic: 2.6.26-2-686 SMP mod_unload modversions 686
>>> parm: debug:Sets debugging verbosity as a bitfield, to see
>>> general debugging set this to 1. To see RBS debugging set this to 32
>>> (int)
>>> parm: deftaps:int
>>> parm: max_pseudo_channels:Maximum number of pseudo
>>> channels. (int)
>>>
>>
>> And with the crc_ccitt module loaded you still cannot run "modprobe dahdi"?
>>
>> If so, what is the output of:
>>
>> []# cat /lib/modules/`uname -r`/modules.dep | grep dahdi.ko:
> /lib/modules/2.6.26-2-686/dahdi/dahdi.ko: /lib/modules/2.6.26-2-686/kernel/lib/crc-ccitt.ko
<snip>
>> and
>>
>> []# dmesg -c > /dev/null; modprobe dahdi; dmesg; lsmod | grep dahdi
> FATAL: Error inserting dahdi (/lib/modules/2.6.26-2-686/dahdi/dahdi.ko):
> Unknown symbol in module, or unknown parameter (see dmesg)
> [25991.968325] dahdi: no symbol version for crc_ccitt_table
> [25991.968330] dahdi: Unknown symbol crc_ccitt_table
>
>
So everything appears right. Have you "make clean; make install" in
your dahdi-linux directory since rebuilding and rebooting into your new
kernel?
Otherwise, since crc_ccitt_table is in your /proc/kallsyms, you could
just 'modprobe --force dahdi' to bypass the symbol version check.
--
Shaun Ruffell
Digium, Inc. | Linux Kernel Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: www.digium.com & www.asterisk.org
More information about the asterisk-users
mailing list