# modprobe snd-usb-audio fails using kernel modules [SOLVED]

## HackingM2

I have a strange problem.  I have been using ALSA modules from the kernel for some time without issue.  I know they worked on gentoo sources 2.6.13.

They still sort of work now.  Only with one problem, snd-usb-audio fails to load.

```
# modprobe snd-usb-audio

WARNING: Error inserting snd_hwdep (/lib/modules/2.6.14-gentoo-r2/kernel/sound/core/snd-hwdep.ko): Unknown symbol in module, or unknown parameter (see dmesg)WARNING: Error inserting snd_rawmidi (/lib/modules/2.6.14-gentoo-r2/kernel/sound/core/snd-rawmidi.ko): Unknown symbol in module, or unknown parameter (see dmesg)

WARNING: Error inserting snd_usb_lib (/lib/modules/2.6.14-gentoo-r2/kernel/sound/usb/snd-usb-lib.ko): Unknown symbol in module, or unknown parameter (see dmesg)

FATAL: Error inserting snd_usb_audio (/lib/modules/2.6.14-gentoo-r2/kernel/sound/usb/snd-usb-audio.ko): Unknown symbol in module, or unknown parameter (see dmesg)
```

As promised dmesg has more info...

```
snd_hwdep: disagrees about version of symbol snd_info_register

snd_hwdep: Unknown symbol snd_info_register

snd_hwdep: disagrees about version of symbol snd_info_create_module_entry

snd_hwdep: Unknown symbol snd_info_create_module_entry

snd_hwdep: disagrees about version of symbol snd_ctl_unregister_ioctl_compat

snd_hwdep: Unknown symbol snd_ctl_unregister_ioctl_compat

snd_hwdep: disagrees about version of symbol snd_info_free_entry

snd_hwdep: Unknown symbol snd_info_free_entry

snd_hwdep: disagrees about version of symbol snd_unregister_oss_device

snd_hwdep: Unknown symbol snd_unregister_oss_device

snd_hwdep: disagrees about version of symbol snd_register_oss_device

snd_hwdep: Unknown symbol snd_register_oss_device

snd_hwdep: disagrees about version of symbol snd_ctl_register_ioctl

snd_hwdep: Unknown symbol snd_ctl_register_ioctl

snd_hwdep: disagrees about version of symbol snd_card_file_add

snd_hwdep: Unknown symbol snd_card_file_add

snd_hwdep: disagrees about version of symbol snd_unregister_device

snd_hwdep: Unknown symbol snd_unregister_device

snd_hwdep: disagrees about version of symbol snd_device_new

snd_hwdep: Unknown symbol snd_device_new

snd_hwdep: disagrees about version of symbol snd_ctl_unregister_ioctl

snd_hwdep: Unknown symbol snd_ctl_unregister_ioctl

snd_hwdep: disagrees about version of symbol snd_ctl_register_ioctl_compat

snd_hwdep: Unknown symbol snd_ctl_register_ioctl_compat

snd_hwdep: disagrees about version of symbol snd_card_file_remove

snd_hwdep: Unknown symbol snd_card_file_remove

snd_hwdep: disagrees about version of symbol snd_info_unregister

snd_hwdep: Unknown symbol snd_info_unregister

snd_hwdep: disagrees about version of symbol snd_register_device

snd_hwdep: Unknown symbol snd_register_device

snd_rawmidi: disagrees about version of symbol snd_info_register

snd_rawmidi: Unknown symbol snd_info_register

snd_rawmidi: disagrees about version of symbol snd_ctl_unregister_ioctl_compat

snd_rawmidi: Unknown symbol snd_ctl_unregister_ioctl_compat

snd_rawmidi: disagrees about version of symbol snd_info_free_entry

snd_rawmidi: Unknown symbol snd_info_free_entry

snd_rawmidi: disagrees about version of symbol snd_unregister_oss_device

snd_rawmidi: Unknown symbol snd_unregister_oss_device

snd_rawmidi: disagrees about version of symbol snd_register_oss_device

snd_rawmidi: Unknown symbol snd_register_oss_device

snd_rawmidi: disagrees about version of symbol snd_ctl_register_ioctl

snd_rawmidi: Unknown symbol snd_ctl_register_ioctl

snd_rawmidi: disagrees about version of symbol snd_card_file_add

snd_rawmidi: Unknown symbol snd_card_file_add

snd_rawmidi: disagrees about version of symbol snd_unregister_device

snd_rawmidi: Unknown symbol snd_unregister_device

snd_rawmidi: disagrees about version of symbol snd_device_new

snd_rawmidi: Unknown symbol snd_device_new

snd_rawmidi: disagrees about version of symbol snd_ctl_unregister_ioctl

snd_rawmidi: Unknown symbol snd_ctl_unregister_ioctl

snd_rawmidi: disagrees about version of symbol snd_ctl_register_ioctl_compat

snd_rawmidi: Unknown symbol snd_ctl_register_ioctl_compat

snd_rawmidi: disagrees about version of symbol snd_info_create_card_entry

snd_rawmidi: Unknown symbol snd_info_create_card_entry

snd_rawmidi: disagrees about version of symbol snd_card_file_remove

snd_rawmidi: Unknown symbol snd_card_file_remove

snd_rawmidi: disagrees about version of symbol snd_info_unregister

snd_rawmidi: Unknown symbol snd_info_unregister

snd_rawmidi: disagrees about version of symbol snd_register_device

snd_rawmidi: Unknown symbol snd_register_device

snd_usb_lib: Unknown symbol snd_rawmidi_receive

snd_usb_lib: Unknown symbol snd_rawmidi_transmit_empty

snd_usb_lib: Unknown symbol snd_rawmidi_transmit

snd_usb_lib: Unknown symbol snd_rawmidi_transmit_ack

snd_usb_lib: Unknown symbol snd_rawmidi_transmit_peek

snd_usb_lib: Unknown symbol snd_rawmidi_new

snd_usb_lib: Unknown symbol snd_rawmidi_set_ops

snd_usb_audio: disagrees about version of symbol snd_ctl_add

snd_usb_audio: Unknown symbol snd_ctl_add

snd_usb_audio: disagrees about version of symbol snd_pcm_new

snd_usb_audio: Unknown symbol snd_pcm_new

snd_usb_audio: disagrees about version of symbol snd_card_register

snd_usb_audio: Unknown symbol snd_card_register

snd_usb_audio: disagrees about version of symbol snd_card_free

snd_usb_audio: Unknown symbol snd_card_free

snd_usb_audio: disagrees about version of symbol snd_card_proc_new

snd_usb_audio: Unknown symbol snd_card_proc_new

snd_usb_audio: Unknown symbol snd_usb_create_midi_interface

snd_usb_audio: disagrees about version of symbol snd_pcm_stop

snd_usb_audio: Unknown symbol snd_pcm_stop

snd_usb_audio: disagrees about version of symbol snd_pcm_hw_constraint_minmax

snd_usb_audio: Unknown symbol snd_pcm_hw_constraint_minmax

snd_usb_audio: disagrees about version of symbol snd_ctl_free_one

snd_usb_audio: Unknown symbol snd_ctl_free_one

snd_usb_audio: disagrees about version of symbol snd_ctl_find_id

snd_usb_audio: Unknown symbol snd_ctl_find_id

snd_usb_audio: disagrees about version of symbol snd_ctl_new1

snd_usb_audio: Unknown symbol snd_ctl_new1

snd_usb_audio: disagrees about version of symbol snd_component_add

snd_usb_audio: Unknown symbol snd_component_add

snd_usb_audio: disagrees about version of symbol snd_pcm_hw_rule_add

snd_usb_audio: Unknown symbol snd_pcm_hw_rule_add

snd_usb_audio: disagrees about version of symbol snd_card_new

snd_usb_audio: Unknown symbol snd_card_new

snd_usb_audio: disagrees about version of symbol snd_pcm_lib_ioctl

snd_usb_audio: Unknown symbol snd_pcm_lib_ioctl

snd_usb_audio: Unknown symbol snd_hwdep_new

snd_usb_audio: disagrees about version of symbol snd_pcm_new_stream

snd_usb_audio: Unknown symbol snd_pcm_new_stream

snd_usb_audio: disagrees about version of symbol snd_ctl_notify

snd_usb_audio: Unknown symbol snd_ctl_notify

snd_usb_audio: disagrees about version of symbol snd_pcm_set_ops

snd_usb_audio: Unknown symbol snd_pcm_set_ops

snd_usb_audio: disagrees about version of symbol snd_device_new

snd_usb_audio: Unknown symbol snd_device_new

snd_usb_audio: disagrees about version of symbol snd_card_disconnect

snd_usb_audio: Unknown symbol snd_card_disconnect

snd_usb_audio: disagrees about version of symbol snd_pcm_period_elapsed

snd_usb_audio: Unknown symbol snd_pcm_period_elapsed

snd_usb_audio: Unknown symbol snd_usbmidi_disconnect
```

Assuming that it is a problem with versions of modules I have tried the following...

```
# ls /usr/src/ -l

lrwxrwxrwx   1 root root   22 Dec  6 19:33 linux -> linux-2.6.14-gentoo-r2

drwxr-xr-x  19 root root 1304 Dec  6 21:45 linux-2.6.14-gentoo-r2

# uname -a

Linux max 2.6.14-gentoo-r2 #3 PREEMPT Tue Dec 6 21:14:27 GMT 2005 x86_64 AMD Athlon(tm) 64 Processor 3500+ AuthenticAMD GNU/Linux

# rm -rf /lib/modules/2.6.14-gentoo-r2

# cd /usr/src/linux

# make clean && make && make modules_install

# mount /boot

# cp arch/x86_64/boot/bzImage /boot/kernel-2.6.14-gentoo-r2-max1

# cp .config /boot/config-2.6.14-gentoo-r2-max1

# umount /boot

# reboot

# modprobe snd-usb-audio
```

...same result as before.  The rest of my ALSA setup works fine.  

```
# lsmod

Module                  Size  Used by

nfs                   212200  3

nfsd                  261512  13

exportfs                6912  1 nfsd

lockd                  69392  3 nfs,nfsd

sunrpc                163080  10 nfs,nfsd,lockd

it87                   25568  0

hwmon_vid               2944  1 it87

eeprom                  8464  0

i2c_isa                 6080  1 it87

lp                     13576  0

vmnet                  42776  3

vmmon                 147628  0

eth1394                22032  0

ohci1394               35468  0

ieee1394              366072  2 eth1394,ohci1394

i2c_nforce2             8064  0

snd_pcm_oss            56480  0

snd_mixer_oss          19008  1 snd_pcm_oss

snd_seq_oss            37760  0

snd_seq_midi_event      8704  1 snd_seq_oss

snd_seq                60416  4 snd_seq_oss,snd_seq_midi_event

snd_seq_device         10064  2 snd_seq_oss,snd_seq

snd_intel8x0           36584  1

snd_ac97_codec        107416  1 snd_intel8x0

snd_ac97_bus            2880  1 snd_ac97_codec

snd_pcm               102732  3 snd_pcm_oss,snd_intel8x0,snd_ac97_codec

snd_timer              27464  2 snd_seq,snd_pcm

snd                    67368  11 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer

soundcore              11872  1 snd

snd_page_alloc         11984  2 snd_intel8x0,snd_pcm

realtime               12552  0

ppp_generic            29088  0

slhc                    7808  1 ppp_generic

pwc                    52300  0

videodev               12224  1 pwc

usbhid                 50208  0

nvidia               4854736  18

ath_pci                65960  0

ath_rate_onoe          10832  1 ath_pci

wlan                  121428  3 ath_pci,ath_rate_onoe

ath_hal               172656  2 ath_pci

i2c_dev                12480  0

i2c_core               25368  5 it87,eeprom,i2c_isa,i2c_nforce2,i2c_dev
```

My kernel config is as follows...

```
<M> Sound card support  

     Advanced Linux Sound Architecture  ---> 

         <M> Advanced Linux Sound Architecture

         <M>   Sequencer support

         < >     Sequencer dummy client (NEW)

         <M>   OSS Mixer API

         <M>   OSS PCM (digital audio) API

         [*]   OSS Sequencer API

         <M>   RTC Timer support

         [*]     Use RTC as default sequencer timer (NEW)

         [ ]   Verbose printk

         [ ]   Debug

       PCI devices  --->

           <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller     

       USB devices  --->

           <M> USB Audio/MIDI driver

```

I have searched the forums and found no mention of this problem.  Any advice would be most welcome.

SOLVED

I have solved this problem.  For some reason the following kernel options will cause this error...

```
General setup  --->   

    [*] Automatically append version information to the version string

Loadable module support  ---> 

    [*] Module versioning support (EXPERIMENTAL)
```

Turn them off and all works fine.  Looks to be a kernel bug.  I shall see if it is already reported and if not post a report to the correct list.

On a side note I have checked and these get activated automatically by a make oldconfig without asking the user.  I guess this is why we are warned not to use it when upgrading kernel versions for anything other than minor releases.    :Wink: 

----------

## philip

I have a similar problem as yours. I have in-kernel ALSA. snd modules fail to load at boot.

I have made exactly the same things as you have done in order to fix the problem, including disabling the two kernel options, as of above. But my problem persist:

```

# modprobe snd

FATAL: Error inserting snd (/lib/modules/2.6.14-gentoo-r2/kernel/sound/core/snd.ko): Unknown symbol in module, or unknown parameter (see dmesg)

#

```

If anyone has an idea, please help[/code]

----------

