Long time readers will surely now be familiar with my trusty IBM Thinkpad T40 ‘hunter’, that of the Debian install fun from the beginning of this year. I had installed the ‘sarge’ release (which later became Debian stable), and had been pretty happy with it. However, the time had come to jump distribution versions again, which meant going to Debian ‘Testing’, aka ‘etch’.
A major distribution upgrade is never something to be undertaken lightly, but after some preparation, I took the plunge.
First and foremost. Etch is ‘testing’. Which means it’s under revision, and is theoretically the ‘beta release’ of the next version of the Debian linux distribution. As such, it’s expected that some things may not work in it. There are other levels of releases in the Debian hierarchy (‘unstable’, etc), which are far -more- unstable, but my experience has been that the ‘testing’ is useable for day to day work, and is far more up to date than the ‘stable’ release.
Setting up sources.list
On to the installation. Changing a Debian ‘stable’ system to a Debian ‘testing’ system is actually quite simple. Since virtually everything in Debian Linux is tracked via the ‘apt’ utility, the first step is changing the /etc/apt/sources.list file to point to the new distribution directories. For my setup, I use the RCN.com mirrors – they’re fastest for my particular location. I’d recommend using the apt-spy program to figure out what mirrors are closest to you.
My sources.list looks like this
deb http://secure-testing.debian.net/debian-secure-testing etch/security-updates main contrib non-free deb http://mirrors.rcn.net/debian/ testing main contrib non-free deb-src http://mirrors.rcn.net/debian/ testing main contrib non-free deb ftp://ftp.nerim.net/debian-marillat/ etch main
Once these are in place, you need to update the ‘apt’ database to reflect all the new available packages. Do this with the ‘update’ command to apt:
This should only take a minute or two.
Doing the upgrade
Once your local database is ready, it’s time to take the plunge. I used aptitude for this upgrade, but you could just as well use ‘apt-get dist-upgrade’. Aptitude is a little prettier about certain aspects, but they basically do the same thing:
aptitude -fr dist-upgrade
For me, this process took almost 2 hours. It really is a matter of downloading and installing an entire new operating system that is running all the same packages you were running under the previous version. For the most part, this process is entirely automated, and just requires a lot of time. You may be prompted to overwrite or update iles you may have changed locally (in my case, /etc/mysql/my.cnf had been locally altered), but for the most part, the whole process runs without intervention.
Once this is all done, cross your fingers and… reboot!
Now, some may argue this is not the best tactic, but my experience has been “It’ll just plain work.”. Having upgraded distributions before, I can say with some conviction that things ‘just work’. My reboot came up clean, complete with X running properly (now under X.org, the replacement for the aging and twitchy X11R6 line of X servers). More on this in a minute
All seems too simple, eh? Well, it was. There are a few twitches, but honestly they’re fairly minor considering I just made a 6-8 month jump in software revisions. I went from KDE 3.3 to 3.4.2. I changed X-servers. etc etc. These are all fairly major applications, and all of them upgraded without a problem. But lets take a look at some of the advantages and quirks that came up.
X.org vs the Thinkpad
The first thing that I noticed was the ‘magic’ I was using for my T40 external monitor was not working anymore. Under X11, I had a sort of decision tree mapped out that described how I needed to boot things up. IF I had the laptop in the dock on powerup, then the external monitor would not init properly. IF I powered up, then docked it during the boot, the monitor would come up, but be in the wrong resolution, but it was switchable. IF I let the boot finish, THEN put it in the dock, the external monitor would come up, be in a DIFFERENT resolution, but would still be switchable.
Naturally, I was hoping to fix some of these problems. X.org is a fork of the XFree86 server that was prevalent through much of Linux’s (and others’) development of Unix desktops. From the Wikipedia article on the X-Window System : blockquote>Up to 2004, XFree86 provided the most common X variant on free Unix-like systems. XFree86 started as a port of X for 386-compatible PCs and, by the end of the 1990s, had become the greatest source of technical innovation in X and the de facto steward of X development . As of 2004, the most popular X server is the current X.Org reference implementation, a fork of XFree86.
Really, the details of the history of X11 aren’t important. Suffice to say that the new X.org server is a VAST step forward in X-Server implementations, and since I heard about the project fork almost a year ago, I’ve been waiting for it to become stable enough to switch to. That time had come with the upgrade to ‘etch’.
In most ways, the change to X.org was anticlimactic. It just plain worked. I did have a problem that the external monitor wasn’t switching resolutions in the way I had grown accustomed to. This was expected, but hoped that X.org had a way of working around it. It turns out, it most certainly did. I needed to add the following lines to /etc/X11/xorg.conf to tell my system that I occasionally had 2 monitors, and if the 2nd monitor was sensed, here were the potential ‘matches’ for displaying on both screens. Lines 94 and 95 are the ones I added, the others were in there as part of the upgrade:
94 Option "MonitorLayout" "LVDS,TMDS" 95 Option "MetaModes" "1400x1050-1280x1024 1280x1024-1280x1024" 96 97 Option "DisplayPriority" "4" 98 Identifier "Card0" 99 Driver "ati" 100 VendorName "ATI Technologies Inc" 101 BoardName "Radeon R250 Lf [Radeon Mobility 9000 M9]" 102 BusID "PCI:1:0:0"
This combination makes the whole system quite ‘smart’ when it comes to dealing with multiple monitors and dynamic resizing. I can dock and undock my laptop and change screen resolutions, and the list presented to me for options is always accurate (I’m still using the KDE Resize and Rotate tool talked about in a previous article).
There has also been an enormous amount of work done in the Debian USB support system, involving streamlining of the udev (USB Device) system to allow faster startups and more intelligent dynamic loading of modules. I’ll be writing more about this in a future article
In summary, the upgrade went very very well. I jumped to v2.2.3 of my favorite mail client (Evolution), my favorite desktop was upgraded, even my IRC client (X-Chat) was upgraded. Better than all that, I know that ‘testing’ keeps up with new revisions and updates faster than stable does, so I’m looking forward to being more on the ‘forefront’ of current Linux software, while not having to spend hours reconfiguring tools and recompiling apps from scratch. The Debian package system once again proves it’s mettle.