Getting Intel HD Audio Driver to Behave on Linux


As I've mentioned recently, I purchased a new laptop. This is my third personal laptop. Each time I tend to personalize it by making sure I can dual-boot into Windows and Linux; and each time I have a few headaches getting everything to work. Obviously, the laptop you "just bought" at Best Buy or Fry's Electronics isn't in wide use yet. Thus, the Linux community cannot address all issues on this newer hardware. This laptop was no different, as I experienced a few annoyances with the built-in Audio.

Troubleshooting these annoyances can be difficult. Popular distributions like Fedora and Ubuntu tend to be more on the "cutting" edge side of things. That's a benefit, as you'll be more likely to have support for these newer pieces of hardware. However, it can also be a detractor as these distributions are anxious to compete with commercial operating systems like Windows. In the case of audio, both Fedora and Ubuntu are now shipping with PulseAudio. If you read many of the forums on the subject, users tend to be exhibiting a begrudging acceptance of this new audio subsystem.

My Problem? There are three...

First, I often like having my laptop output to some small desktop stereo speakers for musict. Sometimes I don't. My installation of Fedora 10 (64-Bit) was not switching from speaker to headphone as it intuitively should when a plug is inserted into the headphone jack.

Second, any PCM audio generated by Fedora was skipping.

Third, microphone input is not amplified well enough. (This problem persists for me).

To find out what type of audio hardware was present in my system, I issued the following command from a Bash prompt.

$ lspci | grep Audio

The output was as follows..

Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)

From checking out about this hardware online, you can see that ICH9/rev 3 is a fairly recent revision. By Googling for terms "ICH9 +fedora +audio +problems" I can find out a few things. Notably, it's a fairly recent revision.

The older message board entries seemed to imply that an "option" needed to be passed via the driver. I tried that (while in an ALSA configuration rather than PulseAudio. Later versions of ALSA accepted driver options), it didn't fix my problem. I was doubtful it would, as many of these entries were dated in 2007 and encouraged kernel/driver version upgrades. (Fedora would have obviously adopted these changes into the distribution in that time).

As I briefly mentioned above, I would switch from PulseAudio back to ALSA only to see if the problem changed at all. It didn't.

Another variable I was able to remove: 64-bit vs 32-bit. I speculated that the 64-bit driver was still a bit problematic. I had a 32-bit "LiveCD" of Fedora, so I booted said laptop with this disc. The audio still skipped with the 32-bit version.

After reading some more, I found that "AutoStatic" at FedoraForum.Org had some success by adding the "pci=noacpi" option in his grub.conf file. This definitely fixes the skipping audio issue, and it activates the "switch" that's needed when plugging in something to the headphone jack. (See thread for more details.)

However, "pci=noapci" is not a perfect soultion, as it may inhibit other proper behavior of other functions of the operating system. I'm still faced with not being able to amplify the microphone input.

At this point, I'll just have to stay tuned to kernel updates and see if a fix eventually comes through.

Leave a comment