So I recently purchased a new desktop. One thing I was really excited about was my new 23" LCD/LED monitor with HDMI ... and built-in speakers
Well, the HDMI video worked great right out of the box, but to my dismay, the audio was nowhere to be found.
After some research, I learned that the drivers required to support HDMI audio on Nvidia cards are in ALSA >= 1.0.23.
Unfortunately, F13 only has 1.0.22. Now before you reply to correct me, we are referring to the *kernel drivers* here, not the tools/libraries... and although F13 does offer 1.0.23 of the tools and libraries, the drivers are in fact 1.0.22.
So this means we need to retrieve the latest alsa-drivers source from the project site and compile them against our current kernel -- at least until alsa-drivers >= 1.0.23 is merged into the Fedora kernels.
The trouble here is that the alsa-drivers are internal modules, so no amount of kernel-devel or kernel-headers packages will help us compile them, we need the full kernel.src.rpm to compile against.
What follows is a brief howto of what worked for me. Be aware that some of this procedure gets a bit technical so if you're stuck, make sure to read all the references, especially the kernel build stuff.
Let's get started.
Step 1: Download and extract the alsa-driver source package.
Code:
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.23.tar.bz2
tar xvjf alsa-driver-1.0.23.tar.bz2
Step 2: Download the kernel & build dependancies.
Code:
su -c 'yum install yum-utils rpmdevtools'
su -c 'yum-builddep kernel-`uname -r`'
yumdownloader --source kernel-`uname -r`
rpmdev-setuptree
rpm -Uvh kernel-`uname -r`.src.rpm
Step 3: Build the kernel src.rpm in accordance with Fedora Project guidelines:
http://fedoraproject.org/wiki/Docs/CustomKernel
Code:
cd ~/rpmbuild
rpmbuild -bp --target=`uname -m` SPECS/kernel.spec
cd ~/rpmbuild/BUILD/kernel-2.6.`uname -r | cut -d. -f3`/linux-`uname -r`
cp configs/kernel-`uname -r`.config .config
make oldconfig
cp .config ../../../SOURCES/config-x86_64-generic
cd ~/rpmbuild
rpmbuild -bb --target=`uname -m` SPECS/kernel.spec
Go eat lunch... build takes a while.
Step 4: Build and install alsa-driver
Code:
cd ~/alsa-driver
./configure --with-card-options=all --with-cards=all --with-kernel=~/rpmbuild/BUILD/kernel-2.6.`uname -r | cut -d. -f3`/linux-`uname -r`/ --with-build=~/rpmbuild/BUILD/kernel-2.6.`uname -r | cut -d. -f3`/linux-`uname -r`/
make
su -c 'make install'
Step 5: Reboot
Step 6: Verify your HDMI devices are available.
Quote:
**** List of PLAYBACK Hardware Devices ****
card 1: Intel [HDA Intel], device 0: ALC1200 Analog [ALC1200 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Intel [HDA Intel], device 1: ALC1200 Digital [ALC1200 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 7: NVIDIA HDMI [NVIDIA HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 8: NVIDIA HDMI [NVIDIA HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 9: NVIDIA HDMI [NVIDIA HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
|
Yay, HDMI !!!
Step 7: Unmute the HDMI audio using alsamixergui
Code:
su -c 'alsa-utils'
alsamixergui
Step 8: Set the Hardware and Output to HDMI using PulseAudio mixer.
See screenshot
Step 9: Edit your /etc/asound.rc according to:
http://wiki.xbmc.org/index.php?title...T220,_or_GT240
Step 10: Enjoy the HDMI goodness!
If you start seeing errors at any point in the process, stop and debug/fix before proceeding.
This is pretty much what worked for me, your mileage may vary.
- J