Sunday, March 29, 2009

Linux Kernel

I upgraded the Linux kernel to 2.6.29 on two systems this week, and ran into completely separate problems on each upgrade. I haven't had any kernel troubles for a while, so I guess I was due.

I'm using the Debian packaged kernels which has for some time been separating the binary only firmware from the kernel, but this was the first time it actually affected me. The binary blobs that ship with the stock kernel, are a long standing issue for Debian because the blobs are not free software according to the Debian Free Software Guidelines (DFSG). The upgrade to 2.6.29 removed the firmware for my old ATI Radeon 9250 card. The strange thing is I didn't even notice!

The card still worked in 2D, so I assume that the firmware only affects 3D applications, which I don't run very often. I may have had a problem while watching a movie that had an unusual audio/video sync loss. It was unusual because the sync loss occurred at random intervals but corrected itself back to perfect sync. My experience with perceptible A/V sync loss is that it usually never recovers.

I only discovered the microcode was missing by accident while skimming through the list of new Debian packages this morning. I noticed a package called firmware-linux and in the description it listed the microcode for the my graphics card. A error message in the kernel log confirmed that the firmware was indeed not available any more. After installing the firmware-linux package, it was back to normal. This was a trivial problem that might have gone unnoticed for a long time if I hadn't checked the new package list.

The problem on the other system was much more severe but it manifested very soon after booting the new kernel. After only few minutes the network stack locked up completely. I couldn't even ping the lo interface! Some poking on Google turns up this thread on the Linux Kernel Mailing List. A patch reverts the change that is causing the lock up, but I decided to just remove the 2.6.29 kernel and downgrade to .28, rather than recompile the kernel. I have no urgent need for the upgrade so I'll wait for the updated Debian kernel. And yes folks, this is why you should never run Debian unstable on a server.

No comments:

Post a Comment