Получение открытого аудио на nvidia hdmi

691
user2284570

Я хочу, чтобы программы, использующие openal, отправляли звук через выход hdmi моей карты nvidia, используя библиотеки alsa напрямую. Вот моя конфигурация:

root@localhost /root % cat /proc/asound/cards  0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xef420000 irq 136 1 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xef080000 irq 17 root@localhost /root % 

Кажется, что для звуковой карты Nvidia не загружен модуль ядра (в Windows® есть специальный драйвер звуковой карты) . Если требуется, я не имею представления о модуле ядра для загрузки.

root@localhost /root % lsmod | grep snd  snd_hda_intel 36864 0 snd_hda_codec_realtek 90112 1 snd_hda_codec_generic 73728 1 snd_hda_codec_realtek snd_hda_codec_hdmi 49152 2 snd_hda_codec 135168 4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek snd_hda_core 81920 5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek snd_hwdep 16384 1 snd_hda_codec snd_pcm 114688 4 snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hda_codec_hdmi snd_timer 32768 1 snd_pcm snd 86016 8 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek,snd_pcm soundcore 16384 1 snd root@localhost /root % 

Поэтому я включил звук spdif-входов в alsamixer: но звук все еще посылается на динамики моего компьютера вместо hdmi (возможно, это нормально, поскольку на моей графической карте нет входного кабеля spdif).

Я читал о .asoundrc, но я понятия не имею, на каком устройстве выбрать (аудио HDMI) :

root@localhost /root % aplay -L null Discard all samples (playback) or generate zero samples (capture) default:CARD=PCH HDA Intel PCH, ALC887-VD Analog Default Audio Device sysdefault:CARD=PCH HDA Intel PCH, ALC887-VD Analog Default Audio Device front:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog Front speakers surround21:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog 2.1 Surround output to Front and Subwoofer speakers surround40:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Digital IEC958 (S/PDIF) Digital Audio Output hdmi:CARD=PCH,DEV=0 HDA Intel PCH, HDMI 0 HDMI Audio Output hdmi:CARD=PCH,DEV=1 HDA Intel PCH, HDMI 1 HDMI Audio Output hdmi:CARD=PCH,DEV=2 HDA Intel PCH, HDMI 2 HDMI Audio Output dmix:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog Direct sample mixing device dmix:CARD=PCH,DEV=1 HDA Intel PCH, ALC887-VD Digital Direct sample mixing device dmix:CARD=PCH,DEV=3 HDA Intel PCH, HDMI 0 Direct sample mixing device dmix:CARD=PCH,DEV=7 HDA Intel PCH, HDMI 1 Direct sample mixing device dmix:CARD=PCH,DEV=8 HDA Intel PCH, HDMI 2 Direct sample mixing device dsnoop:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog Direct sample snooping device dsnoop:CARD=PCH,DEV=1 HDA Intel PCH, ALC887-VD Digital Direct sample snooping device dsnoop:CARD=PCH,DEV=3 HDA Intel PCH, HDMI 0 Direct sample snooping device dsnoop:CARD=PCH,DEV=7 HDA Intel PCH, HDMI 1 Direct sample snooping device dsnoop:CARD=PCH,DEV=8 HDA Intel PCH, HDMI 2 Direct sample snooping device hw:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog Direct hardware device without any conversions hw:CARD=PCH,DEV=1 HDA Intel PCH, ALC887-VD Digital Direct hardware device without any conversions hw:CARD=PCH,DEV=3 HDA Intel PCH, HDMI 0 Direct hardware device without any conversions hw:CARD=PCH,DEV=7 HDA Intel PCH, HDMI 1 Direct hardware device without any conversions hw:CARD=PCH,DEV=8 HDA Intel PCH, HDMI 2 Direct hardware device without any conversions plughw:CARD=PCH,DEV=0 HDA Intel PCH, ALC887-VD Analog Hardware device with all software conversions plughw:CARD=PCH,DEV=1 HDA Intel PCH, ALC887-VD Digital Hardware device with all software conversions plughw:CARD=PCH,DEV=3 HDA Intel PCH, HDMI 0 Hardware device with all software conversions plughw:CARD=PCH,DEV=7 HDA Intel PCH, HDMI 1 Hardware device with all software conversions plughw:CARD=PCH,DEV=8 HDA Intel PCH, HDMI 2 Hardware device with all software conversions hdmi:CARD=NVidia,DEV=0 HDA NVidia, HDMI 0 HDMI Audio Output hdmi:CARD=NVidia,DEV=1 HDA NVidia, HDMI 1 HDMI Audio Output hdmi:CARD=NVidia,DEV=2 HDA NVidia, HDMI 2 HDMI Audio Output hdmi:CARD=NVidia,DEV=3 HDA NVidia, HDMI 3 HDMI Audio Output dmix:CARD=NVidia,DEV=3 HDA NVidia, HDMI 0 Direct sample mixing device dmix:CARD=NVidia,DEV=7 HDA NVidia, HDMI 1 Direct sample mixing device dmix:CARD=NVidia,DEV=8 HDA NVidia, HDMI 2 Direct sample mixing device dmix:CARD=NVidia,DEV=9 HDA NVidia, HDMI 3 Direct sample mixing device dsnoop:CARD=NVidia,DEV=3 HDA NVidia, HDMI 0 Direct sample snooping device dsnoop:CARD=NVidia,DEV=7 HDA NVidia, HDMI 1 Direct sample snooping device dsnoop:CARD=NVidia,DEV=8 HDA NVidia, HDMI 2 Direct sample snooping device dsnoop:CARD=NVidia,DEV=9 HDA NVidia, HDMI 3 Direct sample snooping device hw:CARD=NVidia,DEV=3 HDA NVidia, HDMI 0 Direct hardware device without any conversions hw:CARD=NVidia,DEV=7 HDA NVidia, HDMI 1 Direct hardware device without any conversions hw:CARD=NVidia,DEV=8 HDA NVidia, HDMI 2 Direct hardware device without any conversions hw:CARD=NVidia,DEV=9 HDA NVidia, HDMI 3 Direct hardware device without any conversions plughw:CARD=NVidia,DEV=3 HDA NVidia, HDMI 0 Hardware device with all software conversions plughw:CARD=NVidia,DEV=7 HDA NVidia, HDMI 1 Hardware device with all software conversions plughw:CARD=NVidia,DEV=8 HDA NVidia, HDMI 2 Hardware device with all software conversions plughw:CARD=NVidia,DEV=9 HDA NVidia, HDMI 3 Hardware device with all software conversions root@localhost /root % 

Также ни одно из устройств Nvidia из этого списка не работает с aplay -D

root@localhost /root % aplay -Dhw:1 /usr/share/kde4/apps/kolf/sounds/blackhole.wav aplay: main:788: No such file or directory 

Глядя на strace, кажется, что он пытается открыть несуществующий файл устройства:

root@localhost /root % strace aplay -Dhw:1 /usr/share/kde4/apps/kolf/sounds/blackhole.wav 2>&1 | grep /dev/snd open("/dev/snd/controlC1", O_RDONLY|O_CLOEXEC) = 3 open("/dev/snd/controlC1", O_RDWR|O_CLOEXEC) = 3 open("/dev/snd/pcmC1D0p", O_RDWR|O_NONBLOCK|O_CLOEXEC) = -1 ENOENT (No such file or directory) root@localhost /root %  

Что выглядит нормально, поскольку устройство 1-1 не существует:

root@localhost /root % cat /proc/asound/devices 1: : sequencer 2: [ 0] : control 3: [ 0- 0]: digital audio playback 4: [ 0- 0]: digital audio capture 5: [ 0- 1]: digital audio playback 6: [ 0- 3]: digital audio playback 7: [ 0- 7]: digital audio playback 8: [ 0- 8]: digital audio playback 9: [ 0- 0]: hardware dependent 10: [ 0- 2]: hardware dependent 11: [ 1] : control 12: [ 1- 3]: digital audio playback 13: [ 1- 7]: digital audio playback 14: [ 1- 8]: digital audio playback 15: [ 1- 9]: digital audio playback 16: [ 1- 0]: hardware dependent 33: : timer root@localhost /root % 

Кроме того, я обнаружил, что pavucontrol утверждает, что порт HDMI отключен, в то время как у меня есть видеосигнал по телевизору.

4
В Windows я просто переключил звуковую карту по умолчанию на панели управления, и она заработала. Моя встроенная карта Intel также имеет выход HDMI, но видео не работает на этом порту HDMI. user2284570 6 лет назад 0
Это потому, что в Windows есть эквивалент Pulseaudio (AudioDG.exe), который выполняет всю грязную работу - но так как вы отказались от этого в Linux ... В любом случае, были ли у вас какие-либо успехи с другими программами, кроме OpenAL? Например, спикер-тест? (На самом деле, это работает с Pulseaudio?) grawity 6 лет назад 0
@ Grawity: я не мог получить какие-либо программы, отправляющие аудио выход через HDMI. Помните, что pusleaudio использует alsa, тогда как Windows® напрямую взаимодействует со звуковыми драйверами. Так что, если он сначала не работает с aplay, не стоит пытаться использовать pulseaudio. user2284570 6 лет назад 0
Глупый вопрос: вы полностью остановили Pulseaudio, прежде чем пытаться использовать ALSA напрямую? (Проверьте с помощью `ps axu`). Если нет, это не сработает - Pulseaudio принимает на себя все устройства ALSA. Если вы хотите запустить Pulseaudio, все еще используя ALSA для HDMI, вам необходимо настроить Pulseaudio на игнорирование устройства HDMI ALSA. Я полагаю, вы проверяли, что звук по HDMI * с * Pulseaudio работает, так что можно исключить проблемы с драйверами с картой nvidia? dirkt 6 лет назад 0
@ Dirkt Да, я сделал. ** Кроме того, я обнаружил, что pavucontrol утверждает, что устройство отключено, когда у меня есть видеосигнал по телевизору. ** user2284570 6 лет назад 0
Итак, проблема, похоже, в драйвере nvidia. Вы используете драйвер `nvidia` с закрытым исходным кодом или` nouveau` с открытым исходным кодом (или, возможно, все еще vga framebuffer)? Проверьте в `/ var / log / Xorg.0.log` драйвер X и в` dmesg` драйвер фреймбуфера. dirkt 6 лет назад 0
@dirkt устройство передачи звука предоставляется модулем ядра `snd_hda_codec_hdmi`. В противном случае я использую проприетарный драйвер с 4.8.0. Карта Geforce 1070 user2284570 6 лет назад 0

0 ответов на вопрос

Похожие вопросы