NVidia HDMI Audio on LinuxMCE 1004

From LinuxMCE
Revision as of 01:03, 6 August 2012 by L3mce (Talk | contribs) (How to setup NVidia nVidia ION2 and GTxxx HDMI Audio on LinuxMCE 1004)

Jump to: navigation, search

How to setup NVidia nVidia ION2 and GTxxx HDMI Audio on LinuxMCE 1004

This how-to specifically is geared towards nVidia ION2 and GTxxx cards for HDMI audio. In these examples sudo is used, however if you have ssh'ed into the moon unit already, it is not needed as you are already root.

It is firstly 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. Check again with the sudo aplay -l command to see that HDMI is card 0

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 L3mce with your results.