After getting a virus for the first time in 6+ years, and a failed stick of RAM, I decided it was time to move away from Windows and on to Linux. I’ve been using RedHat based distros for about 10 years in a server capacity, but never felt it was really ready to take over my desktop. I’ve used Ubuntu a few times, and regularly use SuSE at work, so I certainly have a high comfort level. After seeing the features in changes and F16, I decided to give it a shot (since I had to do a fresh OS install anyway).
For the most part, everything worked great. There were even a few things that wouldn’t work that did in Fedora. For example, I have a 3G card (bought it cheap for GPS) which there were no 64-bit Windows 7 drivers for, making it useless. I also have a Creative Extigy sound card. I wanted to be able to hook up my PS3 and laptop simultaneously to my Logitech Z5300e 5.1 speakers (without always having the laptop on, the main draw of the standalone Extigy). Unfortunately, again, there were no Windows 7 64-bit drivers for it. Because of this, I had HDMI running to my monitor, then analog audio from my monitor to the line in of the Extigy. It was a hack, but it worked. Both devices were detected and working immediately in Fedora.
There were, however, a few snags that made it rough to stomach the transition.
No Sleep Mode
The first thing I noticed, was that I couldn’t put my laptop to sleep. If I did, when it resumed, I got a dead screen. I couldn’t even switch to a terminal, I had to force it to power off. There are tons of reports of this phenomenon on various laptop models all over the web. Finally, I found a bug in RedHat’s Bugzilla which mentioned adding “pci=nocrs” ”hpet=disable” to the kernel command line. Worked like a charm. To add this, you can run:
vim /etc/default/grub
Add the options “pci=nocrs” ”hpet=disable” to the end of the GRUB_CMDLINE_LINUX entry, so your file looks like this:
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Fedora" GRUB_DEFAULT=saved GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8 hpet=disable
Reboot, and you’re good to go.
Horrible Battery Life
The next big issue was the battery life. I was accustomed to anywhere between 4 and 4 1/2 hours under Windows; Fedora gave me 2 to 2 1/2 out of the box. This was unacceptable. After digging, I found that it all boiled down to the video drivers. The open source ATI drivers work flawlessly for what they’re intended, displaying video. However, their power management abilities are sub-par to say the least. Getting the ATI proprietary drivers installed wasn’t exactly a walk in the park though. First, you’ll have to make sure the RPMFusion repository is configured (I won’t repeat their directions, check it our Here).
Next, you’ll need to run:
yum install akmod-catalyst-11.11 xorg-x11-drv-catalyst-libs xorg-x11-drv-catalyst-11.11-2
You’ll need to add a few kernel options as well to make things work:
vim /etc/default/grub
Add the options “pci=nomsi” and “nomodeset” to the end of the GRUB_CMDLINE_LINUX entry, so your file looks like this:
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Fedora" GRUB_DEFAULT=saved GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8 hpet=disable nomodeset
Now we’re almost done. The last tidbit is to allow a few options through SELinux. Without this, GDM will simply crash before giving a login prompt. I’m not a huge fan of playing with SELinux stuff, so I just set it to permissive mode:
vim /etc/selinux/config
And change the option for SELINUX to permissive, your file should look like this:
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
Now reboot and you’re all set. You will see a little slowness and artifacts in the new Gnome 3 Shell, and it may crash every few hours (takes less than 2 seconds to reinitialize, and no other applications are affected), but I think it’s a fair tradeoff for an extra 2 hours of battery life. If anyone is interested in setting the SELinux permission appropriately, please let me know and I’ll update the post. If I get bored one night, I may figure it out myself and re-post
A Note on Edits: The pci=nomsi isn’t required after setting SELinux to permissive. The pci=nocrs does not work with the proprietary ATI drivers. I guess I posted too soon before full testing :/