Ich persöhnlich würde einen eigenen Kernel übersetzen und diesen Treiber für die Onboard-Soundkarte einfach deaktivieren. Das mache ich ohnehin immer, weil das für mich nicht viel Arbeit bei meinen 3 Linuxrechnern ist.
Aber wenn du Einsteiger bist ist das wahrscheinlich noch zu schwer.
Die Treibermodule aus /lib/modules/kernel? werden von der Hardwareerkennung automatisch geladen.
Die Hardwareerkennung besteht hauptsächlich aus KMOD im Linuxkernel und udev im Userspace.
Man kann ein Kernelmodul manuell mit modprobe in den Speicher laden und mit rmmod aus dem Speicher wieder entfernen.
Ich habe bei Debain keine Blacklist wie bei Ubuntu gefunden, wo man verschiedene Kernelmodule eintragen kann die nicht automatisch geladen werden sollen.
Ich würde es an deiner Stelle vielleicht so machen:
Im /etc/ Verzeichnis gib es ein Script rc.local , welches normalerweise in jedem Runlevel ausgeführt wird
karsten@Winkler3:~$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#Du könnest hier den rmmod Befehl für diesen VIA
#Sondtreiber einfügen und den modprob Befehl für
#den neuen Sondtreiber.
rmmod $KERNELMODUL_FÜR_VIACHIPSATZ
modprobe $KERNELMODUL_FÜR_CREATIV_CHIPSATZ
exit 0
Die genaue Bezeichnung des Kernelmoduls kannst du mi lsmod herausbekommen oder du schaust in das Verzeichnis /lib/modules/kernel?...
Das Script rc.local muß aber auch im Defaultrunlevel aktiviert sein.
Bei mir ist der Defaultrunlevel 2 (ist in der Datei /etc/inittab eingetragen). Ganz zum Schluß steht ein Link S99rc.local im Runlevel 2.
:/etc/rc2.d$ ls -l
insgesamt 4
lrwxrwxrwx 1 root root 18 1. Nov 19:03 K08vmware -> /etc/init.d/vmware
-rw-r--r-- 1 root root 556 12. Aug 16:09 README
lrwxrwxrwx 1 root root 18 3. Sep 10:10 S10sysklogd -> ../init.d/sysklogd
lrwxrwxrwx 1 root root 15 3. Sep 10:10 S11klogd -> ../init.d/klogd
lrwxrwxrwx 1 root root 15 3. Sep 10:11 S12acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 14 3. Sep 10:41 S12dbus -> ../init.d/dbus
lrwxrwxrwx 1 root root 13 11. Sep 22:01 S16ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 14 3. Sep 21:02 S20cups -> ../init.d/cups
lrwxrwxrwx 1 root root 20 3. Sep 11:52 S20fancontrol -> ../init.d/fancontrol
lrwxrwxrwx 1 root root 17 4. Sep 13:50 S20ifplugd -> ../init.d/ifplugd
lrwxrwxrwx 1 root root 20 4. Sep 12:31 S20nfs-common -> ../init.d/nfs-common
lrwxrwxrwx 1 root root 27 4. Sep 12:31 S20nfs-kernel-server -> ../init.d/nfs-kernel-server
lrwxrwxrwx 1 root root 23 3. Sep 11:20 S20nvidia-kernel -> ../init.d/nvidia-kernel
lrwxrwxrwx 1 root root 17 3. Sep 18:54 S20postfix -> ../init.d/postfix
lrwxrwxrwx 1 root root 15 11. Sep 22:02 S20rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 15 27. Jan 16:39 S20saned -> ../init.d/saned
lrwxrwxrwx 1 root root 13 3. Sep 11:52 S21fam -> ../init.d/fam
lrwxrwxrwx 1 root root 22 3. Sep 11:51 S24avahi-daemon -> ../init.d/avahi-daemon
lrwxrwxrwx 1 root root 13 3. Sep 11:52 S24hal -> ../init.d/hal
lrwxrwxrwx 1 root root 17 3. Sep 18:57 S89anacron -> ../init.d/anacron
lrwxrwxrwx 1 root root 13 14. Nov 16:18 S89atd -> ../init.d/atd
lrwxrwxrwx 1 root root 14 3. Sep 10:10 S89cron -> ../init.d/cron
lrwxrwxrwx 1 root root 18 1. Nov 19:03 S90vmware -> /etc/init.d/vmware
lrwxrwxrwx 1 root root 13 3. Sep 11:52 S99kdm -> ../init.d/kdm
lrwxrwxrwx 1 root root 24 4. Sep 13:15 S99ntpdate-debian -> ../init.d/ntpdate-debian
lrwxrwxrwx 1 root root 18 3. Sep 10:10 S99rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root 19 3. Sep 10:10 S99rmnologin -> ../init.d/rmnologin
lrwxrwxrwx 1 root root 23 3. Sep 10:10 S99stop-bootlogd -> ../init.d/stop-bootlogd
PS: Die bessere Lösung wäre schon mal einen eigenen Kernel zu übersetzen und diesen VIA Soundtreiber zu deaktivieren. Ich weiß nicht warum er automatisch geladen wird. Die Hardwareerkennung nutzt wahrscheinlich nicht so sehr das BIOS und hat eigene Testroutinen.