2015年11月18日水曜日

Audio trouble on arch linux (ALSA)

I am experiencing audio problem in my new arch linux system on my custom build PC.

I have

  • HDMI audio (built in BenQ display)
  • NVIDIA GeForce GTX950 video card
  • On board sound device (msi 970a 46g)

My problems are

  • can’t hear sound from front panel headphones
  • can’t hear sound from HDMI monitor

audio related issues on arch linux forum
https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773
https://bbs.archlinux.org/viewtopic.php?id=186672
https://bbs.archlinux.org/viewtopic.php?id=125092

I googled and read several arch linux forum and stackoverflow pages but still have no success.
Now I will follow this how to.

Diagnosing the issue

Basically commands below to diagnose the issue returns no problem. The system recognise on board sound card and Nvidia video card.

$ aplay -l
$ aplay -L
$ ls /dev/snd
$ ls /proc/asound/
$ lsmod | grep snd

So the problem should be that my configuration is not good. Obviously, aplay -L suggests that default card is not Nvidia so I should make Nvidia card to default.

Speaker test

However I couldn’t make speaker test success. If proper speaker test fail on NVidia card, changing default sound card will not solve the problem. So I need to get sound from BenQ monitor speaker first. After reading several on the web like these (https://www.mythtv.org/wiki/Using_ALSA‘s_speaker-test_utility, ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html), this speaker test works finally!

$ speaker-test -Dhdmi:NVidia,1 -c 2

I noticed device 1 is my BenQ monitor because cat /proc/asound/card1/eld#0.1 says so. (I noticed this while reading this manual) Other eld#0.0 eld#0.2 eld#0.3 say there’s no monitor presented because I connected only one BenQ monitor.

Now I am sure that my monitor speaker connected to NVidia card via HDMI cable works fine.
I try make NVidia card as default sound card and make the system to output sound.

First I set default sound card by setting /etc/modprobe.d/alsa-base.conf like this.

options snd-hda-intel index=1,0

now when I reboot the system, the output of aplay -l aplay -L show now card0 is NVidia card not mobo HDA ATI SB. But I still can’t hear sound.
Next I need to set default sound device. I set /etc/asound.conf like this.

# default.pcm.card 0
default.pcm.device 7

first line may not be needed because I already set default sound card in /etc/modprobe.d/alsa-base.conf so I commented that line out.
In second line I choose pcm device 7 because cat /proc/asound/card0/eld#0.1 says second device is my BenQ monitor and aplay -l says second device is device 7.

I rebooted the system and now I can hear sound from my monitor!

Written with StackEdit.

0 件のコメント:

コメントを投稿