6 авг. 2011 г.

Вывод звука через HDMI на железяке с чипсетом Nvidia

Данная статья описывает один из вариантов возможной настройки вывода многоканального звука через интерфейс HDMI вместе с видео для железяки c чипсетом Nvidia ION2 под управлением opensuse 11.4 с оболочкой XBMC на борту.
Изначально необходимо обновить до последней версии alsa, pulseaudio, проприетарный Nvidia driver, перезагрузить компьютер
После обновления необходимо выполнить следующие комманды:
>sudo /usr/bin/amixer -q -c 0 sset 'Master',0 unmute && /usr/bin/amixer -q -c 0 sset 'Master',0 100
>sudo /usr/bin/amixer -q -c 0 sset 'IEC958 Default PCM',0 unmute
>sudo /usr/bin/amixer -q -c 0 sset 'IEC958',0 unmute && /usr/bin/amixer -q -c 0 sset 'IEC958',1 unmute
>sudo alsactl store 0
Если в процессе выполнения комманд появляются ошибки — значит скорее всего проблемма кроется в pulseaudio, который необходимо установить из исходних кодов вручную.
Далее ищем устройство, которое обладает возможностью вывода звука через HDMI:
>grep eld_valid /proc/asound/NVidia/eld*
В результате должнен быть следующий вывод:
/proc/asound/NVidia/eld#0.0:eld_valid 0
/proc/asound/NVidia/eld#1.0:eld_valid 1
/proc/asound/NVidia/eld#2.0:eld_valid 0
/proc/asound/NVidia/eld#3.0:eld_valid 0
сопостовление устройств и значений параметра eld_valid
eld#0.0=device 3
eld#1.0=device 7
eld#2.0=device 8
eld#3.0=device 9
(Можно так же попробовать вывести все аудиоустройства при помощи
>aplay -l
, вывод будет следующий:
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC887 Analog [ALC887 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC887 Digital [ALC887 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
).
И первый и второй результат говорит нам о том, что необходимо использовать device 7, карты Nvidia(либо card 1). (Если первый результат не даёт нужного результата, то можно найти нужное устройство методом перебора при помощи последовательного воспроизведения аудио-файла через все видимые устройства:
>aplay -D plughw:NVidia,X /usr/share/sounds/alsa/Front_Center.wav(где X — номер устройства).
Далее необходимо прописать в файле /etc/modprobe.d/50-sound.conf (если оного не существует, то необходимо его создать)
options snd-hda-intel enable_msi=0,probe_mask=0xXXX
соответствие probe_mask для каждого из устройств:
device 3: probe_mask=0x101
device 7: probe_mask=0x102
device 8: probe_mask=0x104
device 9: probe_mask=0x108
Далее необходимо отредактировать файл /etc/pulse/default.pa и заменить
#load-module module-alsa-sink
на
load-module module-alsa-sink device=plughw:1,7
(если не работает — то необходимо заменить plughw на hw)
В конце необходимо удалить временные файлы и текщие файлы при помощи
>rm -r ~/.pulse ~/.asound* ~/.pulse-cookie
и перезагрузить компьтер.
В для вывода звука в XBMC в настройках «вывод звука» нужно прописать следующее:
Формат аудиовыхода: Цифровой
Устройство вывода звука: особый(plughw:1,7)
Другое устройство прямого вывода звука:особый(plughw:1,7)
В результате всех выше перечисленных манипуляций система должна выводить звук через HDMI.
PS: для опредения правильного расположения колонок, можно воспользоваться тестированием при помощи команды:
>speaker-test -c количество_колонок -D plughw:1,7
Сия статья не претендует на оригинальность и уникальность, а наоборот является сборкой большинства советов из следующих статей:
(XBMC)вывод звука через HDMI на базе чипсета nForce
(XBMC)вывод звука через HDMI на базе чипсета GT2XX
(Opensuse) Pulseaudio
(Ubuntu) вывод звука через HDMI для чипсета Nvidia
(Ubuntu) вывод звука через HDMI для чипсета Nvidia ION-2
(ЖЖ) снос pulseaudio на примере ubuntu 

Комментариев нет: