Wednesday, January 24, 2007

More Archlinux

Well I've been using Arch on an old Thinkpad 600X and a newer T42 for about a month or so now.

In the past I've used slackware on these systems. I occasionally try other distros ... to see what I'm supposedly missing out on. But I generally keep coming back to slackware. Generally, I like that slackware starts up quickly and doesn't start a bunch of stuff that you don't really want. I also like that it's aimed at experienced Unix users. It's generally been a good setup for compiling programs as well.

However, it's 2007 now and more and more Open Source stuff seems to have a huge array of dependencies ... that make compiling from scratch very time consuming and prone to failure.

Now, there is one other distro I have used for quite some time; Debian. I run it on a server here and use the stable branch (Sarge at the moment). I like debian because apt-get pretty much 'just works' and it's not a 'latest and greatest' type of distro ... which is generally what you want for a stable server. Having said that, none of the new 'cool stuff' for linux is available on Sarge. By this I mean the XGL/AIGLX/Compiz/Beryl stuff.

I wanted to try AIGLX plus Beryl on my Thinkpad T42. Sure, flashy desktops are not really my thing, but I wanted to at least try it out. AIGLX generally means using Xorg 7.1 or newer. Sarge still uses Xfree86 4.3. Slackware 11.0 uses Xorg 6.9. Sure there are notes and packages for putting Xorg 7.1 into Slackware (on the net), but it doesn't look pretty.

So I tried Debian Etch. I actually put this on my Thinkpad 600X (P3 500MHz, 576MB ram) first. I know, I know it'll never run Beryl ... but I just wanted to see how Etch installed and ran before I put it on my T42. The most noticeable thing was how slow it felt. The 600X had been running Slackware 10.2 and 11 for quite sometime and generally felt quite responsive. With Etch it just felt laggy. Some research led me to various posts that Slackware is compiled for i486 and optimised for i686 ... whereas I assume Debian Etch is not. This is all with a custom kernel (ie. compiled by me with specific support for the P3) and a lightweight window manager (icewm)

Archlinux
As per the previous post, I now have this installed on a 600X and a T42. All going reasonably well. Being laptops it often takes an eternity to get ACPI or APM working 'just right', and the fact that Arch seems to upgrade kernels to the latest and greatest all the time was annoying, hence my preference to set 'IgnorePkg = kernel26' in the /etc/pacman.conf file and then compile my own kernel.

Speedwise Arch is as fast or faster than Slackware (in terms of general responsiveness)

AIGLX and beryl
Setting up AIGLX and Beryl was one of the main aims of installing Arch in the first place. Anyway, there are some very nice short and to the point entries in the Archlinux wiki about how to setup aiglx and beryl. I ended up getting it running on top of XFCE4. It wasn't too hard. My graphics chip in the T42 (ATI radeon 7500) is too old for the fglrx driver, so I have to use the open source one in Xorg (which actually works pretty well).

So now I could do my rotating cube mumbo jumbo, Expose effect etc. Now, I'm not too interested in wobbly windows etc, but I am interested in the speed with which I can do stuff in linux. I use linux for work, and in the past I've been annoyed with how (even with lightweight wm's) linux can be slow in switching between apps ... especially when you compare it to windows running on the same machine. Sometimes this is just the lagginess of screen redrawing or the delay of alt-tab'ing. When you have multiple apps open including mutliple xterms, the speed with which you can 'find an app' is quite important. So I was pleasantly surprised that AIGLX + beryl + xfce4 was really really responsive and fast. All that hardware rendering is very fast and you can flip around apps quite quickly. In my opinion you can probably 'navigate' faster than when using a desktop in regular 2D mode. And this is on an older 3D chip.

However, one thing that doesn't work well is multiple monitors. I have a 17 inch 1280x1024 monitor plugged into the VGA port of my T42. In the past I've used the MergedFB2 setup (google for it) to make one very wide desktop which can handle the different screen resolutions together (the T42 just has a 1024x768 screen). That works fine without Beryl. With Beryl the screen is all screwed up. The only way I can get the two monitors to mostly work is to have the 17" monitor running at 1024x768. The closest I got to it all working was to set a 'Virtual 2048 768' in the Screen section of my xorg.conf, but that kind of gives you a mangled 2048 pixel wide screen. Supposedly there is some kind of 2048 pixel wide limit.... but I'm not too sure.

Good things about Arch linux 
  • The wiki is good
  • The startup mechanism is simple, and not much is started by default
  • There are enormous numbers of precompiled packages available in the various repositories. Its very easy to build the packages yourself. For example, I wanted to try the Linuxant hsfmodem driver. If I googled for 'archlinux hsfmodem' I see there is a package for it in the Arch AUR repository. Howerver, thats for a proper arch kernel, not my own one. So I just downloaded the tar.gz files for hsfmodem.tar.gz (and eventually hsfmodem-utils.tar.gz), extracted them, then ran 'makepkg' in each directory, and then I had a hsfmodem-utils hsfmodem package compiled for my kernel which I could then install with pacman -U
  • The fonts seem reasonable (once you add a few ttf fonts)
  • Everything is compiled for i686 (at least a Pentium II)
  • You don't have to use Gnome or KDE


Archlinux annoyances
  • It is a 'latest and greatest' type of distro. Its meant to be some kind of rolling distro without major releases (eg. My 0.7.2 install magically became a 0.8 setup during a pacman package update). So far in the month or two I've been running Arch, this has led to two annoying bugs creeping in. All these appeared after doing a pacman distro update. First, thunderbird decided that drag n drop should not work, and second, Beryl decided to paint large sections of the screen white. In each case I had to trawl through the Archlinux forums to find other people had the problem and the suggested fix. In each case I had to downgrade a package that had recently been updated. Arch keeps all the packages it installs under /var somewhere so it was simply a case of finding the correct one and running pacman -U against it (for reference, I had to downgrade to gtk2-2.10.6-1 and libgl-dri-6.5.1-3 ). The fix was easy once I found out what to do ... but it was annoying that such bugs could creep in.