SARK UCS/MVP Development Note... Asterisk, DAHDI and the Kernel drivers

An explanation of why the "kmdl" issue is critical and a suggested (temporary) workaround.

When we look at the questions which come into the Forum a good deal of them are of the form "I yum upgraded my system and SAIL has stopped working". Actually, SAIL is pretty resilient to these upgrades but Asterisk, or more precisely, Zaptel/DAHDI isn't. This has to do with the fact that the Digium card drivers need to be loaded as part of the kernel (using insmod or modprobe) and the drivers themselves are actually stored in the kernel directory structure (usually in /lib/modules/kernel-release/extra or /lib/modules/kernel-release/update/extra). When the kernel changes (as it often does after a yum upgrade), Asterisk cannot find its drivers anymore (because they are in the directory structure of the old kernel, but not in the new one). ATrpms try to minimise the work they have to do by separating Zaptel/DAHDI rpms into two parts; the core release (1.4.xx) and a kmdl release which just contains the kmods for a particular kernel.

Now, it is by no means guaranteed that ATrpms will have a kmdl release available for your particular kernel whenever you do a yum upgrade. So, before you run a yum update, use yum to check whether it will update the kernel by issuing the following console command...

[root@sam SPECS]# yum check-update | grep -i kernel
kernel.i686 2.6.9-78.0.13.EL smeupdates
kernel-smp.i686 2.6.9-78.0.13.EL smeupdates

You can now check ATrpms to see if the is a zaptel/DAHDI kmdl for the new kernel release before you do the yum update.

If you didn't do the check and you are now in trouble, the easiest thing to do is simply start your SME Server on the old kernel. When yum installs a new kernel it doesn't throw the old one away and you can usually just start SME on the old (previous) kernel by pressing the space bar when the penguin/SME server splash screen appears at boot time. This will show you a list of all of the available kernels and you can choose which one you wish to start.

If on the other hand you absolutely must run the new kernel for some reason (perhaps it fixes a big security hole) then you can usually get away with copying the contents of the /extra/ directory from the old kernel tree to the new one (at least until you can get hold of the correct kmdl rpm)...

cp -a /lib/modules/_old-kernel_/extra/* /lib/modules/`uname -r`/extra

This won't work if you have moved from an EL kernel to an ELsmp kernel, or vice versa, but for most other changes, you should get away with it. We don't recommend this practice and we certainly don't guarantee that it will work. You are on your own. If it breaks your SME install then you get to keep all of the pieces. However, suffice to say that it has thus far worked for us.

S

Topic revision: r3 - 02 Jun 2009 - 11:58:00 - TWikiAdminUser
 
    

This site is powered by the TWiki collaboration platformSARK SARKPBX and POLYGATE are registered trademarks of Aelintra Telecom Limited.
Ideas, requests, problems regarding SARK UCS/MVP? Send feedback