I have 2 sound cards in my PC too. The only solution i've found is to compile both sound drivers as modules. Which ever one is loaded into the kernel first ends up being the first device file.
I use gentoo so this is probably a bit different but i just have 2 lines in the file /etc/modules.autoload.d/kernel-2.6:
snd-via82xx
snd-emu10k1
my config for alsa looks like this:
Code:
alias char-major-116 snd
alias char-major-14 soundcore
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias snd-card-0 snd-via82xx
alias sound-slot-0 snd-via82xx
alias snd-card-1 snd-emu10k1
alias sound-slot-1 snd-card-1
alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-1 snd-seq-oss
alias sound-service-1-3 snd-pcm-oss
alias sound-service-1-8 snd-seq-oss
alias sound-service-1-12 snd-pcm-oss
hope this helps
edit: if you don't have a file that is specifically loading the modules then it may be due to your alsa config. I believe that if things are set up properly, alsa will load the kernel module pointed to by the snd-card-x alias when a program tries to access that device.