Running Linux on the IBM ThinkPad T23
NOTE: This web page is intended for Red Hat Linux 7.2 and will NOT be updated for newer versions. For information on running newer versions of Red Hat Linux I would recommended searching through the 'Links' section at the bottom of this page.
Written by: Chad Remesch with help
from:
- Jason Bowling
- Dr. Dmitry Golovaty
- Mark Roberts
- Dave Thompson
Originally created for: The University of Akron - Applied Mathematics Research Lab
Last Updated: January 20th, 2003
Todo
- Test IrDA
- Test S-Video
- Test CD-RW recording capabilities
Sections of this document
Introduction
This document attempts to describe running Red Hat Linux 7.2 on the IBM
ThinkPad T23 laptop computer.Though it is very Red Hat 7.2 specific, it is
the intention of much of the information to be useful for use with other
distributions. All information provided here should be used as a guide and
is provided as is without any warranty. If you find any errors or have information
to contribute please e-mail me at
chad@amrl.uakron.edu.
Hardware Description
- Processor: Intel Pentium III 1.13Ghz
- Memory: 256MB
- Graphics: S3 Savage IX based chipset
- Modem: Lucent Winmodem
- Sound: Intel 810 chipset? (see below modules.conf)
- Ethernet: Intel based chipset
Partitioning
This document assumes you already have and know how to use partitioning
software such as Partition Magic. Partition the drive however you like, but
make sure you leave at least 3-5GB to make Red Hat Linux 7.2 usable.
You will also want to leave enough space for a swap partition such that
the swap space is twice as large as the amount of physical RAM in the system.
For example, our T23’s have 256MB of RAM. Thus, the default partitioning
setup of the Red Hat install program is to created 512MB of swap space. It
is very important you follow this 2:1 ratio to prevent virtual memory problems.
As far as I know this is a requirement of all standard Linux kernels from
2.4.0 – 2.4.9. I believe this may have changed with kernels >= 2.4.10.
Assuming you use the new Grub boot loader (more on that later) you should
not have to worry about the 1023 cylinder boundary as you may have on other
Linux systems with large hard drives. I have successfully installed dual
boot Windows 2000 and Red Hat 7.2 systems such that the first 15GB of the
hard drive was allocated to Windows 2000. It appears this old annoying Linux
problem is gone for good with Grub and the newer versions of LILO.
Installation
Installing Red Hat 7.2 is surprisingly easy as much of the hardware is
properly auto detected.
I chose to begin the installation using the two-cdrom set of Red Hat 7.2.
The cdroms can either be purchased or downloaded for free from the many mirrors.
Thankfully the IBM T23 is able to automatically boot the first cdrom. This
is rather important, as our T23’s do not include floppy drives.
After the initial boot, Anaconda (the Red Hat installation system) automatically
switches in to graphical install mode. Once here, it is a matter of choosing
simple options such as the language, time zone, etc.
I chose to use Red Hat 7.2’s default boot loader named Grub. It is very
complete in its features including a graphical boot manager, LBA support
(for booting partitions past the 1023 cylinder boundary), Windows 2000 boot
support on NTFS formatted partitions, and many others. I have had great results
using the option to install Grub to the MBR (master boot record). This allows
Grub to boot Windows 2000 and many other operating systems. If you would
rather use the older LILO loader it is still an option.
One very important part of the installation is to SKIP the configuration
of the X Window System. Later on in this document you will find an explanation
of how to properly set this up. By choosing not to configure X the system
will boot in to the text login mode.
Other than the above-mentioned changes I decided to stick with as many
of the default options as possible.
Hardware
S3 Super Savage Graphics
Chipset
By default Red Hat 7.2 will not work out of the box with the graphics
chipset included with the T23. Though this is a minor inconvenience, S3
Graphics Inc. provides a binary only XFree86 driver that works great and is
easy to install. The exact file you need to download can be found at:
https://ranger.s3graphics.com/290-298drv/Savage_4.1.0_binary.tgz
Update: It appears S3 removed this driver from the web site. Download my copy of the file below:
Savage_4.1.0_binary.tgz
This website requires authentication. Since you don’t yet know the password
go to the above link and hit cancel to not login. You will then be taken
to a web page that tells you the login name and password. I’m not sure
if S3 would appreciate me giving out the login name and password so if the
above ’t work try going to the below link and looking around for
the drivers:
http://www.s3graphics.com/
Once logged in you will want to download the XFree86 4.1.0 “Savage/MX-/IX
(290-298)Drivers.” Everything you need is in the single Savage_4.1.0_binary.tgz
file. On the same site you can find an XFree86 version 4.0.3 driver.
You would want to use the 4.0.3 version only if you are running Red Hat
7.1 or some other distribution using XFree86 4.0.3.
Once downloaded you can extract the files using the below command:
tar zxfv Savage_4.1.0_binary.tgz
This will give you two files, s3switch and savage_drv.o. Once extracted
you will want to make sure you are logged in as root and copy these files
to the appropriate places by running these commands:
cp savage_drv.o /usr/X11R6/lib/modules/drivers/
cp s3switch /usr/local/bin/
If asked if you want to overwrite the existing savage_drv.o answer yes.
You will not need the old savage_drv.o since the new one works fine in
its place for the ThinkPad T23.
The final step in getting XFree86 to work is to run the “Xconfigurator”
command. Again, you will need to be root to do this. The important settings
here are as follows. Choose “S3 Savage4” for the graphics chipset. Then
choose “generic LCD panel 1400x1052” for the monitor type. Other than that,
make sure you set the resolution to 1400x1052 at 24bit color. This will
provide you will the best resolution the LCD can provide.
Note: I have been told some T23's may have different LCD screens that only run at 1024x768. The easiest way to determine this is boot up Microsoft Windows where you can find out the highest supported resolution in the display properties. You will then need to choose the correct resolution (the maximum supported in Windows) when using Xconfigurator.
That should be it. At the end of the configuration, Xconfigurator will
ask you if you want to test your settings. Choose yes and you should see
a very high quality graphical display of the T23. If for some reason you
get an error try starting from the beginning of this section. If you still
have problems you can try sending me some e-mail. However, assuming your
hardware is the same as ours this configuration should work.
Check the
Configuration Files section to view the XF86Config-4 I am using.
Important note to StarOffice and OpenOffice users!
For some reason when using this XFree86 graphics card module and StarOffice
(tested version 5.2), StarOffice causes the entire X server to
hang. I do not know if this is the fault of StarOffice or the driver
module, but it definitely is a problem. Fortunately a very simple fix exists.
By setting the environment variable SAL_DO_NOT_USE_INVERT50 to "true"
BEFORE running / installing StarOffice the problem seems to totally
disappear. Make sure you include this somewhere in either your personal
or system wide login scripts. Otherwise you will more than likely experience
the same errors as I did in X. Thanks goes out to the author of the S3
Savage Linux driver for pointing this out.
To add this environment variable append the below to the end of /etc/profile
(to make the change global for all users) or you can do it just for a
specific user by editing /home/some_user_account/.bash_profile instead:
export SAL_DO_NOT_USE_INVERT50=true
This of course assumes you are using the bash shell, which is the default
in Red Hat 7.2.
On board
802.11B Wireless LAN chipset
Many (if not all) of the T23 systems come with on board 802.11B wireless
networking hardware. I have not tested this hardware and I'm not even sure
if the T23 model I'm working on has this feature.
I have been receiving a lot of e-mails asking if I have any information
on how to set up the T23 wireless in Linux so if anyone has figured it
out let me know so that I can post your information here. At this time
I don't plan to investigate it myself since the Cisco 350 pcmcia card has
been working well.
Update #1: Stephen Evanchik has come up with some directions to make the onboard wireless chipset work with his system. Here is how he did it:
Hardware details:
The card is a PCI adapter based on the Prism2 chipset. Download the
source at http://www.linux-wlan.com . You will need the source tree to
your running kernel in addition to this package.
Steps to install the driver:
1. Unpack linux-wlan-ng-x.y.z.tar.gz where x.y.z is the version of the
drivers and utilities.
2. Change to the linux-wlan-ng-x.y.z directory
3. ./Configure
4. Here are the answers to the questions it asks:
Build Prism2.x PCMCIA Card Services (_cs) driver? (y/n) [n]:
Build Prism2 PLX9052 based PCI (_plx) adapter driver? (y/n) [n]:
Build Prism2.5 native PCI (_pci) driver? (y/n) [y]:
Build Prism2.5 USB (_usb) driver? (y/n) [n]:
Linux source directory [/usr/src/kernel-dev/linux-2.4.18]:
The kernel source tree is version 2.4.18.
The current kernel build date is Mon Jun 24 10:42:41 2002.
Alternate target install root directory on host [/]:
Module install directory [/lib/modules/2.4.18]:
It looks like you have a System V init file setup.
Target Architecture? (i386, ppc, arm, or alpha) [i386]:
Prefix for build host compiler? (rarely needed) []:
Compiling with a cross compiler? (y/n) [n]:
Build for debugging (see doc/config.debug) (y/n) [n]:
5. Run make all
6. su to root
7. Run make install
Now that the drivers are installed, you can do one of two things to enable
the card (as seen in the README). I've had good luck with just using the
scripts although I've used the manual configuration as well.
1. su to root
2. Open /etc/wlan.conf in your favorite editor
3. Search for 'SSID' and change the entry under the infrastructure section
or the ad-hoc section (or both). These do not have to be the same value.
4. Save your changes
5. Still as root, open /etc/modules.conf in your favorite editor
6. Add the line: alias wlan0 prism2_pci
7. Run /sbin/depmod -ae (if you see errors about undefined symbols, the
module wasn't built against your running kernel).
8. Now run: /etc/rc.d/init.d/wlan start and the card's module should be
loaded. You can test it by running /sbin/ifconfig wlan0
9. Assign the card an IP address, I used /sbin/dhcpcd wlan0 and it's been
working great!
Update #2: I found the following website that provides some
information on using the on board wireless networking hardware:
http://www.alex.org.uk/T23/
Sound
The Red Hat 7.2 installer automatically configured the sound card. In case
you are not running Red Hat, take a look at the modules.conf I am using
in the
Configuration Files section. As silly as it may sound, make sure
you try adjusting the volume in case it is muted by default.
Ethernet
Similar to the sound controller, the Ethernet controller was automatically
detected and setup during the initial installation. In case you are not
running Red Hat 7.2 or your distribution did not properly auto detect the
chipset, try taking a look at the modules.conf I am using in the
Configuration Files section.
Note:
Nick Papadonis's T23 page pointed out to me that the on board ethernet eepro100 driver in RedHat 7.2 is broken for many people. If this is the case for you, try installing Intel's own e100 driver. You can download it from Intel's web site here:
http://downloadfinder.intel.com/scripts-df/Detail_Desc.asp?strState=LIVE&ProductID=820&DwnldID=2896
You can also download my local copy of this file here:
e100-2.0.30.tar.gz
Modem
The T23 includes an on board Lucent Win Modem. Though Win modems have
had Linux compatibility issues in the past, a great driver exists to allow
this device to work in Linux. If using stock Red Hat 7.2 without any of
the official updates you will need the below driver:
http://www.physcip.uni-stuttgart.de/heby/ltmodem/dists/redhat/6.00a/ltmodem-kv_2.4.7_10-6.00a1-1.i386.rpm
You can download my local copy of the above file here:
ltmodem-kv_2.4.7_10-6.00a1-1.i386.rpm
If you are using Red Hat 7.2 with the official updates (including new
kernel) you will need to go to the main web site and look around
for an appropriate binary driver for your kernel.
http://www.physcip.uni-stuttgart.de/heby/ltmodem/
Assuming you are using the file named “ltmodem-kv_2.4.7_10-6.00a1-1.i386.rpm”
and stock Red Hat 7.2 (without any kernel updates) you can install the
driver using the following command:
rpm -ihv ltmodem-kv_2.4.7_10-6.00a1-1.i386.rpm
The rpm command will take care of everything needed to install
and configure the driver. The things it will do include installing the
driver to the correct location, modifying the file /etc/modules.conf,
and setting the symbolic link /dev/modem to point to the real character
device of the modem.
Once the driver is installed you can use any method you choose to configure
your dial-up Internet access account including the graphical tools within
Gnome/KDE/X.
Hard Drive
For some reason ultra DMA is disabled by default on the ThinkPad T23
with the stock kernel included with Red Hat 7.2. This can be fixed by
running the below command. However, do this at your own risk as enabling
DMA on IDE controllers can cause data corruption, but I haven't had any
problems.
/sbin/hdparm -d1 /dev/hda
I find that this increases hard drive performance. To enable it so that
each time the system boots, you will want to add the above command to the
end of the file /etc/rc.d/rc.local. If you would like to perform some basic
hard-drive performance tests before and after enabling DMA you can use
the following commands to test buffered and buffer-cache read operations:
/sbin/hdparm -T /dev/hda
/sbin/hdparm -t /dev/hda
Neat White LED Night Light
I thought I would make mention that the small white LED light on the
top of the LCD screen does indeed work in Linux :-) Press Fn + Page Up
to toggle this light. It seems to work great if you ever need to type
in a dark room.
DVD and
CDRW burner
The dvd drive functions perfectly as a cdrom. I have not yet determined
if the dvd drive can play dvdrom movies in Linux. Similarly, I have not
tested the cdr/cdrw writing capabilities of the drive.
Cisco Aironet 350 Wireless LAN PCMCIA Card
Note: This device is an add-on pcmcia card not
included with the ThinkPad T23. However I document my experiences with it
for those who want to use 802.11B wireless access.
Amazingly, this device was automatically detected during startup and
all required kernel modules loaded. The wireless network at the University
of Akron requires LEAP authentication before one can DHCP an IP address.
To accomplish this I installed the “leapscript” and “leapset” commands
from Cisco’s Linux drivers and utilities package (found on the Cisco website).
Try the below link to get the Cisco wireless Linux utilities:
http://www.cisco.com/pcgi-bin/tablebuild.pl/aironet-utils-linux
Once installed a small shell script can be used to automate wireless
network access:
#!/bin/sh
/usr/local/bin/leapscript <loginname> <password>
sleep 3
/usr/local/bin/leapscript <loginname> <password>
pump -i eth1
If instead you would prefer a script that doesn't require you to save
your LEAP login name and password in a file you can use something like below:
#!/bin/sh
/usr/local/bin/leapset
pump -i eth1
As you can see, the first script attempts to authenticate to the wireless
LEAP enabled network and then uses the “pump” command to grab an IP address
from the DHCP server. The pump command can be found in an rpm on the Red
Hat 7.2 cdroms. To keep things simple you can save this script in a file
and run it on start up to automate the process. For simplicity I saved
the file as /usr/local/bin/ciscoup and added the line “/usr/local/bin/ciscoup
&” to the very end of the file /etc/rc.d/rc.local.
The reason for running leapscript twice (and sleeping for 3 seconds in
between running each time) is because on occasion leapscript will fail
even though the login name and password are correct. This simple solution
seems to work ok for the time being.
The second script is useful for users who don't want to save the LEAP
login name and password in a file. It would be a good idea to fix this second
script to do basic error checking and not execute pump if leapset fails.
IrDA
I have not tested this hardware yet. Check back here later for more information
or forward me any information you would like to appear here.
S Video and VGA Output
I have not tested the S Video or VGA output options yet. Included in
the official drivers from the S3 website is a utility called "s3switch."
Supposedly it allows you to switch between the various output options
including CRT, LCD, and S-Video. Check back here later for more information
or forward me any information you would like to appear here.
USB
So far I have only tested a USB mouse and it seems to work great. Something
really useful I found on the using Linux with the ThinkPad T22 web page
is how to setup XFree86 to recognize both the standard built in mouse and
a USB mouse. You can even use both mice at the same with this configuration.
The below is the relevant sections of a modified /etc/X11/XF86Config-4
as copied directly from the source:
Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Mouse1" "SendCoreEvents"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
...
# This is the TrackPoint
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Device" "/dev/psaux"
Option "Protocol" "PS/2"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
# This is the USB mouse
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Device" "/dev/input/mice"
Option "Protocol" "IMPS/2"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
You can find the original
source of the above configuration file by visiting the
Linux on the IBM ThinkPad T22 web page. You can also find an XF86Config-4 file I modified
with the above USB mouse configuration in the
Configuration Files section.
Note: I have not yet looked in to a way to use both the USB mouse and
the built in mouse at the same time in the Linux text console. I'd be curious
to know if anyone has.
Configuration Files
Below are links to configuration files many people have requested.
I renamed the files with ".example" so you will have to rename them back
to the original name if you want to use them.
-
modules.conf - Most if not all of the information in this file was
produced by the Red Hat Installer. The rpm file for the modem drivers
automatically updated this file during install. This is what the lt_drivers portion is for.
-
XF86Config-4 - This one is mostly original, but I added the entries
for the secondary USB mouse support found above.
Conclusions
Running Red Hat Linux 7.2 on the IBM ThinkPad T23 turned out to be much
easier than expected. Though not all the hardware drivers are included in
the Red Hat 7.2 distribution, they were easy to get and install.
Links
Below are some links I found useful when installing Linux on the ThinkPad
T23
Home