2379-DYU Specs:
- 1.8 GHz Intel Pentium-M 745 (Dothan)
- 512 MB PC2700 RAM
- 15" UXGA Flexview/IPS display
- 128MB ATI Mobility FireGL T2
- 80GB 5400RPM Hitachi Travelstar 5K80
- DVD-R/RW/RAM Multiburner
- IBM a/b/g wireless (Atheros 5001X+ chipset)
- Bluetooth + 56K modem
- Intel PRO/1000 Ethernet
For my overall impressions of the 2379-DYU
Thinkpad, visit my review page.
Contents
IMPORTANT!
Fedora Core 2 Installation Bug and Dual Boot
Be warned! There is a bug in the Fedora Core 2 installation
that messes around with the hard disk geometry recorded in the
partition table. Specifically, it sets the number of cylinders
from 255 (which is what Windows wants) to 16. Although this in
theory should have no effect at
all for either Windows XP or Linux, it can cause a Windows boot
failure. The bug is completely recoverable and can be easily
worked around while installing FC2. I did not learn of this bug
until after I installed FC2, but fortunately I lucked out and it did
not
cause me problems. As soon as I completely back up my hard drive,
I will try the fix. Follow this link to
lwn.net for information on
how to work around this bug.
UPDATE
06/22/04
: I tried the fix
and it worked just fine. Now, the proper CHS for my drive is
9729/255/63. I had to use the --force option with sfdisk, which
for me did not complain about partitions on the drive being mounted
(which they were) but rather said "I don't like these partitions -
nothing changed". Afterward writing the new geometry and
partition table, it gives some more warnings but I simply rebooted and
everything is fine.
UPDATE
2/10/05: Installation of stock FC2 2.6.10 kernel and ATI
proprietary drivers
For the first time in over 6 months, I decided to mess with my FC2
installation. This was brought on by my linux desktop at work
experiencing a hard drive crash. A hard drive was going to take 2
weeks to replace under warranty, so I figured I would simply connect my
T42 to the existing monitor, mouse, and keyboard and use it as a
desktop replacement. After doing all of the updates described
below, I am actually so happy with this setup I might just buy a port
replicator and give my desktop machine (once the replacement drive
arrives) to somebody else.
In any case, the problem I had was that a feature of the VESA driver I
had been using (see
Fedora Core
2 Installation below) only outputs to the external VGA port at 60Hz
regardless of resolution. The flicker on my 22" CRT monitor at
60Hz is enough to make my eyeballs pop out in under 3 seconds. So
I decided to try and install the proprietary ATI drivers, which I heard
were fairly decent these days (and now work with 2.6 kernels).
The problem is that the current 8.8.25 version of their drivers are
offered for XFree86 4.1-4.3, and X.Org 6.8. Of course, FC2 comes
with X.Org 6.7! I could not get the X.Org 6.8 drivers to work
with FC2. Somebody did manage to get them to work with FC2,
however, and the RPMs are stored at the repository
rpm.livna.org, which is both yum-able
and apt-able. They are built against specific FC2 stock kernels,
however, so I decided to ditch my custom 2.6.6 kernel and install
2.6.10-1.12_FC2. As far as I can tell, ACPI and speedstepping
work fine with this kernel. Since I hardly ever use SWSUSP2
anyway (the e1000 LAN driver does not like unsuspending for some
reason), I have not bothered to try and reintroduce this into the
kernel.
ATI Driver Installation: Point
yum or apt at the archive at
rpm.livna.org
(archive config instructions at availible on the website) and install
"ati-fglrx" and the appropriate "kernel-module-fglrx-your_kernel_here"
RPM. Once these are installed, execute "fglrxconfig". The
options I used are as follows:
- Mouse: 2
- Mouse model: 3
- Emulate3Buttons: n
- Mouse device name: /dev/input/mice
- Keyboard: 4
- Country: 1
- Quad buffer: n
- TV-Out: n
- FireGL screen layout: 3 [Clone mode]
- Monitor settings: 5
- First monitor (built-in LCD): 31.5-91.1, 60.0-60.0
- Second monitor: settings for your CRT monitor
- Display modes: 8632
- All default options from this point on except for "AGP Locked
User Pages: n" ("y" might work, I just have not tried it yet)
fglrxconfig will then write everything to the file
/etc/X11/XF86config-4 (which is
pretty stupid of it if you ask me). Copy this file to
/etc/X11/xorg.conf and change
the "
XkbRules" field from "
xfree86" to "
xorg". Restart the X
server and you should be in business! For 2.6.10-1.12_FC2
kernel and the livna.org drivers, everything has worked fine. I
can even have the screen blank automatically when the lid closes and
unlike my last experience with the ATI drivers, the screen will
properly restore when turned back on. Also, it continues to send
output to the external VGA port even when the laptop screen is blanked,
so I can plug in my external monitor, keyboard, and mouse and shut the
laptop itself and still use it.
A word about clone mode: the driver will automatically send the best
resolution/refresh to the external monitor that works with the provided
specifications. If the desktop is larger than the max resolution
of the external monitor, it will automatically turn it into a virtual
desktop...pretty neat. If you want to edit the specifications of
the external monitor without the pain of rerunning fglrxconfig, simply
change the lines
Option "HSync2"
and
Option "VRefresh2" to
the values appropriate to the new monitor. I actually wrote
several HSync2/VRefresh2 combos and commented them out: one for XGA,
one for SXGA (both of these are common specs for projectors) and one
for my CRT at work. This way, I can simply uncomment the one I
want and restart the X server. For those who are interested, here
is my
xorg.conf
configuration file.
Suspend-to-RAM: I have read
that suspend-to-ram works for FC3 for kernels less than 2.6.10. I
have tried using ACPI suspend (even with no X running and the fglrx
module unloaded) and it certainly suspends, but does not resume
properly.
MadWifi Installation: Having a
stock kernel means that I can now use precompiled MadWifi drivers for
the IBM/Atheros mini-PCI wireless card. I downloaded them from
http://www.atrpms.net/name/madwifi/.
NTFS module: NTFS support is
not compiled into the stock FC2 kernel. But rpm.livna.org also
has the precompiled ntfs.ko module, so just grab it from there as well.
Restore Options
and the IBM_SERVICE Partition
New for the T42 is the replacement of the protected pre-desktop
"partition" with the IBM_SERVICE partition. The former was not
actually a partition per se, but an unpartitioned part of the hard
drive that was protected by the BIOS. With the T42, the recovery
area is now stored in a genuine vfat partition 4.28GB in size and named
IBM_SERVICE. PartitionMagic 7 had no problem deleting this
partition, and no BIOS flags needed to be messed with. Also new
with the T42 is the ability to
burn
your own recovery CDs! You no longer have to call IBM and
beg them to send them to you (and admit to them that you are...
GASP!...installing
another operating system on their
hardware). Just start the Access IBM program, look under Rescue
and Recovery (or something similar) and there will be an option to make
recovery CDs. I strongly suggest that you do this. It takes
7 CDs. Note that it seems to burn them rather slowly...much more
slowly than burning and ISO image with the included RecordNow software.
After you have made your recovery CDs, whether or not you delete the
IBM_SERVICE partition depends on your personal taste. The
IBM_SERVICE partition basically contains all the information to rebuild
the Windows XP installation (plus all IBM installed software) on your
hard drive. Thus, you can reinstall Windows XP at the touch of
a button...so a restore partition is not really that bad of an idea,
provided you can live with the spent disk space. Hitting the
"Access IBM" button at boot time causes you to "boot" to
this partition, and it gives your various backup and recovery
options. You should check it out at least once. According
to the IBM Rapid Rescue and Restore Ultra (RRnRU) documentation, if you
restore Windows XP from the IBM_SERVICE partition, you have the
option of only restoring to the 1st NTFS partition on the hard drive
and therefore not blowing away your Linux partitions. Extra
handy! If you restore from CD, however, it will completely blow
away the entire drive, repartition, and return it to factory-shipped
condition.
Also, I would not recommend using RRnRU to actually back up your drive,
although it has this functionality. I have read warnings where it
has to be "reinstalled" if ever the partition table if the drive is
altered, and there are certain situations where you run the risk of
invalidating your backups. This kind of thing seems a little
scary to me for backing up critical information, so I elected to use
other backup software for my Windows XP backups.
I chose to delete the IBM_SERVICE partition, but first I backed up
everything I needed to completely reinstall the Windows XP by hand and
all IBM-installed software. It turns out, that all of the
information you need to completely reinstall Windows XP Pro from
scratch is in the directories C:\I386, C:\DRIVERS, C:\SUPPORT, and
C:\VALUEADD (actually, you might not need C:\DRIVERS, but you might as
well include it). I simply used
BartPE to create a bootable CD
with the these 4 directories on it. All of the IBM installed
software is located in C:\IBMTOOLS. I copied these to
DVD-R. I think one can make a bootable DVD-R with BartPE as well,
but I have not tried that yet.
So now if I need to reinstall Windows XP at a later date, all I need
to do is boot from the CD I created with BartPE, and it will
automatically run Windows XP setup. After the install, I can stick
the DVD in the drive and re-install all of the IBM-included software.
Repartitioning
I used PartitionMagic 7 to delete the IBM_SERVICE partition and shrink
the NTFS partition down to 35 GB. This worked flawlessly. I
highly suggest purchasing this product...the time it saves you is worth
the money. I did further partitioning using Disk Druid during the
RHEL and FC2 installations.
Red Hat
Enterprise WS 3.0 Installation
I first tried to install RHEL WS 3.0 on my Thinkpad. The
installation worked fine with no hitches at all. Note that if you
have the ATI Radeon 9600 or FireGL T2 (which is really
a 9600), you should use the VESA driver, and not any ATI Radeon
driver. If you tell it to use the "ATI Radeon (generic)" driver,
it will happily act like it is doing so, but it will actually use the
VESA one anyway without telling you.
I was disappointed to realize that the RHEL kernel does not come with
CPUFREQ compiled in. Thus, it is not possible to use the
speedstepping ability of the Pentium-M in RHEL. I found a
website where somebody had
updated the kernel to include this ability, but when I tried this,
I found I could not get X11 to work at all, and I also managed to break
rpm. So I would not recommend trying this unless you have time to
spare.
The reason I had tried RHEL is because ATI claims to "support" it with
its proprietary drivers. I tried using these drivers, and
although they do speed things up quite a bit, they also crash upon
standby or suspend. Note that you can remove the flgrx kernel
module that they provide and get standby to work, but this also removes
hardware acceleration, so there does not seem like there is much of a
point to that particular "solution."
Fedora Core 2 Installation
Since I had read at least a dozen pages that said something like "I
installed Fedora Core 1 on my T40 [or T41] and everything work out of
the box!", I decided to take the path of least resistance and install
Fedora. Since FC2 had just come out, and was supposed to be more
stable and FC1, I tried it out.
UPDATE 7/05/04:
Originally I could not get CPUFREQ and speedstep-centrino working in
FC2. I figured that this was because they were not included for
some strange reason (even though they were in FC1). I have now
been told that they both are actually compiled straight into the FC2
stock kernel, but do not work with the Dothan processor. However,
getting the latest FC2 errata kernel from RedHat will fix that. I
have not tried this myself, but if you do not want to recompile your
kernel, try getting the latest FC2 kernel and see how that works.
If you still have to or want to rebuild the kernel, I make easy for you
by giving
you my kernel .config file below :). Also, remember there is the
FC2 installation bug
explained above that, when not circumvented, messes with your hard
drive geometry.
Since you know about the FC2 installation bug, follow the directions on
lwn.net to prevent FC2
from mucking with your hard drive geometry. Installation
proceeded flawlessly for me. As with RHEL, if you have the ATI
Radeon
9600 or FireGL T2 (which is really a 9600), you should use the VESA
driver, and not any ATI Radeon driver. I have seen some cases
where people have managed to get an ATI driver working, but the VESA
one works fine for me, and recovers from standby and suspend, so I have
not messed with it further.
Recompiling to
Enable Speedstepping, Laptop-Mode, and Suspend
So FC2 is running just fine, but CPUFREQ is not. You will need to
recompile the kernel to enable this feature (or try downloaded the
latest errata kernel which supposedly fixes this problem for Dothan
processors). Since I had to
recompile, I decided to add all the latest laptop features.
First, get
kernel 2.6.6 from
kernel.org. For detailed instructions on building a Linux
kernel, I recommend the
Digital
Hermit Kernel Rebuild Guide. Unpack the kernel source to
/usr/src/linux-2.6.6.
If you want to be able to suspend to disk using
swsusp2, then download
this swsusp2 tarfile,
untar it, cd to /usr/src/linux.2.6.6, and apply the patches in sorted
order using "
patch
-p1 < patchfile".
Laptop-mode
is already included as part of the 2.6.6 kernel. Download and
apply the three kernel patches on the
laptop-mode
website.
The hardest part of building the kernel is configuring it. But
you can use
my Kernel config file to
save yourself some time. This should have all necessary options
for any of the T42s out there. It uses ACPI (not APM), but ACPI
seems to work fine for me, as well as for most other Thinkpad owners.
Now that you have patched the kernel, you can configure and build it:
- cd
/usr/src/linux.2.6.6
- make
mrproper
- Copy my kernel config file to /usr/src/linux.2.6.6/.config
- make
menuconfig or make xconfig
to review my kernel configuration choices
- make
- make
modules_install
- make
install
This will automatically update grub, so you should now be able to
reboot
into the new kernel.
Installing ThinkPad
Buttons (TPB)
Most of the important Thinkpad keys seem to function under Linux, the
only shortcoming is that keys like "volume", "mute", and "brightness"
do not show their settings on the screen when pressed. This is
where TPB comes it. TPB provides an on-screen-display (OSD) and
user-configurable actions for keys like the
volume, mute, contrast adjustment, sleep (Fn-F4), Access IBM, and the
oh-so-nifty Thinklight. You will need to install the xosd RPM
(available with apt or yum) first, then tpb-0.6.0 which is also part of
the FC2 distribution. So far, I just use the default
configuration, and almost everything seems to work fine. I have
not yet figured out how to recognized the Fn-F3 and Fn-F12 keys,
however.
Configuring
your T42 to conserve power
Optimizing your T42's ability to save power is a delicate dance between
ACPI--which notices events such as the lid being shut, Thinkpad buttons
being pressed (if you installed TPB), or the
ac-adapter being plugged and unplugged--and SWSUSP2 which suspends to
disk, Speedstepping which throttles your CPUs speed according to load,
and laptop-mode which attempts to optimize hard drive behavior. I
describe how to set up each of these options below, then how to tie it
all together by configuring ACPI.
For power management configuration, I learned everything I needed to
know from these two excellent webpages:
Configuring Speedstepping
Make sure the kernel module "speedstep-centrino" is loaded (
lsmod | grep
speedstep). If not,
modprobe
speedstep-centrino should solve that. It may also be
compiled into the kernel. Install Volker's
/etc/cpuspeed.conf
file.
To verify that it's working, you should see a directory
/sys/devices/system/cpu/cpu0/cpufreq. There should also be a
directory /proc/acpi/processor/CPU if ACPI is doing its thing. A
great way to keep an eye on your CPU speed is the
GNOME-CPUFreq
Applet. FC2 RPMs for this are also
available
here.
Configuring SWSUSP2
In order to use SWSUSP2, you must append the line in your
/etc/grub.conf file according to the
instructions
on the swsusp website. Then, you must run the
suspend.sh script according to the
swsusp
website instructions, which will create the files
/etc/suspend.conf
and
/usr/local/sbin/hibernate.
Everything worked fine for me after un-suspending except for wired
ethernet and USB. The USB issue can be easily fixed by adding
"ehci_hcd uhci_hcd" to SWSUSP_REMOVEMODS and SWSUSP_INSERTMODS in
/etc/suspend.conf
to force swsusp2 to remove the USB modules upon suspend and then
reinsert them upon unsuspend. The ethernet adapter problem is a
little more complex, but I have discovered that manually shutting down
the eth0 interface (
ifdown eth0)
and them removing the e1000 module (
rmmod e1000)
before suspend will guarantee that the module will load properly when
networking is restarted after unsuspending. For some reason, I
cannot get this to work automatically (as in the case of USB). I
will update here when I experiment more.
Configuring Laptop-Mode
Laptop-mode is included in the kernel. The only thing you need to
do is install the the laptop_mode script which is part of the
laptop-mode documentation included with the kernel
(/usr/src/linux-2.6.6/Documentation/laptop-mode.txt). You can get
everything else you need from my ACPI
configuration files in the next section.
Configuring ACPI
I learned almost everything I know about configuring ACPI from
Alexander
Wagner's website, and I highly recommend reading his ACPI
section. You can download and install my
/etc/acpi
directory and all of its files and this will get ACPI up and
running for you. My settings are as follows:
- Laptop-mode is engaged or disengaged when the ac-adapter is
plugged or unplugged.
- Pressing Fn-F4 will enter suspend-to-disk mode (note that this is
different from Windows where suspend-to-disk is Fn-F12...but I can't
figure out how to recognize Fn-F12 in linux).
- Closing the lid will enter standby mode (Fn-F3 in Windows)
- Pressing the power button will call /sbin/shutdown -h
now.
Viola! You now have a power-efficient laptop that will also
suspend to disk.
IBM (Atheros) a/b/g Wireless
Wireless is the other quintessential Linux headache. Fortunately,
it's relatively easy for the Atheros chipset if you know what you are
doing. I didn't, so it took me awhile, but that's why I am
writing these instructions...so you don't have to repeat my mistakes.
:) Again, I highly recommend the
MADwifi
section of Alexander Wagner's website.
First, install the wireless-tools-26-4 RPM for FC2. Then, follow
the instructions for getting the latest drivers from the
MADwifi FAQ.
Strangely, FC2 does not by default install uudecode (it's part of the
sharutils package). This is needed by the MADwifi build, so make
sure to install the sharutils RPM. As root, cd to the madwifi
directory. If you want to make the wireless LED come on when the
modules are loaded, type
export COPTS="$COPTS -DSOFTLED".
Then just do a
make. I got loads of warnings concerning
unresolved symbols (mostly ieee ones), but rebulding my kernel with
CONFIG_MODVERSIONS=n as suggested by the MADwifi FAQ did nothing to
eliminate these. The driver seems to still work fine, so as long
as the kernel modules actually build, then forge ahead and do a
make
install.
This should install 3 modules:
ath_pci.ko, ath_hal.ko, and
wlan.ko. When you reboot, Kudzu will detect your wireless
card
(hooray!) and promptly configure it incorrectly (boo!): the drivers
operate through interface ath0, not eth1 as Kudzu will try and
configure them as. So just make your own
/etc/sysconfig/network-scripts/ifcfg-ath0
file, or follow the link to mine which is set up to connect using DHCP.
To start the interface, ensure the drivers are loaded with modprobe
ath_pci, then bring up the ath0 interface with
ifconfig ath0 up.
Now try
iwlist ath0 scan, and you should see information about
all
access points that your wireless card can detect. If you need to,
modify your settings to /etc/sysconfig/network-scripts/ifcfg-ath0, then
type
ifup ath0 and you should connect.
One tools that I found enormously useful was the
wavemon
package, which I also found (somewhere) in the form of
wavemon-0.4.0b-65.i586.rpm. Running this in a separate
window
while you try and connect to a wireless AP will give you a good picture
of what is going on.
Here are a couple of hints as to the configuration of the card (make
sure to bring up the card with
iwconfig
ath0 up before doing any of these):
Setting wireless mode:
- iwpriv ath0 mode 1 (11a)
- iwpriv ath0 mode 2 (11b)
- iwpriv ath0 mode 3 (11g)
- iwpriv ath0 mode 0 (auto [default])
Setting authentication mode:
- iwpriv ath0 authmode 1 (open key authentication [default])
- iwpriv ath0 authmode 2 (shared key identification)
- iwpriv ath0 authmode 3 (802.1x authentication)
In Fedora, iwpriv options can also be specified in the ifcfg-ath0
script using
IWPRIV, e.g.
IWPRIV="authmode 2".
Sound
Sound works out of the box using the snd-intel8x0 module. The
volume keys also work with TPB.
Bluetooth
I do not own any Bluetooth devices yet, but hitting Fn-F5 lights up the
Bluetooth light! See
this website for
information about Bluetooth setup.
Modem
The T42 comes with a Conexant HSF modem. Note that this is
completely different than the T40/41 and every other current Thinkpad
model
I have seen (even R50s) which all have the Agere Softmodem.
Foolishly I had assumed that the T42 had the Agere modem, so I spent
many hours tearing my hair out trying to get it to work with the
Smartlink drivers, as instructed by all other T40/41 Linux HOWTO
sites. In my defence, I point out two things: 1 - the Smartlink
drivers actually work insofar as talking to the modem...it just cannot
detect dialtones or handshakes, and 2 - it is nearly impossible to
actually identify this as a Conexant modem. The modem detection
utilities such as scanModem and Linuxant's Listmodem do not work.
In any case, just download the HSF (softmodem) drivers from
the Linuxant website and
off you go. I downloaded their "Generic" RPM and just "rpm
-Uvh"ed it and it compiled for the custom kernel and installed with no
problems. Their free driver supports only up to 14.4kbps, but
their full version is only $14.95 and supports up to V92 and FAX.
