# Unable to load ALSA modules after system update

## neoch

After updating my Gentoo box (emerge world -uDav), ALSA modules are not loaded anymore.

When I try to manually load the card module, it fails:

```
# modprobe snd-emu10k1

FATAL: Module snd-emu10k1 not found
```

So, i tried

```
# insmod /lib/modules/3.3.2-gentoo/kernel/sound/pci/emu10k1/snd-emu10k1.ko

Error: could not insert module /lib/modules/3.3.2-gentoo/kernel/sound/pci/emu10k1/snd-emu10k1.ko: Unknown symbol in module
```

and I got some details in dmesg:

```
[ 2386.952421] snd_emu10k1: Unknown symbol snd_rawmidi_receive (err 0)

[ 2386.952434] snd_emu10k1: Unknown symbol snd_rawmidi_transmit (err 0)

[ 2386.952441] snd_emu10k1: Unknown symbol snd_ac97_write_cache (err 0)

[ 2386.952450] snd_emu10k1: Unknown symbol snd_ac97_resume (err 0)

[ 2386.952460] snd_emu10k1: Unknown symbol snd_seq_device_new (err 0)

[ 2386.952484] snd_emu10k1: Unknown symbol snd_ac97_mixer (err 0)

[ 2386.952496] snd_emu10k1: Unknown symbol snd_ac97_bus (err 0)

[ 2386.952520] snd_emu10k1: Unknown symbol snd_ac97_suspend (err 0)

[ 2386.952532] snd_emu10k1: Unknown symbol __snd_util_mem_alloc (err 0)

[ 2386.952541] snd_emu10k1: Unknown symbol snd_util_memhdr_new (err 0)

[ 2386.952552] snd_emu10k1: Unknown symbol snd_hwdep_new (err 0)

[ 2386.952576] snd_emu10k1: Unknown symbol snd_ac97_update (err 0)

[ 2386.952590] snd_emu10k1: Unknown symbol snd_rawmidi_new (err 0)

[ 2386.952602] snd_emu10k1: Unknown symbol __snd_util_mem_free (err 0)

[ 2386.952608] snd_emu10k1: Unknown symbol snd_rawmidi_set_ops (err 0)

[ 2386.952619] snd_emu10k1: Unknown symbol snd_util_memhdr_free (err 0)

[ 2386.952635] snd_emu10k1: Unknown symbol __snd_util_memblk_new (err 0)

[ 2386.952646] snd_emu10k1: Unknown symbol snd_ac97_read (err 0)
```

It seems the system is now unable to load modules dependencies by itself  :Evil or Very Mad: 

I was eventually able to load the module by manually loading all dependencies first:

```
# cd /lib/modules/3.3.2-gentoo/kernel/sound/

# insmod ./core/snd.ko

# insmod ./core/seq/snd-seq-device.ko

# insmod ./core/snd-rawmidi.ko

# insmod ./core/snd-page-alloc.ko

# insmod ./core/snd-pcm.ko

# insmod ./ac97_bus.ko

# insmod ./pci/ac97/snd-ac97-codec.ko

# insmod ./synth/snd-util-mem.ko

# insmod ./core/snd-timer.ko

# insmod ./core/snd-hwdep.ko

# insmod ./pci/emu10k1/snd-emu10k1.ko
```

Any idea why modules are not loaded anymore and how could I fix this?

I'm using kernel 3.3.2-gentoo on ~amd64, alsa-utils-1.0.25-r2, udev-182.

----------

## Apheus

Maybe you have modules.dep missing/incomplete/damaged.

----------

## Jaglover

 *Quote:*   

> Unknown symbol in module

 You will get this error when module and kernel versions do not match. In other words, if you are running one version of kernel and try to insert modules built for another version of kernel.

----------

## neoch

Thanks for the replies.

 *Quote:*   

> Maybe you have modules.dep missing/incomplete/damaged.

 

modules.dep seems fine:

```
# uname -r

3.3.2-gentoo

# grep snd-emu10k1 /lib/modules/3.3.2-gentoo/modules.dep

kernel/sound/pci/emu10k1/snd-emu10k1.ko: kernel/sound/core/snd-hwdep.ko kernel/sound/synth/snd-util-mem.ko kernel/sound/pci/ac97/snd-ac97-codec.ko kernel/sound/ac97_bus.ko kernel/sound/core/snd-rawmidi.ko kernel/sound/core/seq/snd-seq-device.ko kernel/sound/core/snd-pcm.ko kernel/sound/core/snd-page-alloc.ko kernel/sound/core/snd-timer.ko kernel/sound/core/snd.ko

kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko: kernel/sound/synth/emux/snd-emux-synth.ko kernel/sound/core/seq/snd-seq-midi-emul.ko kernel/sound/pci/emu10k1/snd-emu10k1.ko kernel/sound/core/snd-hwdep.ko kernel/sound/synth/snd-util-mem.ko kernel/sound/pci/ac97/snd-ac97-codec.ko kernel/sound/ac97_bus.ko kernel/sound/core/seq/snd-seq-virmidi.ko kernel/sound/core/snd-rawmidi.ko kernel/sound/core/seq/snd-seq-midi-event.ko kernel/sound/core/seq/snd-seq.ko kernel/sound/core/seq/snd-seq-device.ko kernel/sound/core/snd-pcm.ko kernel/sound/core/snd-page-alloc.ko kernel/sound/core/snd-timer.ko kernel/sound/core/snd.ko
```

 *Quote:*   

> You will get this error when module and kernel versions do not match. In other words, if you are running one version of kernel and try to insert modules built for another version of kernel.

 

I removed everything from /lib/modules/, I recompiled and installed latest kernel (with modules), rebooted, but I still have the same problem.

On my system there is only one version of the kernel and the installed modules are for this version of the kernel...

Any other idea?

Is there a way to check the path of the module modprobe is trying to insert?

Thanks

----------

## Jaglover

uname -v

Does timestamp match your kernel build? We have seen here weirdest boot configurations, maybe you are not booting the kernel you think you are? Or maybe you just forgot to mount /boot before installing? Can happen to anyone.

----------

## neoch

Timestamp match. I tried to install an older kernel, but with the same result.

Eventually I downgraded udev-182-r3 down to udev-171-r5, removed kmod and replaced with module-init-tools. I rebooted my system a everything works fine: all modules are now automatically loaded   :Very Happy: 

The problem seems thus the modprobe provided by the kmod package: udev finds the hardware, but fails trying to load the modules...

After some digging, I noticed that ALSA drivers were not the only drivers that were not loaded. Firewire drivers were not loaded neither, like all drivers related to my Hauppauge WinTV card. Even USB drivers were only partially loaded (EHCI drivers for instance were not loaded). Only network card driver and graphic card driver were successfully loaded...

Is there any known problem with the kmod package? How can I track down the problem? Should I open a bug?

----------

## Jaglover

So you had two different problems? The first one, modules failed to load with an error, and the second problem is they do not autoload? Regarding second one, you should put them into /etc/conf.d/modules.

----------

## jam666

I confirm the problem.  Had absolutely the same system behavior trying to upgrade to gentoo-sources-3.3.0 / zen-sources-3.3.2 and higher (amd64 unstable).

Kernels below 3.3.0 did not reveal the problem (last used zen-sources-3.2.12).

The symptoms are: udev cannot load most kernel modules. Manual modprobe says "Module not found", insmode shows errors of missing symbols. In my case none of the following modules loaded: usb (ohci, ehci, common), audio (ca0106, ac97, etc), ethernet (r8169), video (agpgart, nvidia) and many others (k10temp, parport, firewire, etc).

I tried the offered above - downgraded udev to a stable version (had also to downgrade consolekit to keep the dependencies), removed kmod and installed module-init-tools.

After that I managed to boot the system successfully, having all the necessary hardware founnd by udev and necessary modules loaded.

1. Thank You for that way-around tip.

2. As soon as there are 2 cases of the same problem I think it is enough for the appropriate bug-report, as soon as this problem seem not to be reported yet (thorough googling did not reveal anything alike).

Best regards.

----------

## rcb1974

I am experiencing the exact same problem.  I am only able to load 4 out of 20+ modules successfully.  All the remaining modules give me a "FATAL: module x not found" error when I modprobe them, even though they are in the /lib/modules/3.3.4 folder and even after running depmod.  When I use the insmod command on the *.ko file, I get the same "unknown symbol in module" error that the original poster mentions.

I am in the process of rebuilding a new kernel, 3.3.5, and the modules that go with it.  Hopefully this problem will go away after that.  I am also using the new udev.

----------

## Dominique_71

I get similar issues with a 3.4.0 kernel, udev.186 and kmod-9-r3. Only the audio part of the sound cards are loading, I get no MIDI device, and snd-aloop is not loaded. If I modprobe snd-aloop, it work.

As a 3.4.5 kernel is available, I will first try it.

----------

## Dominique_71

Same result with kernel 3.4.5. But after adding snd-aloop and snd-virmidi in the modules line of /etc/conf.d/modules, every thing is working fine.

But, it should be another way than adding virmidi in this file to get MIDI to work...

EDIT: I think adding snd-seq should do it.

----------

## Dominique_71

A little update. Not only the sound cards related modules have to be compiled as modules for the index option to work, but also everything that is sound support related must be compiled as module, including "Sound support" (the soundcore module).

Otherwise, you will have to pass the index parameters as kernel boot option in grub.

----------

## superwutze

hello!

i guess i have the same problem as described here: https://forums.gentoo.org/viewtopic-p-7244774.html

as your thread has been quiet for some time may i asked if there was a solution or do the problems still pereisit?

regards,

andy

----------

