[Home]

Summary:DAHLIN-00342: Dahdi modules build but not load for kernel 3.17
Reporter:Colin Beckingham (colbec)Labels:
Date Opened:2014-10-22 08:14:38Date Closed:2014-10-23 12:50:54
Priority:MajorRegression?
Status:Closed/CompleteComponents:dahdi (the module)
Versions:2.10.0.1 Frequency of
Occurrence
Constant
Related
Issues:
Environment:openSUSE 11.3Attachments:
Description:Dahdi configuration works fine in kernel 3.0.
Upgraded kernel to 3.17,  downloaded latest dahdi linux complete 2.10.0.1
Build completed without error.
Restart asterisk, startup is good, SIP works, all dahdi phones dead.

Modules will not load into kernel:
#insmod /lib/modules/3.17.0-0.5-desktop/dahdi/dahdi.ko
insmod: error inserting '/lib/modules/3.17.0-0.5-desktop/dahdi/dahdi.ko': -1 Unknown symbol in module
# insmod /lib/modules/3.17.0-0.5-desktop/dahdi/wctdm.ko
insmod: error inserting '/lib/modules/3.17.0-0.5-desktop/dahdi/wctdm.ko': -1 Unknown symbol in module

Kernel custom build from previous .config file. Still possible it is my error.
Comments:By: Russ Meyerriecks (rmeyerriecks) 2014-10-22 15:02:13.336-0500

This patch just went onto master which should fix this issue:

http://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=commitdiff;h=b9a8000bbd1b6120f22627c105a2c2194dcc793d

Could you try this patch and report back if it works for you?

*EDIT*

Actually, I just looked at your description further, usually unknown symbol errors come from trying to load a module that wasn't compiled against the running kernel version.

By: Colin Beckingham (colbec) 2014-10-22 16:46:52.653-0500

~> uname -r
3.17.0-0.5-desktop

I'm pretty sure it is ok, this is a custom compiled kernel so the source is definitely there, and the right kernel is running.

I will try the patch tomorrow, not quite sure what to do but will find out.

By: Colin Beckingham (colbec) 2014-10-23 03:17:42.147-0500

I'm assuming that since the patch was committed to master that if I simply clone tools and linux code into new fresh directories that this will include the new patch. If I am wrong then let me know.

No change after update.
Performed:
- uname -r to ensure we are in kernel 3.17...
- erase git clone dirs for tools and linux
- clone git for tools and linux
- for tools, linux (configure) make and make install - all ok
- to asterisk 11, configure make make install - asterisk detects change in dahdi, recompiles dahdi.c stuff


# insmod /lib/modules/3.17.0-0.5-desktop/dahdi/wctdm.ko
insmod: error inserting '/lib/modules/3.17.0-0.5-desktop/dahdi/wctdm.ko': -1 Unknown symbol in module
# insmod /lib/modules/3.17.0-0.5-desktop/dahdi/dahdi.ko
insmod: error inserting '/lib/modules/3.17.0-0.5-desktop/dahdi/dahdi.ko': -1 Unknown symbol in module

dmesg is showing:
[ 2756.892386] wctdm: Unknown symbol _dahdi_receive (err 0)
[ 2756.892427] wctdm: Unknown symbol dahdi_create_device (err 0)
[ 2756.892449] wctdm: Unknown symbol dahdi_qevent_lock (err 0)
[ 2756.892470] wctdm: Unknown symbol dahdi_hooksig (err 0)
[ 2756.892499] wctdm: Unknown symbol dahdi_unregister_device (err 0)
[ 2756.892519] wctdm: Unknown symbol dahdi_register_device (err 0)
[ 2756.892569] wctdm: Unknown symbol __dahdi_ec_chunk (err 0)
[ 2756.892595] wctdm: Unknown symbol dahdi_alarm_channel (err 0)
[ 2756.892617] wctdm: Unknown symbol dahdi_free_device (err 0)
[ 2756.892643] wctdm: Unknown symbol _dahdi_transmit (err 0)
[ 2771.889164] dahdi: Unknown symbol crc_ccitt_table (err 0)
[ 3659.449409] dahdi: Unknown symbol crc_ccitt_table (err 0)
[ 3677.723317] wctdm: Unknown symbol _dahdi_receive (err 0)
[ 3677.723357] wctdm: Unknown symbol dahdi_create_device (err 0)
[ 3677.723379] wctdm: Unknown symbol dahdi_qevent_lock (err 0)
[ 3677.723400] wctdm: Unknown symbol dahdi_hooksig (err 0)
[ 3677.723429] wctdm: Unknown symbol dahdi_unregister_device (err 0)
[ 3677.723450] wctdm: Unknown symbol dahdi_register_device (err 0)
[ 3677.723500] wctdm: Unknown symbol __dahdi_ec_chunk (err 0)
[ 3677.723525] wctdm: Unknown symbol dahdi_alarm_channel (err 0)
[ 3677.723547] wctdm: Unknown symbol dahdi_free_device (err 0)
[ 3677.723573] wctdm: Unknown symbol _dahdi_transmit (err 0)
[72091.617899] wctdm: Unknown symbol _dahdi_receive (err 0)
[72091.617941] wctdm: Unknown symbol dahdi_create_device (err 0)
[72091.617963] wctdm: Unknown symbol dahdi_qevent_lock (err 0)
[72091.617985] wctdm: Unknown symbol dahdi_hooksig (err 0)
[72091.618328] wctdm: Unknown symbol dahdi_unregister_device (err 0)
[72091.618360] wctdm: Unknown symbol dahdi_register_device (err 0)
[72091.618421] wctdm: Unknown symbol __dahdi_ec_chunk (err 0)
[72091.618448] wctdm: Unknown symbol dahdi_alarm_channel (err 0)
[72091.618470] wctdm: Unknown symbol dahdi_free_device (err 0)
[72091.618499] wctdm: Unknown symbol _dahdi_transmit (err 0)
[72505.212785] dahdi: Unknown symbol crc_ccitt_table (err 0)

Checked config for kernel, crc_ccitt is generated as module.



By: Colin Beckingham (colbec) 2014-10-23 11:21:54.160-0500

I entered further information as a comment to DAHLIN-342. The comment/feedback thing has me a bit confused.

By: Shaun Ruffell (sruffell) 2014-10-23 11:29:44.902-0500

Colin, is crc_ccitt loaded? If not can you load it by hand and then load dahdi?

It appears from this that the installation on your distribution did not generate the module dependencies file properly, so that when 'modprobe dahdi' was run, crc_ccitt was not loaded as a dependency.  This is done by the kernel sources in the distribution and not by code in DAHDI itself.

By: Colin Beckingham (colbec) 2014-10-23 12:08:16.198-0500

Bingo! crc_ccitt was not loaded.

Performed:
modprobe crc_ccitt
modprobe wctdm
modprobe dahdi
dahdi_cfg -v  --- configured my 2 channels OK
recompiled and restarted asterisk
Dahdi phones now recognized and working.

Thanks. I will try to find out why crc_ccitt was not loading.

By: Shaun Ruffell (sruffell) 2014-10-23 12:29:13.997-0500

Ahh..you know, I didn't notice this before, but in your original report you said you did an "insmod".  insmod does not consult modules.dep to load the dependency files, only modprobe does that.  Perhaps that was the problem all along?

By: Colin Beckingham (colbec) 2014-10-23 12:34:54.310-0500

Live and learn. I have updated my kernel frequently and each time it seems to me that the process has taken care of crc_ccitt for me transparently. The only reason I decided to resort to insmod was that my phones had no dialtone. Systems generally take care of so much for us automatically, that when they don't we forget which commands are the most useful. :)

By: Colin Beckingham (colbec) 2014-10-23 12:40:54.699-0500

I see that I had this problem, or similar (https://issues.asterisk.org/jira/browse/DAHLIN-247) about three years ago. I guess I had forgotten. Mea culpa. Must try to remember this time.

By: Shaun Ruffell (sruffell) 2014-10-23 12:50:54.471-0500

:) I too didn't remember that we had a conversation along these lines before either. I'm just glad there isn't a real problem here.