However, unless you are a kernel developer, if you are recompiling the kernel or sound drivers, you are working against the system and making life harder on yourself.
There's a small glitch in newer versions of X.org that (until recently) didn't allow proper dual-screens on Radeon cards. I didn't remove the debian package, download the newest X.org CVS, and compile my own version. I just reverted the package and pinned it until I felt like upgrading it. Hell, there wasn't any reason to upgrade in the first place, so that was the first mistake.
If you ever have to compile something you are either not using a modern distro (Debian, Ubuntu, and, I presume, Fedora) or are using the same techniques that were required in the 1990s but are just bad habits today (I learned this the hard way).
I once couldn't make sound work on a laptop, so I tried all the obvious tricks - check if the mixer isn't accidentally set to zero etc. But when all failed, I decided to download the latest nightly build of ALSA, recompile it, and guess what - it solved the problem. I still don't know what it was...
I have similar stories with GPU support and power management, and I think I'm not alone. But we're getting into too much detail...
If you were using debian or ubuntu, they removed the firmware from ALSA for legal reasons. Ugh, I know; it would be nice if they warned someone. See https://bugs.launchpad.net/ubuntu/+bug/26294 or http://forum.soft32.com/linux2/Bug-434592-alsa-firmware-load...
However, I wouldn't expect anyone else to figure out which package to add either. But for you and I, this is at least a step up from recompiling.
(But reconfiguring everything is.)
I don't think Linux will take off until a major computer manufacturer gets behind it. Not just Dell shipping Ubuntu, but Dell creating its own distro guaranteed to work out of the box and keep working. Sort of a linux equivalent of Mac Os X, with one company responsible for everything on the machine.
Face it... Linux is hard. I am close to a Ph.D. in CS, have spent years programming in several languages on different operating systems, I'm a geek that tries out new Linux distros just for fun, and I still find it very hard to make them work. I always find myself recompiling the kernel, sound drivers, etc from sources. I always have to turn off automatic updates, because they always screw up the installation - this kind of badness simply doesn't exist on Windows.
The simple, dumb Windows model of software installation, where the vendor is responsible for providing a working self-installer, and every program occupies its own directory, just seems so much better than the intricate repositories of Linux distros, which you cannot bypass without risk of screwing up your system.
I like Linux and I will keep playing with it, but I'm not surprised by its minimal share in the desktop world.