Another Linux installation experience

Article Index

After several years of procrastination, and some unsuccessful bids on eBay, I finally got a laptop computer. It's a Dell Latitude, and it came with a 650 mHz processor, a 12 MB hard disk, and 128 MB or memory.

"Only 128 MB of RAM," you say? Hell, I got by for years with a Commodore Amiga that had "only" two MB. I wasn't worried about this because my plan was to install Linux on it, and knew that Linux would work with this configuration.

So, after switching on the power and making sure that I got what I paid for, I proceeded to install RedHat Enterprise Linux Version 4. For a personal-use computer, it might have made more sense to install Xandros or Ubuntu, but I already had a copy of RH Enterprise on hand; somebody gave it to me at the recent LinuxFest in Bellingham. RedHat has another important advantage; it's easy to find RPM's for updated software.

After completing the installation (I had to depart from the RH Enterprise default configuration because I have no intention of ever using this laptop as an Apache host), the first problem I had to address was networking. The laptop came with a Linksys WPC11 wireless card, and RH Enterprise doesn't support it. The first thing I learned (and this is important information for geeks) is that this card uses the rtl8180 chip set. After some more googling, the consensus seemed to be that the best way to get this card working is to use a module called ndiswrapper. Downloading the source (from and "make install" was half the battle. (Since I didn't have any network connection, I had to use a modern “sneakernet”; burning what I downloaded onto a CD-ROM and moving it to the laptop. Fortunately, I bought a spindle of cheap blank CD-ROMs a few months ago.)

What ndiswrapper actually does is serve as a “wrapper” for Windows drivers. So, I had to get the Windows driver for the Linksys card. This was easy to find, because there's a directory on the site for supported cards. The driver that I ended up using came from Following the directions for ndiswrapper, I unzipped the driver file into /etc/ndiswrapper.

“modprobe ndiswrapper” gave me a “wlan0” device. However, it takes a bit more effort to get a wireless card working than an ethernet card. It's necessary to run “iwconfig”, and this is what worked:

iwconfig wlan0 channel 11 essid default mode managed

The “essid default” parameter is important, but the key thing for getting this working is “channel 11”. The channel has to match the channel of the wireless router that you intend to connect to. The remaining steps to get this working were:

ifconfig wlan0 netmask up
route add default gw

“” is the IP address of the router, and “” is the address I assigned to the laptop.

The next thing I addressed was printing. I already have an HP “3-in-1” printer attached to my principal Linux computer, and it's set up so I can print on it from a Windows computer that's part of the local area network that I just increased by 50%.

All of the current distributions that I'm familiar with install “cups” to handle printers. Cups is an excellent piece of software, but it is, in my opinion, inappropriate for most home users, and especially home users trying to cram as much functionality as possible into 128 MB of memory. The problem is, cups devotes a lot of resources to automatic detection and configuration of printers, and it does this as long as the computer is turned on. How often do you buy and install a new printer? If the answer is, “every five years or so”, it's better to configure the printer just once.

The alternative to cups is “LPRng”, and if you were using some form of Unix 10-15 years ago, you're probably familiar with the concept; you define the printers with the /etc/printcap file.

LPRng is no longer included with RedHat Enterprise distributions. So, I went to, downloaded it, unzipped it, and typed in “make install”.

The next thing I did was to add an entry to /etc/printcap for my networked printer. It looked something like this:


Pretty simple, right? This just says that if you make an attempt to print on the device “lp”, it will be routed to a printer named “devps” on a machine named “crow”.

The problem is, this didn't work. I got a “permission” error, and I never figured out what the problem was. Since I don't have problems accessing the same printer from the Windows machine, I looked into how this was happening, and I learned the the Windows machine was accessing it through Samba. So, I changed the /etc/printcap entry to look like this:


What this does is, when you attempt to print to “lp”, it gets processed by the /usr/bin/smbprint script. This script, in turn, expects to find a file named .config in the /var/spool/directory, and this is where you define the printer, and your samba user name and password.

This didn't work on the first try. In the smbprint script, the code that does the actual work looked like this:

cat | /usr/bin/smbclient "$share" "$password" -E ${hostip:+-I} \
$hostip -N -P $usercmd "$user" $workgroupcmd "$workgroup" \
-c "$command" 2>/dev/null

This may have worked with an earlier version of Samba, but it doesn't work with the version that comes with RedHat Enterprise Version 4. To get this working, I had to change to to this:

cat | /usr/bin/smbclient "$share" -E ${hostip:+-I} \
$hostip -N $usercmd "$user%$password" $workgroupcmd "$workgroup" \
-c "$command" 2>/dev/null

This is a problem that the RedHat people should fix.

Now for the nastiest problem. My intention was, for applications like Evolution and The Gimp, to use Xwindow in the traditional fashion; the program actually runs on my main Linux machine, but displays the GUI windows on the “X server”, which is the screen on the laptop. Normally, all you have to do to make this happen is, enter the command “xhost +”, then a command that looks something like this:

/usr/local/bin/ssh2 crow "export DISPLAY=laptop:0 ; /usr/local/bin/evolution-2.2"

This says, “log into the 'crow' machine, set the X display to 'laptop', then run evolution”. The result I got was a permission error, telling me that “crow” wasn't able to access “laptop”. This is the error that you get if you don't enter the “xhost +” command.

I tried a lot of things to fix this. There's a file in the home directory called .Xauthority that's supposed to control access to the X server, and you run a program called “xauth” to add things to it. I tried this, and it made no difference. I even downloaded and installed a more recent version of Xwindow, thinking that there might a bug in the version supplied with RedHat Enterprise that got fixed later. Nothing doing. After much hair-pulling and swearing at two different computers, I got a clue: when I ran “ps -auxw”, I noticed that there's a “-auth” parameter in the command that starts “X”. This led me to the file /etc/X11/grm/gdm.conf. There's a line it it that reads:


Uncommenting this, and changing the value to “false” solved the problem.

OK, now it's time to start making improvements. When I did the RedHat Enterprise installation, I chose the KDE desktop. KDE is another memory-hungry application, and I learned a couple of years ago that it's easy to replace it with the Xfce window manager. This in no way prevents you from using individual KDE applications such as kopete or knode. I was able to locate RPM's for Xfce at To add Xfce to the list of login choices when the computer is initially booted, I had to tweak the files /etc/X11/xdm/Xsession and /etc/X11/xdm/kdmrc.

RedHat Enterprise 4 comes with version 1 of OpenOffice, which is an essential application for a laptop. Version 2 of OpenOffice has a lot of significant improvements. So, I removed the three RPM's that make up the RedHat-supplied OpenOffice, then went to and downloaded and installed the most recent version (the “with bundled JRE” one).

Finally, there's a program I use called gkrellm that I've used for a long time that displays useful information about your computer's CPU and bandwidth usage. It's especially useful in this situation, because it shows you the charge level of your battery. I got a pleasant surprise with gkrellm; even though my principal system runs RedHat version 9 (with lots of updates), it's still binary-compatible with RedHat Enterprise Version 4. So, all I had to do to install gkrellm was tar up the directory where I had previously compiled gkrellm, un-tar it on the laptop, then “make install” to put all the files used by gkrellm in the right places; no compilation necessary.

Now, any article of the nature has to have a screen shot in it somewhere, so here it is. (Click here for an actual-size version.)


This shows gkrellm on the right edge. If you look at the upper right corner, you'll see that Xfce has a system tray, and there are two KDE applications running, kopete and kwifimanager.


0 #7 Guest 2006-06-16 07:01
Rather then manually setting DISPLAY to run X over your lan and having to deal with the cumbersome task of bypassing the X security features, e.g. using "xhost +" and enabling TCP connections, you could've used the SSH built-in ability to tunnel X connections.
All you'd need to do in that case is enable X tunneling on the SSH server by adding "X11Forwarding yes" to your sshd_config file, and then start SSH sessions from the client with the "-X" parameter.
SSH will do the rest, it will setup the DISPLAY and proper X secrity for you so you can avoid the insecure "xhost +".
0 #6 Theodore Kilgore 2006-06-16 03:32
First, let me say that I approve very much the idea of setting up the printer by hand. I use Slackware and I still use lpd in spite of the fact that it has recently been dropped from the distro. The following comments are based upon the successful setting up of a printer hooked to a machine on my home network. There are two possible problems that I see in what you did.

You said:


"Pretty simple, right? This just says that if you make an attempt to print on
the device lp, it will be routed to a printer named devps on a machine named

Are you sure that the printer on crow is actually called this? If the line
in crow's /etc/printcap says this is the name of the printer, then good.

"The problem is, this didn't work. I got a permission error, and I never
figured out what the problem was."

Perhaps you did not also set the option


in /etc/lpd.conf

and if you did not do this, then lpd is looking for an attached printer and
refusing to print over the network, no matter what you put in /etc/printcap.

Unfortunately this is only in recent versions of lpd, so anyone who did not
use lpd in the past couple of years probably does not know this. This config
file simply did not previously exist.

Hope this helps.
0 #5 Guest 2006-06-16 03:31
RHEL4 (or CentOS 4) is fine as an operating system. Especially for somewhat older systems where hardware support is guaranteed.

The advantage of an enterprise operating systems is that you can run it for 8 years from GA with security updates without needing to upgrade your system.

Even if upgrading takes half a day, why would you want to spend half a day to upgrade one system every 6 months to get basicly the same functionality.

Fedora is nice and you'll have the latest stuff, but often 'having the latest stuff' is not the most important. For desktops it might be, for servers it never is.

When RHEL5 is released later this year, it will be newer than FC5, will be 'more ready' for the desktop and will have again 8 years of security fixes. We can only hope the Gnome libraries are stabilised by then so we can recompile Gnome programs released in 2008 on RHEL5 without requiring to upgrade Gnome to the latest release.
0 #4 Alex 2006-06-16 03:30
I see that you are well versed in the way's of 'nix, but why choose rhe4 for the laptop? You'd have a much easier time with a distro like ubuntu, mandriva, or mepis. The 128Mb of ram would be an issue for any of the large desktops, so damn small linux or puppy may have been better due to their modest system requirements.
0 #3 Guest 2006-06-15 22:09
So you were concerned about memory footprint, but use OpenOffice and Firefox?

If you actually ran the KDE desktop with Konqueror and KOffice (1.5.1 is quite good) you'd probably find it much lighter overall since they all share the same libraries and are generally lighter than their "stand-alone" counterparts.

I've run KDE in this configuration comfortable in as little as 96MB of RAM (uncomfortably in less, but that's no fund) on systems as slow as 500Mhz.

Of course, Red Hat's KDE (and most other of their desktop packages) aren't the swiftest, so perhaps that has coloured your perceptions somewhat.
0 #2 Guest 2006-06-15 15:08
RHv4 is quite a bit behind Fedora Core 5, especially at supporting laptops since RH4 is really for servers and big iron machines.
0 #1 Guest 2006-06-15 13:23
I have a similar laptop but a little slower with the same amount of Ram. I am thinking of putting Xubuntu on it.

Add comment

Security code