NVidia HDMI Audio on LinuxMCE 1004

From LinuxMCE
Revision as of 00:15, 6 August 2012 by L3mce (Talk | contribs) (How to setup NVidia HDMI Audio on LinuxMCE 1004)

Jump to: navigation, search

How to setup NVidia HDMI Audio on LinuxMCE 1004

It is assumed that

sudo aplay -l

Does NOT list your HDMI audio devices. IF that is the case then

sudo apt-get install linux-backports-modules-alsa-`uname -r`
reboot

They should now be listed. Check with:

sudo aplay -l | grep -i 'hdmi'

You will likely have hw0 devices 3,7,8, and 9. It is almost always 3 or 7 on the id41, and seems to be completely random which. Others output on 9... others output on everything. Configured correctly, they should look something like:

 card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
 card 0: NVidia [HDA NVidia], device 7: NVIDIA HDMI [NVIDIA HDMI]
 card 0: NVidia [HDA NVidia], device 8: NVIDIA HDMI [NVIDIA HDMI]
 card 0: NVidia [HDA NVidia], device 9: NVIDIA HDMI [NVIDIA HDMI]

What is important to us here is the card number, and the device number. IF HDMI cards list as card 1: You will have to add either

options snd-hda-intel model=auto  

or

options snd-hda-intel enable_msi=0 index=-2

to /etc/modprobe.d/alsa-base.conf to place the HDMI audo as card 0. For some reason, it has to be card 0. After making this change, you can try

sudo alsa -f reload

But sometimes this is problematic, and a reboot is preferred.

You can test which will work for you with:

sudo speaker-test -c 2 -l 1 -t sine -D hw:0,7

etc based on the output of aplay where the 0 is the card and 7 is the device in our example.

Now getting that to stick is another trick. In /usr/pluto/templates/asound.conf I would replace %MAIN_CARD% with 0,7 as per the example or whatever yours turns out to be.

pcm.asym_hdmi {
       type asym
       playback.pcm "hdmi_playback"
       capture.pcm "plughw:%MAIN_CARD%"
}

Lastly we will add a command in the /usr/pluto/bin/LaunchOrbiter.sh script to let mplayer play a sound-file on startup of the orbiter. This sound should exist on all installs, and is the smallest least intrusive one pre-packaged on the system. Its the line right below the xset m command

## Run Orbiter
xset m 2 2
DISPLAY=:0 mplayer /usr/share/sounds/pop.wav
if  "$Valgrind" == *"$Executable"* ; then
	$VGcmd "$Executable" "$@"
	Orbiter_RetCode=$?
else
	"$Executable" "$@"
	Orbiter_RetCode=$?
fi

Please report back to L3top with your results.