The best way to make alsa rearrange the cards is to edit /etc/modprobe.conf or similar and put lines like this in it. options snd cards_limit=2 options snd-emu10k1 index=0 options snd-hda-intel index=1 Note that for Debian and possibly others you want to put those at the end of /etc/modprobe.d/alsabase. In case those options aren't clear here is what it does. The options snd... line tells the alsa core module that you have 2 soundcards. The default is undefined I think since it has to autoprobe. The other 2 lines with index= put the emu10k1 chip at 0 which is the first soundcard and the hda-intel module gets assigned index 1 so it's the second card. This way udev can happily load your modules. Note that although the first line with the cards_limit parameter is not strictly required some distributions (Debian for example) will have a line earlier in the modprobe configuration that makes it default to 1 card which means that you don't get any sound at all when you try to have both enabled and it really screws things up. Hopefully this helps.