K.Mandla's blog of Linux experiences

Lowarch 0.1.1 on 450Mhz K6-2, 256Mb

Edit: Unfortunately, the images originally included in this post are gone, because of hosting problems in late 2009. My apologies.

With my main system rebuilt I tackled the prospect of making my ugly little laptop into a speed demon again. I also took the time to experiment with some BIOS settings because I think the power management was causing havoc. Since there’s no battery in it and I don’t want any kind of CPU scaling, I tried (as best I could) to get the BIOS to just do its job and stop interfering. So far so good.

Gutsy was only partly successful on this machine, which is not a criticism since it’s under development. My main issue was the framebuffer quirk I kept getting, regardless of what I threw at it. After X started, I got dead screens at all ttys, but even worse, when X hit the blank timeout, it would never come back. I know the system was still running, but nothing would bring back X or a tty.

I don’t really do anything with that machine aside from checking e-mail or streaming audio, so it wasn’t a big deal. But I kept having to tap the mouse or a key to stave off the BlankTime, or else I’d run aground with X and have no way of communicating with the computer. It was starting to make me paranoid.

So after I rebuilt my main system (ah, that clean, fresh feeling!) I gave Gutsy the boot, and burned a fresh CDRW with the Lowarch ISO. Installation to the base system took about 15 minutes, and the network was online and flickering with no effort at all.

Really, it’s a shame the project has stalled. Results were very, very impressive. Boot times to the desktop (an Openbox arrangement) were under 40 seconds, and that’s with module autoloading and a full-fledged mkinitcpio configuration. I know I could have trimmed it even further, if I had taken the time.

The Lowarch repository is here, and if you peruse the list there, it’s rather thin. You can get most of the good stuff for a working system, but if you want much more than that, you have to make it yourself.

I let X configure itself with X -configure, but it never seems to get it just right, and I had to add screen dimensions and correct the color depth. The Silicon Motion driver wouldn’t do anything but 640×480, so I had to use vesa to get a usable screen. For some reason, my generic USB mouse wouldn’t function, even after I added the /dev/input/mouse path, so I was forced to use the touchpad (which I hate).

Openbox 3.3.1 was available, so I installed that, but Obconf isn’t. Dillo and Firefox — the two extremes for browsing — are there, but nothing in between that I like. No Xfe or emelfm, but PCManFM is there, which is acceptable. In fact, most of the ultra-lightweight applications that I prefer aren’t on hand, but acceptable GTK2 ones are.

For some options, they created more problems than they were worth. I’m accustomed to rxvt-unicode, but only rxvt is available, and I was getting strange redraw effects with that. I ended up settling on aterm, but the keymap was wrong for my keyboard, which made things even more difficult.

At this point I decided I had put way too much effort into it, knowing full well that it was only half the system I wanted, and aside from speed, not really working out. I had already changed my makepkg.conf to the correct cflags for this processor, and I was on the verge of compiling some things when I stopped.

One of the things I love about Arch is that I don’t have to compile, that most everything is pre-tuned for speed. And the idea of compiling a bunch of stuff on a 450Mhz machine just isn’t appealing. So I decided to go a different route, a way that could only lead to madness. …

I swapped out the Lowarch repository for the standard Arch repositories, and updated the package list. I added Mirage, Leafpad, Audacious … just like a full GTK2 system.

Results were … scary. Most things wouldn’t run — they’d segfault or give an “Invalid command” error. Others wouldn’t install at all, complaining that certain packages couldn’t be updated. But sometimes, something would work, and it made me all giggly.

Ultimately, I had a rather motley collection of stuff, some working, some not. That’s when I decided to go for broke. I shouted, “If I can’t have you, no one can!” and I did a complete system upgrade.

Of course, that was the death blow. Everything updated across the board. Aterm flopped over and kicked its feet in the air. Audacious looked at me funny and started to cry. I jumped to a tty and got random confused scribblings from inside the system’s brain. I tried to go back to X … and everything just froze.

It was beautiful, and I killed it. Power down, goodbye.

In retrospect, it would be a very sad thing if Lowarch is abandoned. This is a fantastic way to get a pre-Pentium II machine back on its feet, and like I said, 40 seconds to the desktop without any hand-tuning is miraculous. Every i586-and-under PC should be running this.

But without faithful updates and a community to follow it, there’s just too much left to take care of manually. And in that case, to me, there’s no difference between recompiling things in Lowarch, again and again and again, and using something like Gentoo.

P.S.: As a side note, I reinstalled Lowarch a day or two later, thinking maybe it would be in my interest to try recompiling, and also to get a feel for XFCE 4.2.3.2, which is the version in the Lowarch repo. I also wanted to time it against other XFCEs, and the difference in start times was almost negligible. XFCE started as fast and felt as perky as Openbox on Lowarch.

I didn’t keep it around long because there’s just too much that’s missing from the Lowarch repos — xfce4-terminal, for one, which means you have to use aterm, and a second look at recompiling confirmed it was a no-go — but it was interesting to note that even with a comparable (?) system load, Lowarch is wicked fast.