[linux-audio-user] How to keep alsa sound card order with usb devices

John Anderson ardour at semiosix.com
Fri Dec 30 07:07:33 EST 2005


At last I figured this out, so I thought I'd share it.

My setup is as follows: a terratec ews88mt, a BCF2000, and an evolution 
eKeys 49 midi keyboard. kernel 2.6.14, Gentoo.

The following is a section from my /etc/modules.d/alsa (which ultimately 
ends up in /etc/modules.conf). The BCF2000 is always card 2 (in 
/proc/asound/cards) corresponding to /dev/snd/midiC2D0, the keyboard is 
always card 3 corresponding to /dev/snd/midiC3D0. This remains constant 
even if they aren't switched on when alsa starts, or if I switch the 
devices off and on.

# 1) ews88mt
alias snd-card-0 snd-ice1712
options snd-ice1712 index=0

# 2) virtual midi for softsynth and routing
alias snd-card-1 snd-virmidi
options snd-virmidi index=1

# 3) bcf2000
alias snd-card-2 snd-usb-audio
options snd-usb-audio index=2 vid=0x1397 pid=0x00bc

# 4) evolution keyboard
alias snd-card-3 snd-usb-audio
options snd-usb-audio index=3 vid=0x0a4d pid=0x0090

#Set this to the correct number of cards.
options snd cards_limit=4

The key to this is the vid (Vendor id) and pid (product id) parameters 
for snd-usb-audio. Which in usb-speak are idVendor and idProduct, 
respectively. The values for these can be found using lsusb -v, which on 
my system gives the following:

Bus 001 Device 011: ID 1397:00bc
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1397
  idProduct          0x00bc
  bcdDevice            1.00
  iManufacturer           1 BEHRINGER
  iProduct                2 BCF2000

and

Bus 001 Device 009: ID 0a4d:0090 Evolution Electronics, Ltd
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0a4d Evolution Electronics, Ltd
  idProduct          0x0090
  bcdDevice            1.22
  iManufacturer           1
  iProduct                2

I hope someone finds this useful.

bye
John




More information about the Linux-audio-user mailing list