Linux in Government: You Can Use the Desktop on a Laptop Now
The reports of my death have been greatly exaggerated.
---Samuel Clemens, also know as Mark Twain
Many variations of this "reports of my death" quote exist. The original note was written May 1897 in the author's hand. He wrote, "James Ross Clemens, a cousin of mine was seriously ill two or three weeks ago in London. The report of my illness grew out of his illness, the report of my death was an exaggeration".
Similarly, depending on the writer, many variations exist about the usefulness of Linux on desktops and laptops. In some ways, I understand the confusion and the various conclusions people draw. Recently, I had the opportunity to install Linux on an IBM ThinkPad, and both ingenuity and a commitment to complete the job were required. That's not what I expected at the start. I found Linux useful immediately. Later, I found the software I needed to make it work the way one would expect from a manufacturer.
As you read this article, keep this Samuel Clemens quote in mind. The majority of us have a tendency to avoid details and jump on the first generalization that comes around. I'm reminded of statement attributed to Al Gore that he "invented the Internet". In fact, he said, "During my service in the United States Congress, I took the initiative in creating the Internet". And, if you look at his history, he did take the initiative and helped create the Internet. The media, on the other hand, ran with the quote attributed to him. Don't fall into that trap if you can avoid it.
Recently, I bought a laptop. I consulted several friends to get a consensus as to which one would work best with Linux. Tallying the results, I decided to go with an IBM ThinkPad. I chose a barely used model T21 with a Pentium III 800, a 20GB hard drive, 256MB of RAM and a DVD-ROM. Prices ranged all over the place, but I found a one for less than $300.
Once the laptop arrived, I began searching around on Google to see which Linux distributions people used on ThinkPads. I even found a ThinkPad mailing list and some distribution-oriented laptop ones. Then, I found a tutorial that convinced me to go with Fedora Core 3.
Reading through the archives of the mailing lists, I started to conclude that most people used Linux on laptops as portable computers. Seeing comments referring to the battery as a UPS gave it away. Then, I started asking some hard questions and the answers convinced me that an information void exists. You certainly can use a laptop as a portable computer, but that's not how I intended to use it.
I went back to my friends and began asking how they used the function keys and buttons on their ThinkPads. As you might guess, they didn't use them. They also thought that the battery life seemed short. Of course, having all laptop functions fully operational at all times reduces the battery life.
As I continued to research Linux on the laptop, I found a scarcity of new material. Furthermore, many of the items I did find seemed less than useful. But, I did find nuggets of gold that allowed me to use my ThinkPad the way I wanted.
Although the Fedora tutorial gave me many of hints on how to configure tools to take advantage of the ThinkPad's built-in functionality, Fedora did not work for me. I decided to stay with 256MB of RAM, primarily so I could help Linux users who could not afford to add the memory needed to get to 512MB. Perhaps if I upgraded to a higher level of memory, I could use Fedora. At 256MB of RAM, however, Fedora creeped. I felt like I was using a memory-starved Microsoft Windows machine.
Call it a challenge, but many postings exist on the mailing lists I follow from international users who simply can't afford to upgrade their memory. To an American, it doesn't seem so unrealistic simply to upgrade. To friends in Hungary, the costs seem high.
I spent the better part of two days trying a variety of distributions. Before people start writing comments about how much better their distributions run than the one I chose, let me say I played no favorites. I wanted performance and I got it with Ubuntu. Contrary to what some of you might believe, it's not my favorite Linux distro. It simply performed the best in this case.
Later this month, I will cross the globe. The first leg of my journey will take 24 hours, and I have a speaking engagement about 12 hours after I arrive. So, preserving battery life and connecting wirelessly seem important. I also want to use the time to work.
I believe a manufacturer should do the things I did to get Ubuntu working on the ThinkPad. In a way, it helps prove up my argument that if Linux were bundled on HP, Lenovo, Dell, Gateway and so on, it would be as acceptable to users as is OS X or Windows. More on that a little later.
Once I installed Ubuntu on the ThinkPad, I had to add packages from various repositories, including Universe and Multiverse. The first packages I added include linux-image- 2.6.10-5-686, linux-source-2.10.10 and linux-headers-2.6.10-5. Ubuntu calls their kernel packages linux-images instead of kernel-image. Once I added the packages, I rebooted into the Linux 686 environment.
Next, I searched, found and installed the tpb package through Ubuntu's Synaptic application. According to the tpb Web site:
TPB is a little program that enables you to use the IBM ThinkPad(tm) special keys.
With TPB it is possible to bind a program to the ThinkPad, Mail, Home and Search button. TPB can also run a callback program on each state change with the changed state and the new state as options. So it is possible to trigger several actions on different events. TPB has a on-screen display (OSD) to show volume, mute, brightness and some other informations. Furthermore TPB supports a software mixer, as the R series ThinkPads have no hardware mixer to change the volume.
I noticed the ability to change the volume and use other keys immediately.
Next, using Synaptic, I searched for "thinkpad" and found thinkpad-base and thinkpad-source. I marked those for installation and clicked apply. They installed.
According to the maintainer's Web site:
This package contains the source code for the loadable driver modules used by the tpctl utility for configuring IBM ThinkPad laptop computers. Included are the sources for drivers of the Super I/O and RT/CMOS RAM chips, for an interface to the IBM ThinkPad SMAPI BIOS, and for an interface to the ThinkPad APM subsystem.
As the Web page refers to tpctl, I searched for that package in Synaptic and also installed it.
According to the tpctl Web site at Sourceforge:
tpctl is a package of configuration tools for Linux.
The centerpiece of the package is tpctl, a program that does some of what PS2.EXE does under DOS and the ThinkPad Configuration program does under Windows...
tpctl gives the user access to all the functions of the SMAPI BIOS that are documented in the various ThinkPad Technical Reference manuals. It can also control the resources used by the parallel and serial ports. The USAGE output and the README file should give a rough idea of what the program can do...
Packages included in tpctl include:
tpctl -- command line ThinkPad control program
ntpctl -- ncurses ThinkPad control program
tpctlir -- a utility that enables or disables the infrared subsystem on ThinkPads with Programmable Option Select
apmiser -- a daemon that automatically controls power expenditure mode (using tpctl) according to CPU usage
Finally, I discovered configure-thinkpad, a GNOME GUI tool for tpctl. According to the Web site: "configure-thinkpad is a GNOME ThinkPad configuration tool written by Cheuksan Edward Wang. The purpose of this tool is to make configuring ThinkPad easier. This GUI application uses GNOME 2 and is based on tpctl and ntpctl."
Unfortunately, I didn't find configure-thinkpad in the Ubuntu repositories. You can download the tarball from the tpctl site, though, and configure it using these steps, once you satisfy all the dependencies.
Uncompress the tar.gz file
cd into the uncompressed file directory
Run the ./configure command as user
Run sudo make
Run sudo make install
Here, you need to do some command-line work to get Ubuntu to work with the packages you downloaded. Let's take them one at a time. First, you need to provide the Linux kernel source. When you installed linux-source, it downloaded linux-source-2.6.10.tar.bz2 into the directory /usr/src. Move to that directory, and you will see it. To unpack it, use the command
sudo tar jxvf linux-source-2.6.10.tar.bz2
Now, your sources are available.
Earlier we referred to thinkpad-base and thinkpad-source. thinkpad-source contains the source code for the drivers. The package is set up so that make-kpkg compiles the correct driver sources for the kernel you are running.
tpctl contains everything but the drivers. For this, you need the thinkpad-modules package, which can be built from the thinkpad-source package.
David Tansey, a Ubuntu user and contributor who has written HOWTOs for the community, provided us with some commands through the ThinkPad mailing list. He suggested going to /usr/src/ and running tar -xzf thinkpad.tar.gz. Then:
cd modules/thinkpad/2.6/drivers make sudo make install
This creates the /dev/think device needed to run tpctl.
Next, run ./autogen.sh. You need to install the following dependencies so you can build configure-thinkpad:
libbonobo2-dev libbonoboui2-dev libgconf2-dev libglade2-dev libglib2.0-dev libglade2-dev libgnome2-dev libgnomeui2-dev libgtk2.0-dev