[asterisk-users] problems inserting dahdi modules using Debian Leni

covici at ccs.covici.com covici at ccs.covici.com
Wed Jan 5 13:22:20 CST 2011


Shaun Ruffell <sruffell at digium.com> wrote:

> 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.

I did try that and it worked for a while and locked up the system!  But
I will do a make clean, etc in dahdi and see if that does anything.

-- 
Your life is like a penny.  You're going to lose it.  The question is:
How do
you spend it?

         John Covici
         covici at ccs.covici.com



More information about the asterisk-users mailing list