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

covici at ccs.covici.com covici at ccs.covici.com
Wed Jan 5 13:50:53 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.
Well, the saga goes on -- after all that the system crashes -- not sure
whether its a loop or actual crash the minute it says you are the only
one in this conference and the play is the last thing in the log file.
What would be the best way to debug this?  I can see the compiler flags
and I can put the debug flags on and do no optomize, but if its a loop,
would that be of any use?


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