How To Fix a Fedora Bug, Plus Free Mini-Review

by redshift

In the spirit of my previous Exherbo review and guide to fixing an Ubuntu crash, let’s do the same for Fedora!

I was growing a bit tired of the development lag in Crunchbang Linux and needed a new distribution. I want a well-built system that doesn’t take too much administration so I can focus on other things. (As you may know, I have a tendency to set up and administer machines for fun, forgetting to do any “real” work on top of it.)

Fedora sounded good. All free software with fairly frequent updates. RPM hell is avoided with Yum. I particularly appreciate the use of the free Nouveau driver for my Nvidia card, and Kernel Mode Setting for a smoother start and fewer hassles.

When it works, Fedora is slick. They’re a bit ahead of Ubuntu in terms of features, with default SELinux, KMS, and better video drivers. Another thing I appreciate is that one of Fedora’s goals is to stay close to upstream. They don’t want to apply 10 patches to every package, preferring to send patches upstream and get down to zero distribution-specific patches if possible.

It’s quick to boot, particularly with KMS. The battery life is about 10-15% longer than with Crunchbang, even with more daemons running.

However, I ran into a couple related bugs that hurt the experience. First, since I migrated my /home partition from a prior system without SELinux, I got a lot of SELinux warnings about my file labels. It told me to use restorecon, but that didn’t fix everything. The solution was to run “sudo touch /.autorelabel” which tells SELinux to relabel the entire system at the next boot.

This was complicated by the fact that HAL couldn’t start due to the SELinux failures. In today’s world of Xorg 1.4+, HAL detects and configures all of your input devices by default.

Without HAL, you have no keyboard or mouse to use in order to fix SELinux labeling. The solution is to log into single-user mode and fix it there. To get into single-user mode in Fedora, turn on your computer and hold Shift after the POST, before you see the Fedora startup screen. This will give you a Grub console. Hit “a” to append to the kernel line, adding a space and a “3” to the end, then hit enter. (“3” technically gives you multi-user mode with networking, but the point is that it doesn’t start X.) From there, you can create the autorelabel file or whatever else you need to do.

Note: If you just want X to start without worrying about SELinux, or if you have another problem related to HAL input devices, there’s another option. You can tell X to start even without detecting any devices from HAL. This makes it use the default keyboard and mouse types. Just create an /etc/X11/xorg.conf file with the following contents:

Section "ServerFlags"
  Option "AllowEmptyInput" "off"
EndSection

Summary: I’m going to stick with Fedora for a while because I trust a distribution that likes staying close to upstream.