Gentoo (A.K.A. “Compiling!”)
For this version of the experiment I have chosen to try my hand at installing Gentoo. Gentoo, for those who don’t know, or who weren’t following Jake’s posts during the original experiment, is a fully customizable distribution where you have to compile and install all of your applications from source code downloads. Thankfully they do offer some excellent package management tools, Portage in particular, that help automate this process.
I suppose a bit of background is the best place to start. During the original experiment I ran Fedora which, while having a whole host of issues of its own, was more or less a straight forward experience. Since that time I’ve dabbled here and there with other distributions, Ubuntu, openSUSE, Linux Mint, among others. For this experiment I wanted a bit of a challenge. I now know the basics, and then some, about running a day-to-day desktop Linux system but I still don’t fully understand all of the inner workings that are going on under the hood. That’s where my choice of Gentoo comes in.
I began by following the rather excellent Gentoo Handbook which thankfully got me to the point where I was able to boot my machine, without the installation media, into a kernel that I had personally configured and compiled. To say that this was smooth sailing probably isn’t accurate, but considering what was actually involved in getting to this point, and how quickly I managed to do it, is a testament to how easy the guide actually is to follow along with.
One thing I would stress to Linux users who may want to try Gentoo and are coming from a more user friendly distribution like Ubuntu is to make sure to get a list of hardware before you start. Run lshw in your Ubuntu (or whatever) install and save the output somewhere. This will show you the list of hardware devices and more importantly the drivers required to run them correctly. I ran into a snag early on where my network card wasn’t working even though Gentoo claimed to be loading the drivers correctly. A quick modprobe later of the driver that was shown to be in use from my earlier install, tg3, and I was back and Internet enabled. Sadly even the lshw output didn’t provide a whole lot of direction when it came to picking and choosing some of the more obscure configuration options for my kernel.
So what do you do when you can finally turn your computer on and boot into your kernel? Well install X I suppose. Unfortunately it was this step that caused me more grief than any of the others. You see apparently you’re supposed to remember what graphics card is in your machine before you try and build a kernel that supports it…
Following along with the X Server Configuration Guide I made it all the way up until the point when I had to specify which “in-kernel firmware blobs” I wanted to compile into my kernel. After, literally, hours of compiling X and then a series of trial and error attempts I finally found a combination that seemed to work. For my own reference the only firmware blob I seem to require is
I finally had a system that could start X and present me with multiple(!) graphical terminals. By this point I had sunk about ~5 hours into this project. Now it was time to try setting up a desktop environment. My two main choices were GNOME 3.x or KDE SC. I opted for KDE for two reasons:
- I hadn’t used KDE 4.x in a couple of releases and didn’t mind it last time I had tried it
- I have yet to try GNOME 3.x but since it is quite the departure from the 2.x series I figured I would go with what I know for now and maybe try GNOME 3.x later
Pulling up the Gentoo KDE guide I began my compilation of KDE SC.
emerge -av kde-meta
More than 400 packages needed to be compiled and installed. My system, a Core2Duo at 2.4Ghz and 4GB of RAM, took approximately 24 hours to finish this single process. Gentoo is certainly not a system that you can expect to have up and running in an afternoon if you’re expecting to have a fully working desktop environment.
USE Flags are ridiculous. I understand the concept for them but the fact that you have to continuously add to this list in order to compile programs you explicitly told it to install is a bit much. If you don’t know what a USE Flag is consider yourself lucky. For those thinking about installing Gentoo, don’t worry you’ll know soon enough.
Be sure to change the root password and add any user accounts after you chroot into your new installation. Otherwise you’ll end up like me and boot into a system that you can’t log into!
Well I’d like to finish setting up my desktop. I now have KDE installed but there seems to be some missing components that I hope won’t require a re-compilation… I’ll let you know how that turns out. I also need to sort out my wireless card and get that working. But hey at least for now I can browse the web in my new installation!