Note: This entry is now wildly out of date. Try these instructions at your own risk. If I get a few moments, I will revise these instructions in the future.
I’ve been in contact with an ALSA hacker, Tobin Davis, over a series of patches that provide support for the sound chipset (intel-hda) that is part of the HP DV2000 laptop.
His patches over ALSA 1.0.14rc3 enable the following new features:
- The headphone port now works, and the speakers automute when the headphones are plugged in.
- The microphone port now works, with great sound quality.
- The built-in mic on the monitor now works, though obviously with worse sound quality due to ambient noise.
The new patches aren’t perfect. I’m noticing some sound quality issues at high volumes, and in order to get it to work Tobin had to essentially enable two PCM channels (PCM and PCM-2), which have a very strange behavior. The first one controls the volume directly from the sound system. The second one controls the volume only between the sound system and the speakers (and thus, will have no effect on the sound when the headphones are plugged in). The master volume control effectively modulates both of these. Tobin has told me that the chipset produced by Conexant is particularly weird, which is why he had to this. I find that it’s not so bad, as long as I keep a launcher to gnome-volume-control set up so that I can control it, knowing these rules.
That said, it’s a huge improvement over out of the box sound support for Ubuntu (which is ALSA 1.0.11). Inside this post you’ll find further instructions, which are adapted from a text document Tobin sent his tester group via e-mail. These are step by step instructions to set up 1.0.14rc3 ALSA drivers plus Tobin’s latest patch.
1. Backup your current drivers
tar -zcvf original-drivers.tgz /lib/modules/`uname -r`/kernel/sound
2. Next, get the latest release and bring it current.
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.14rc3.tar.bz2wget http://members.dsl-only.net/~tdavis/alsa-patches/conexant-latest-rc3.patchtar -jxf alsa-driver-1.0.14rc3.tar.bz2cd alsa-driver-1.0.14rc3/alsa-kernelpatch -p1 < ../../conexant-latest-rc3.patchcd ../../
3. Build the code.
cd alsa-driver-1.0.14rc3./configure --with-debug=detect --with-cards=hda-intelmakesudo make installsudo depmod -asudo dmesg -c >/dev/null
4. Stop all audio applications and remove all audio drivers
On my system, the following works:
modprobe -r snd-usb-audiomodprobe -r snd-hda-intel snd-hda-codec snd-pcm-oss snd-mixer-oss snd-pcm snd-timer snd snd-page-alloc
5. Reload the new driver
Simply run modprobe snd-hda-intel, look at the dmesg output and test it out.
Using alsamixer will show you all available channels. In gnome-volume-control, you can also enable additional channels with Edit->Preferences. You’ll need at least Master, PCM, and PCM-2 enabled to get proper volume working on the headphones and speakers. You’ll need Capture enabled in the Capture tab to get mic input working.
If nothing works, or one function doesn’t work, try reloading the driver with “model=test” as a parameter. On Ubuntu, this can be done by doing sudo vim /etc/modprobe.d/alsa-base and adding a line to the end that says This should enable everything.
If you have issues, you can try to contact Tobin Davis or other hackers at the ALSA team. Or you could even post a comment here and I’ll pass it along. Please include the system make/model, the subsystem line from “lspci -s 0:1b -vn” (Ex: Subsystem: 103c:30b2), the dmesg output from above, and the output from “cat /proc/asound/card0/codec#0”.
Update: Modified instructions based on Henrique’s input below. (Patchlevel argument for patch command was incorrect.)