Slack Notes on Installing and Tuning Slackware-12.2
Author: Mikhail Zotov
Published: March 22, 2009, though actually written in January :-)
Foreword
I actually didn't plan to install Slackware-12.2. On my main machine at work I had a fine-tuned Slackware-11.0, and a fine-tuned Slackware-12.0 at my main machine at home. Unfortunately, the hard drive on my machine at work died unexpectedly (do they die "expectedly") a week before Slackware-12.2 was released, thus I decided to give it a try.
The PCs I have at my disposal are quite old. The newest of them (a 2.2GHz Pentium-4 on an Intel mobo) was manufactured, I think, around four years ago. I have no gadgets to plug in the PCs but USB flash sticks and an external DVD writer by HP. My needs at the desktop level are modest, too. I'm using blackbox-0.65 with a custom theme for years and feel almost absolutely happy with it [*]. My favourite file manager is still Midnight Commander. Thus, I expect my experience with Slackware won't be useful for many users. Anyway,
Installation
Installation went smoothly as usual. I decided to create encrypted root partition, thus README_CRYPT.TXT was my main guide. I had only a minor problem at the final stage of setup. The guide says:
We are done. Save your changes, exit the editor and run the command lilo. Lilo will issue a couple of warnings concerning a difference in what /proc/partitions reports and what lilo thinks are the available partitions, but it is safe to ignore these.
In my case, lilo did issue not just a couple of warnings but also a "Fatal" error complaining about missing /dev/mapper devices. I exited from chroot, copied necessary files to the destination, entered chroot again. This time, lilo ran as expected. Voila!
One suggestion for those who is going to install Slackware-12.2 on a slow machine. Don't choose to install gutenprint unless absolutely necessary. Gutenprint creates PPD files after installation, and it takes eternity on a slow machine. You can add gutenprint when you are up with the installation. Besides, there are chances you won't need gutenprint at all, see below.
Setup
Video
The first (and only) serious problem I had with Slackware-12.2 related to the Intel video driver. The problem was heavily discussed on AOLS, thus I will only recall the main point. The Intel driver ignored settings made in xorg.conf or by other means when working with an old CRT monitor. Replacing the monitor with a newer model improved the situation but didn't solve it: I couldn't set the mode I needed. On the other hand, the driver worked fine with an LCD monitor I borrowed from my colleague. The problem was "fixed" by plugging in an Nvidia card. Gosh blame Intel dot
Printing
At work, I have an HP LaserJet 3320 MFU. It used to work fine with previous releases of Slackware. This time, I faced a strange problem when using Gutenprint driver. The point is that I often print texts in the two-pages-up mode. I find this to be handy, e.g., with texts published on the web. I first print the text in a PostScript file and then rescale and rotate pages using pstops. Usually, this works fine. This time, the output was ugly and hardly readable. Gutenprint complained this way:
Gutenprint detected a bad color depth (1). Output quality is degraded.
I tried a few setting, the updated gutenprint but this didn't help. Thus I have chosen a "standard" PostScript driver, and this fixed the problem. Surely, gutenprint was removed after this.
Another printer I'm using every day is a cheah HP LaserJet 1120. With the stock driver, it takes around 30 s to print a simple PostScript page. This is obviously an unacceptable rate. Luckily, there's foo2zjs that works with this printer just fine.
Networking. I hate udev
I have two NICs (three, sometimes) at my main machine at home. One of them is a built-in Intel card which I want to be eth1. I failed to "ensure" udev I want it to be this way. (No, editing /etc/udev/rules.d/70-persistent-net.rules didn't immediately help.) Besides, udev used to load the e100 driver for it instead of eepro100, which I prefer. Thus I created an ole good /etc/rc.d/rc.netdevice and used it to load the driver I want.
Other stuff
Midnight Commander that ships with Slackware-12.2 is buggy. Yes, it is. The most annoying bug is its inability to honour the "preserve Attributes" setting when copying/moving files. I have fixed the problem by compiling and installing mc released back on 2007-01-24.
Later update: Luckily, Midnight commander seems to get the second birth. Version 4.6.2, released in early February, is free from the above mentioned bug.
Custom stuff
My favourite "all in one" image viewer is http://www.klografx.net/qiv/. It compiled flawlessly but didn't work in Slackware-12.2 producing the following error message:
Gdk-ERROR **: BadMatch (invalid parameter attributes) serial 108 error_code 8 request_code 2 minor_code 0
The problem was fixed by adding export XLIB_SKIP_ARGB_VISUALS=1 to /etc/profile.
Another problem that I had in Slackware-12.2 first appeared in Slackware-11.0 after replacing the 2.4.x kernel with a 2.6 one. It is often called "Ghost Users" and is described in details by Michiel v. Wessem here. I will cite Michiel then to explain the problem:
You take one Slackware 11.0 system, patched and all, installed with the 2.6.17.13 default kernel. You boot the system and everything humms happily around. You log in and out and do your usual works until, at some point you check logged in users and other various user things and you see the following output of /usr/bin/last:root tty2 Thu Jan 18 18:50 gone -- no logout
That's it! This doesn't happen to root only but also to "mere mortal" users. I checked and tried everything I found on the subject on the Net but nothing fixed the problem. A hint came from Michiel who pointed a seemingly trivial patch for sysvinit. The patch didn't work first. After a slight modification, it solved the problem, and now ghost users are gone :-) The patch can be downloaded here.
I have added more than a hundred packages to Slackware. The most of them migrate from one installation of Slack to another, but still this would be a daunting task to upgrade all of them without Slackbuilds.org. Thanks men!
I do also run a custom kernel. The first funny problem I had with it looked this way. Top and other similar tools reported about
load average: 2.00, 2.00, 2.00
while the processor was actually idle. The problem was caused by CIFS compiled into the kernel. Building it as a module fixed the problem.
Open problem
From time to time, bbkeys gets mad taking all power of the CPU. This takes place either when I start blackbox or quit it. This isn't actually a problem of Slackware-12.2 since I first faced it with release 11.0. I have no idea why this happens and how this can be fixed :-(
Conclusions
Slackware-12.2 works fine. Still, for users who, like me, have old hardware and need few bells and whistles, the latest release hardly brings any benefits over Slackware-12.0. In my opinion, this is not the "fault" of Slackware but the consequence of the way Linux is evolving. The kernel team releases a new version of the kernel almost every other week, including security patches, but few of the new kernel features are necessary for rank and file users, especially for users of the low-end hardware. (Here I mean the 2.6.27 series kernel, which shipped with Slack-12.2.) Time one needs to compile a 2.6 kernel is steadily growing, and is a few times greater than that needed to compile a similar 2.4 kernel. On the other hand, it is just impossible to compile a 2.4 kernel with gcc that ships with modern distros (Slackware>12.0 in our case).
[*] Perhaps, I will switch to fluxbox one day. Fluxbox provides a "real" full-screen mode even for xterm, and I like the feature. I don't like the way fluxbox switches between windows though. Thus, I need to make sure fbctrl provides the feature I'm missing.