2009-10-11 17:32:47 +0000 2009-10-11 17:32:47 +0000
67
67

Wat betekenen ALSA apparaten als "hw:0,0"? Hoe kom ik erachter welke ik moet gebruiken?

Ik heb lang en breed gezocht en kan geen uitleg vinden over wat “hw:0,0” betekent. Hoe bepaal ik het nummer van mijn USB audio kaart? MPD ](http://mpd.wikia.com/) vereist dat ik zoiets als dit invoer:

audio_output {
        type "alsa"
        name "Sound Card"
        device "hw:0,0" # optional
        format "44100:16:2" # optional
}

Als ik “alsamixer -c 1” doe, opent dat de volumeregeling van de USB kaart, maar daar heb ik echt niets aan.

Waar kan ik een lijst van apparaatnamen/-nummers op mijn systeem vinden? Zijn die bestand tegen hardwareveranderingen? Als ik kaart 2 verwijder, wordt kaart 3 dan kaart 2? Zijn er andere manieren om apparaten te identificeren? Waar kan ik documentatie vinden over dit alles?

Antwoorden (2)

53
53
53
2009-10-11 18:12:29 +0000

JohnT’s antwoord geeft een goede basis. Ik zal het opvolgen met hoe je de apparaten op je systeem kunt vinden. Gebruik “aplay -l” om een lijst te krijgen van de apparaten op uw systeem. De hw:X,Y komt van deze mapping van je hardware – in dit geval is X het kaart nummer, terwijl Y het apparaat nummer is.

$ aplay -l # note lower-case "L" option
****List of PLAYBACK Hardware Devices****
card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM]
  Subdevices: 3/3
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  • *

Aangezien dit USB-apparaten zijn die niet altijd dezelfde apparaatnummers krijgen elke keer dat ze worden aangesloten, kan het hw:X,Y apparaat veranderen. Het eenvoudigste antwoord is om voor een desktopsysteem de configuratieprogramma’s van GNOME/KDE/Xfce te proberen, en te zien of die slim genoeg zijn om de veranderingen op te pikken.

De ingewikkelde manier, als je dit niet met een desktop systeem doet, wordt … interessant. U kunt misschien wegkomen met het gebruik van device aliases in plaats van de “hw:X,Y” – dit is wat de uitvoer van “aplay -L” laat zien. Het “something:CARD=FOO,DEV=Y” spul is de alias, en zal waarschijnlijk niet veranderen tussen verschillende device plug-ins, waar de X in “hw:X,Y” dat misschien wel doet. (Aangenomen dat je iedere keer dezelfde USB dongle gebruikt.)

$ aplay -L
default:CARD=CK804
    NVidia CK804, NVidia CK804
    Default Audio Device
front:CARD=CK804,DEV=0 # hw:0,0
    NVidia CK804, NVidia CK804
    Front speakers
surround40:CARD=CK804,DEV=0 # hw:0,1
    NVidia CK804, NVidia CK804
    4.0 Surround output to Front and Rear speakers

Dus je aplay commando zou worden “aplay -D front:CARD=CK804,DEV=0 somefile.wav”, en je kunt dezelfde devicenaam gebruiken in je .asoundrc.

  • *

Als je iets stabielers nodig hebt op een nog lager niveau, echte kernel apparaten, dan is udev wat je wilt – het is het systeem dat het mogelijk maakt om apparaten hotpluggen in het systeem. U kunt regels schrijven voor udev (en hier is de man page ) die apparaten toestaan om dezelfde devicenaam te krijgen wanneer ze worden aangesloten.

19
19
19
2009-10-11 17:40:05 +0000

hw:0,0 specificeert het standaard apparaat, op de standaard geluidskaart. Om het eerste apparaat van je tweede geluidskaart te benaderen, zou je hw:1,0 specificeren. Deze worden gespecificeerd in uw .asoundrc. Meer over dit alles hier .