The following page is for reference
purposes only. The laptop described here was sold in late
2001.
Linux on an IBM ThinkPad i 1560
Introduction
IBM has recently discontinued
their ThinkPad i 1560 laptop and it is, IMHO, an *excellent*
platform for running Linux.   I got mine at around noon on
4/19/00 and had a working Linux laptop with 1024x768 video,
sound, and networking all in just a few hours.   Oh, yeah!
  ;-)
Specifications
The specifications for the
i1560 are similar to the other i 14xx/15xx series laptops:
- Celeron 466 w/ 64mb of RAM
- IBM-DBCA-206480 6.4GB Hard Disk
- 24x CDROM
- Floppy Drive
- 14.1-in TFT Active Matrix Display (1024x768)
- 4mb ATI Rage Mobility M Video Chipset
- External Video, S-Video out
- 1x PCMCIA Slot/Cardbus Slot
- TrackPoint control, External Keyboard/Mouse shared port
- USB port
- Serial Port, ECP/EPP port
- Crystal Semiconductor CS4236 audio chipset
- Lucent WinModem
Red Hat 6.2 Install
For unconfirmed (but very
likely due to incompatible video settings), the graphical Red
Hat 6.2 installer did not run at all.   It filled the
screen with a scrambled video pattern and locked the machine
up so completely that I had to remove the power cord and
battery to turn it off.   Perhaps it was my use of the
non-full-screen BIOS setting?   I don't know.   In
any case, the regular text-based installer worked just
fine.
I partitioned the disk in the
following manner:
Filesystem Size Used Avail Use% Mounted on
/dev/hda5 5.7G 1.2G 4.2G 21% /
/dev/hda1 30M 2.4M 26M 8% /boot
/dev/hda7 125M <----- swap ------>
/dev/hda8 125M <----- swap ------>
|
which is probably excessive
swap, but I'm dealing with lots of large images these days and
disk space is cheap.   Also, I installed LILO in the first
sector of the boot partition rather than the MBR, but it makes
little difference as this will probably remain a Linux-only
box.
Video
The i1560 uses the ATI Rage
Mobility M chipset. XFree86 3.3.6 auto-detects this unit and
reports it as some sort of "generic Mach64" chipset. The name
may sound wrong, but don't worry---it is the correct one!
Using Xconfigurator, choose the 1024x768 LCD monitor and don't
be afraid to let Xconfigurator probe the video chipset for
timings since it did work correctly for me.
If you have the framebuffer code in your kernel, you can take
advantage of full-screen text and that cool Tux graphic during
boot-up. The lilo "vga=316" parameter (in /etc/lilo.conf)
worked for me but then X (which uses an accelerated server for
the Rage Mobility M) gave me an awful (low?) sync rate. So I
have gone back to the normal text screen and am using "vga=1"
which at least gives me better than 80x25 in the text
consoles. If anyone knows of a way to improve my text console
experience without degrading X, then please email me.
Also, call me crazy, but I like a lot of text on-screen. In
X, try using "xlsfonts" to see what fonts are available and
then add "-font 6x10" or "--font 6x10" for your emacs and
Eterm invocations, respectively. I like them better than the
default 6x13 on my 14.1-in LCD screen. YMMV.
Sound
The sound chipset was
auto-detected by Red Hat 6.2 qas an ESS Solo1 and that
configuration works. The IBM docs report that the chipset is
a Crystal Semiconductor CS4236.
I recently switched to the 2.3.99-pre6 kernel and it
identifies the sound chipset as an ES1969 Solo-1. I compiled
in that driver to my own kernel and it works fine, though
still a bit quiet. Perhaps its the small speakers? The
outpout through the headphone jack sounds very good on my
external speakers!
Built-in win-Modem
According to linmodems.org, Lucent has
paid someone to write a binary-only module to support the
Lucent LT modem chipset used in this model.   I have
tried to use it, but gave up rather quickly.  , For me,
the benefits from having a newer kernel (2.3.99-pre6 at the
moment) far outweight the possible benefits of fighting with
the modem.   I wish Lucent would get a clue and
open-source their modem driver!
Networking
Continuing with the
inexpensive trend, I bought a NetGear PCMCIA 10/100 ethernet
adapter model FA410TX which is available online for about $55
including shipping. When first inserted, the Red Hat 6.2
version of the Linux pcmcia drivers correctly identified the
card (emitted one high-pitch beep) and then started the
appropriate drivers (a second high-pitch beep). I immediately
configured an eth0 device using linuxconf with the appropriate
network parameters. When I tried out these configs, however,
I was not able to ping local machines on my network, even
using IP addresses.
After reading the messages posted at pcmcia.sourceforge.org,
I found that newer versions of the FA410TX have trouble
auto-detecting the line speed. One of the posters provided a
program (in C source code) called
fa_select that allows you to manually specify the rate. I
set may card to 10Base2 (the best my local hub will provide)
using
make fa_select
fa_select DEVICE RATE
where:
DEVICE = eth0, eth1, etc...
RATE = 0 for 10BaseT
1 for 10Base2 (full duplex)
2 for 100BaseT
3 for 100Mbit (full duplex)
|
and it worked! I've now added
the fa_select program (a single line) to the standard Red Hat
6.2 /etc/pcmcia/network script.
New 2.3.x Kernel
I recently switched to the
2.3.99-pre6 kernel as it provides support for a number of cool
new items including USB, noticably faster DMA IDE drivers [the
i1560 has an ALi M1533 chipset which does not have DMA IDE
support in the 2.2.x kernel series], and ACPI. I do not (at
this moment) have a firm grip on ACPI--it looks like I need to
install the user-space tools. But with ACPI compiled into my
kernel, the output indicates that it does recognizes the i
1560's chipset during bootup.   Here is a config file for 2.3.99-pre6
that for me has worked fine with Red Hat 6.2 and its standard
APM tools.
Quake III
Yes, I just got Quake III
running on this laptop!   No, its not as fast as my
desktop (Cel 400A w/ G200), but then what the hell do you
expect for a $1700 laptop?
So heres the process in a nutshell:
- go to the utah-glx pages and download, compile, and
install the GLX module
- install Quake III
- run using
quake3 +set r_fullscreen 0 +set gl_driver libGL.so
|
Note that this procedure might
or might not work *each* time that you try it.   Each
time, the quake window may appear in odd locations on/off my X
screen and I will be forced to blindly issue the ESC - UPARROW
- ENTER - LEFTARROW - ENTER sequence to shut QIII down.  
I think it is a problem of interaction with my windowmanager
(Enlightenment) but I'm not sure...   I am sure that
getting the correct modeline for the LCD display on this unit
will enabe full-screen and will make QIII a hell of a lot more
playable!!!
Is there anyone out there who can help me with generating a
correct modeline for 640x480 on this particular LCD?  
Any help will be very much appreciated!
|