Jak wybrać urządzenie wyjściowe dźwięku do emulacji / dev / dsp OSS?

1

Mam system z dwoma urządzeniami dźwiękowymi i używam dźwięku przez wyjście HDMI. To karta 1, urządzenie 7, poddział 0, więc ustawiłem w moim /usr/share/alsa.conf:

defaults.ctl.card 1
defaults.pcm.card 1
defaults.pcm.device 7
defaults.pcm.subdevice 0

To daje mi dźwięk w aplikacjach ALSA. Teraz chcę uruchomić stary program, który wymaga OSS, więc zainstalowałem alsa-ossi zrobiłem sudo modprobe snd-pcm-oss snd-mixer-oss. Kiedy uruchamiam stary program, słyszę dźwięk, ale tylko z analogowego wyjścia liniowego, a nie z HDMI, więc emulacja OSS wykorzystuje pierwszą kartę.

Jak mogę powiedzieć emulacji OSS, aby zamiast tego używała drugiej karty?

rabejens
źródło

Odpowiedzi:

0

Dokumentacja mówi:

ALSA obsługuje następujące pliki urządzeń OSS:

PCM:

      / dev / dspX
      / dev / adspX
[...]
W przeciwieństwie do prawdziwego OSS, ALSA nie może korzystać z plików urządzeń bardziej niż przypisane. Na przykład pierwsza karta nie może używać / dev / dsp1 lub / dev / dsp2, ale tylko / dev / dsp0 i / dev / adsp0. [...]
Jak widać powyżej, PCM i MIDI mogą mieć dwa urządzenia. Zwykle pierwsze urządzenie PCM (hw: 0,0 w ALSA) jest mapowane na / dev / dsp, a drugie urządzenie (hw: 0,1) na / dev / adsp (jeśli jest dostępne).

Możesz zmienić to mapowanie urządzenia za pomocą opcji modułu snd-pcm-oss i snd-rawmidi. W przypadku PCM dostępne są następujące opcje dla snd-pcm-oss:

  dsp_map     PCM device number assigned to /dev/dspX
      (default = 0)
  adsp_map    PCM device number assigned to /dev/adspX
      (default = 1)

Na przykład, aby zmapować trzecie urządzenie PCM (hw: 0,2) na / dev / adsp0, zdefiniuj w następujący sposób:

options snd-pcm-oss adsp_map=2

Opcje przyjmują tablice. Aby skonfigurować drugą kartę, podaj dwa wpisy oddzielone przecinkiem. Na przykład, aby zamapować trzecie urządzenie PCM na drugiej karcie na / dev / adsp1, zdefiniuj jak poniżej:

options snd-pcm-oss adsp_map=0,2
CL.
źródło
Problem polega na tym, że według mnie mój HDMI nie ma HW: 0,1, ale HW: 1,7. Jak więc ustawić / dev / dsp na hw: 1,7?
rabejens
Musisz powiedzieć staremu programowi, aby używał /dev/(a)dsp1.
CL.
Nigdy nie dostaję / dev / (a) dsp1, otrzymuję tylko / dev / dsp. Mój sprzęt dźwiękowy jest w ten sposób zabawny, wydaje się, że używa snd_hda_intel, a zastrzeżony sterownik karty graficznej NVidia w jakiś sposób instaluje drugie urządzenie, ale kiedy umieszczam na czarnej liście snd_hda_intel, dźwięk HDMI również zniknął
rabejens
Oba korzystają ze snd-hda-intelsterownika. adspDomyślnie dostajesz dla urządzenia 1. Nie korzystasz z tej adsp_mapopcji?
CL.
Jeśli to sudo modprobe snd_pcm_oss adsp_map=0zrobię, dostanę /dev/adsp, ale dźwięk nadal pochodzi z analogowego dźwięku. Kiedy używam dsp_map=1lub cokolwiek innego niż 0, nawet nie dostaję /dev/dsp. Myślę, że będę prowadził sygnał wideo przez DVI za pośrednictwem dwóch adapterów, aby rozebrać dźwięk i zamiast tego użyć wbudowanego dźwięku analogowego. Zresztą to tylko monitor z wbudowanymi głośnikami.
rabejens