PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Primäre Soundkarte bestimmen



viijay
16.03.05, 22:48
Hallo Community,

ich habe folgendes Problem:
In / An meinem PC befinden zwei Soundkarten. Einmal eine OnBoard Soundkarte meines Shuttle Systems (NVidia nForce2 Chipsatz) und einmal ein externes USB-Headset, welches ebenfalls als eigenes Sounddevice daher kommt. Soweit sogut.

Beide "Geräte" wurden auch richtig erkannt und funktionieren. Allerdings ist mein USB Headset offensichtlich das "Primäre Sounddevice" und meine OnBoard Soundkarte das Sekundäre. Blöde, wenn man z.B. im XMMS immer umstellen muss, dass man doch bitte über die an der OnBoard Soundkarte angeschlossenen Boxen hören möchte.

Jetzt meine Frage, kann mir jemand sagen, wie ich die OnBoard Soundkarte global zum primären Sounddevice erkläre?

Ich hab u.a. ALSA installiert und in meiner "Volume Control" unter Gnome schaut es wie folgt aus (folgende Reiter sind vorhanden):

USB Mixer [OSS Mixer]; Realtek ALC650F [OSS Mixer]; Plantronics Headset [Alsa Mixer]; NVidia nForce2 [Alsa Mixer]

Die OSS nutze ich eigentlich gar nicht oder will sie nicht nutzen. War aber mit installiert. Sorry, falls ich nicht alle nötigen Informationen an die Hand gegeben habe. Kenne mich ehrlich gesagt noch nicht so wirklich gut in Linux aus, zumindest was das hier angeht.

Vielen Dank für die Hilfestellungen schon mal vorab.

Gruss ViiJay.

m0L
17.03.05, 07:13
Je nach System ist /dev/dsp ein Link zur primären soundkarte.
D.h. ein


# rm /dev/dsp
# ln -s /dev/snd/dsp1 /dev/dsp

könnte helfen, ist aber gefährlich, denn:
Wie gesagt, nur unter manchen Systemen, wenn dies bei dir nicht zutrifft, dann löschst du dein Soundkartendevice :ugly:

~ejr

viijay
17.03.05, 08:10
Hey m0L,

danke erstmal für den Tipp. Ich vergass zu erwähnen, dass ich Debian 3.1 einsetze und einen Kernel 2.6.10 aktiv habe.

Naja ich war dann gestern mal so frei und hab einfach mal "alsconf" aufgerufen, was ich besser nicht getan habe. Jetzt gibt es nämlich nur noch meine OnBoard Soundkarte. Das wiederum war auch nicht so geplant.

Eine Prüfung der /etc/modprobe.d/sound ergibt diesen Eintrag hier:

alias snd-card-0 snd-intel8x0
options snd-intel8x0 index=0

Leider nicht mehr. alsaconf erkennt auch nur noch diese Karte:
intel8x0 nVidia Corp nForce2 AC97 Audio Controler (MCP) (rev a....

Vielleicht hat ja jemand eine Idee wie ich mein Headset wiederbekomme? Ist übrigens ein Plantronics DSP 500, welches auch beim Booten vom USB Subsystem erkannt wird:


input: USB HID v1.00 Device [Plantronics Plantronics Headset] on usb-0000:00:02.0-2.1
[...]
usb 1-2.1: new full speed USB device using ohci_hcd and address 6
input: USB HID v1.00 Device [Plantronics Plantronics Headset] on usb-0000:00:02.0-2.1

Also irgendwas scheint alsaconf ja überschrieben zu haben, was vorher da oder eben nicht da war. Vielleicht hat jemand noch eine Idee?

Danke und Gruss ViiJay.

viijay
20.03.05, 14:37
Es wird echt immer besser :o)

Nun wird beim starten nur noch das Headset erkannt. Nachdem ich alsaconf durchlaufen hab lassen, nur noch die OnBoard Soundkarte von nForce.

Hat jemand ne Ahnung?! Ich bin mit meinen nicht gerade großen Linuxkenntnissen am Ende.

Gruss ViiJay.

viijay
22.03.05, 09:51
Ok, sehr lustig.

Ich hab in die Datei /etc/modprobe.d/sound gelöscht, da diese offensichtlich bei der Ausführung von alsaconf angelegt werden kann. Und siehe da... Nach einem Neustart sind wieder beide Soundkarten vorhanden.

Trotzdem hätte ich das Problem gerne verstanden. Ich mag es nicht sonderlich, wenn etwas einfach nur passiert und ich nicht weiss warum. Zumindest bei einigen Dingen auf meinem Linux System. Hehe. Gibt genug Dinge, die ich echt nicht verstehen WILL :D

Gruss ViiJay.

caspartroy
22.03.05, 11:22
...Ich hab in die Datei /etc/modprobe.d/sound gelöscht...
in dem fall wirst du wohl nicht erfahren woran es lag :p

viijay
12.04.05, 18:45
Hm alles sehr seltsam.
Nach irgendeinem Neustart und irgendeinem Update funktionierte es, dann mal wieder nicht (ich weiss keine große Hilfe).

Jedenfalls hab ich dann den Kernel 2.6.11 installiert und siehe da nach dem ersten Neustart war alles so wie ich es haben wollte. Sprich OnBoard Soundkarte war 1. Soundkarte, Headset 2. Soundkarte.

Prima jedoch hab ich jetzt wieder das Problem, dass es genau falsch rum ist, sprich, Headset ist 1. Soundkarte und OnBoard ist 2.

Da wird man echt bekloppt bei.

Was ich mittlerweile ja schon gesehen habe, ist dass /dev/dsp auf /dev/dsp0 gelinkt ist. Und offensichtlich ist demnach /dev/dsp0 die erste Soundkarte und /dev/dsp1 die zweite. Aber wie zum Henker bekomme ich das System dazu, die OnBoard Soundkarte immer als /dev/dsp0 anzusprechen und das Headset als /dev/dsp1!?

Klar ich könnte den Link neusetzen, nur traue ich dem Braten nicht, da es mich nicht wundern würde, wenn nach irgendeinem Neustart plötzlich wieder alles so ist, wie ich es ursprünglich haben wollte.

Vielleicht weiss ja noch jemand Rat oder hat ne Idee?

Danke und Gruss ViiJay.

undefined
12.04.05, 19:24
Erstelle dir eine .asoundrc im Heimverzeichnis.
Was du alles drehen kannst findest du hier.
http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html

viijay
13.04.05, 15:28
Hallo undefined,

danke ich werde es mir mal anschauen und meine Fortschritte hier posten. :)

viijay
12.05.05, 19:05
Ich habe eine Lösung gefunden, die recht einfach ist, aber leider nicht in allen Möglichkeiten greift.

Dies hier macht die Soundkarte 1 (also die zweite im System) zum Default Soundausgabegerät. Ok soweit schon mal prima.

/etc/asound.conf

pcm.!default {
type hw
card 1
}

ctl.!default {
type hw
card 1
}
Einzig das Problem ist hierbei, dass z.B. Skype hingeht und als Device zwar zwischen "/dev/dsp", "/dev/dsp1", "/dev/dsp2" und "/dev/dsp3" unterscheidet, aber natürlich nicht "/dev/dsp0" angibt, was in meinem Fall natürlich das Headset ist, über das ich telefonieren möchte.

Vielleicht hat ja noch jemand anders ne Idee wie man einfach die OnBoard Soundkarte als erstes von Alsa erkennen lassen kann?!

Gruss ViiJay.

caspartroy
12.05.05, 23:18
stell halt einfach in allen apps /dev/dsp ein und linke je nach bedarf dsp0 oder dsp1:

ln -sf dsp0 /dev/dsp

oder

ln -sf dsp1 /dev/dsp

tooly
13.05.05, 06:04
Hallo,

nutzt Debian hotplug? Wenn ja ist das ganz einfach:
- in der Blacklist snd-intel8x0 und den Treiber für das Headset eintragen
- in der Datei die für das laden der Module verantwortlich ist (je nach System modprobe.conf / modules.conf o.Ä.) erst den Treiber für onboard sound und dann den Treiber für das Headset eintragen

Das wars schon, dadurch wird in meinem System eine Soundblaster als primär und der onboard Sound als sekundär erkannt. Dadurch mußte ich nur noch in den Programmen die den onboard Sound nutzen sollten /dev/dsp1 sezten und fertig.

mfg
tooly

undefined
13.05.05, 06:57
Gehe in die /etc/modprobe.d/sound und vergebe deinem Headset eine ID und Prefix.
Ich Zeige dir mal meine Modprobe sound damit kannst du nachvollsiehen wie es geht ;)


# [sound]
# Alsa Sound VT8233/A/8235 AC97 Audio Controller
# @link http://www.alsa-project.org/alsa-doc/doc-php/template.php?company=VIA&card=.&chip=VIA82C686%2C+VIA8233%2C+VIA8233A%2C+VIA8235&module=via82xx
# @link http://www.djcj.org/LAU/guide/TiMidity-howto.html
# @link http://gentoo-wiki.com/HOWTO_ALSA_sound_mixer_aka_dmix
# ================================================== ============================================
# DEPENDS snd_pcm_oss,
# snd_mixer_oss,
# snd_seq_midi,
# snd_seq_midi_event,
# snd_seq,
# snd_mpu401,
# snd_via82xx,
# snd_ac97_codec,
# snd_pcm,
# snd_timer,
# snd_mpu401_uart,
# snd_rawmidi,
# snd_seq_device
# ================================================== ============================================
#

alias char-major-14 soundcore

# [snd]
# @see modinfo snd
alias char-major-116 snd
options snd cards_limit=3 major=116

# [snd-via82xx]
# @see modinfo snd-via82xx
alias sound-slot-0 snd-card-0
alias snd-card-0 snd-via82xx
options snd-via82xx enable=1 index=0 id=via8235 mpu_port=330 dxs_support=3 joystick=1

# [snd-usb-audio]
# @see modinfo snd-usb-audio
# @short Senheiser USB Headset PC 135
alias sound-slot-1 snd-card-1
alias snd-card-1 snd-usb-audio
options snd-usb-audio vid=1395 pid=3556 id=Headset enable=1 index=1 async_unlink=1 nrpacks=3

# [snd-mpu401]
# @see modinfo snd-mpu401
alias sound-slot-2 snd-card-2
alias snd-card-2 snd-mpu401
options snd-mpu401 enable=1 id=UART acpipnp=0 index=2 irq=5 port=330

alias sound-slot-3 snd-card-2-1
alias snd-card-2-1 snd-mpu401-uart

# [snd-seq]
# @see modinfo snd-seq
alias sound-slot-4 snd-card-0-2
alias snd-card-0-2 snd-seq
options snd-seq seq_default_timer_card=0 seq_default_timer_sclass=1 seq_client_load=1

# [snd-seq]
# @see modinfo snd-seq
alias sound-slot-5 snd-card-0-3
alias snd-card-0-3 snd-ac97-codec
options snd-ac97-codec enable_loopback=1

# [snd-timer]
# @see modinfo snd-timer
alias sound-slot-6 snd-card-0-4
alias snd-card-0-4 snd-timer
options snd-timer timer_limit=3

# [snd_rawmidi]
# @see modinfo snd_rawmidi
alias sound-slot-7 snd-card-2-2
alias snd-card-2-2 snd_rawmidi
options snd_rawmidi amidi_map=2 midi_map=2

alias sound-slot-8 snd-card-2-3
alias snd-card-2-3 snd-seq-device


alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss

In der /etc/asound.conf Kannst du nun dein Headset wie folgt ansprechen.


pcm.Headset {
type hw
card 1
device 0
rate 18000
}

ctl.Headset {
type hw
card 1
device 0
rate 18000
}

Bitte achte darauf daß wenn du eine /etc/modprobe.d/sound anlegst. Es keine Doppelten Einträge mit der /etc/modprobe.conf gibt. Ich empfehle deshalb alles was mit Sound zu tun hat nach /etc/modprobe.d/sound zu verschieben.
PS: Finger weg von YAST das macht dir wieder alles kaputt. Du kannst mit rcalsasound restart deine Config neu starten. Unter /proc/asound findest du deine Karten.

PPS: Wenn es dann immer noch nicht geht zeige die Ausgabe von /proc/bus/usb/devices dann muß bei Hotplug noch etwas verändert werden ;)

mfg undefined