# [SOLVED] Passing Options to Kernel Modules

## Holysword

I'm trying to invert the default numbering that alsa gives to my cards (since the one which it sets by default is in fact HDMI...) according to this guide in here:

http://alsa.opensrc.org/MultipleCards

but I'm missing some pieces. According to the guide you just have to load the module with some specific options, having some information about both cards.

```
◢ jarvis ◣ ~ $  lspci -nn | grep -i audio

00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)

00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 04)
```

```
◢ jarvis ◣ ~ $  modinfo -p snd-hda-intel

index:Index value for Intel HD audio interface. (array of int)

id:ID string for Intel HD audio interface. (array of charp)

enable:Enable Intel HD audio interface. (array of bool)

model:Use the given board model. (array of charp)

position_fix:DMA pointer read method.(-1 = system default, 0 = auto, 1 = LPIB, 2 = POSBUF, 3 = VIACOMBO, 4 = COMBO). (array of int)

bdl_pos_adj:BDL position adjustment offset. (array of int)

probe_mask:Bitmask to probe codecs (default = -1). (array of int)

probe_only:Only probing and no codec initialization. (array of int)

jackpoll_ms:Ms between polling for jack events (default = 0, using unsol events only) (array of int)

single_cmd:Use single command to communicate with codecs (for debugging only). (bool)

enable_msi:Enable Message Signaled Interrupt (MSI) (bint)

patch:Patch file for Intel HD audio interface. (array of charp)

beep_mode:Select HDA Beep registration mode (0=off, 1=on) (default=1). (array of bool)

power_save:Automatic power-saving timeout (in second, 0 = disable). (xint)

power_save_controller:Reset controller in power save mode. (bool)

align_buffer_size:Force buffer and period sizes to be multiple of 128 bytes. (bint)

snoop:Enable/disable snooping (bool)
```

What I am missing here is how to actually use this information. I've added the line

```
options snd-hda-intel id=0c0c enable=0
```

in /etc/modprobe.d/alsa.conf, but I get no error and no effect. I've tried several combinations, with enable=false and id=8086:0c0c and etc. What is a "array of charp"? Which "id" is this, is it product id, vendor id, how do I find this id?How should I invoke these options? How can I test and see an error message like "invalid option" or something like that?

Thanks in advance

----------

## Holysword

I actually answered my question right here.

Adding the line

```
options snd-hda-intel id=0c0c enable=0
```

in /etc/modprobe.d/alsa.conf works flawlessly (there was a typo when I posted). Notice that, I managed to switch the default card before, using /etc/asoundrc, but it was giving me all sort of weird results. For instance, some applications would complain about no mixer being found, some audio applications would simply crash when other application tries to use the same audio card and etc. With the solution above I can use the default card normally and none of these errors occurred again.

----------

