Installing Fedora Core 6 on a ThinkPad T60

From ThinkWiki
Revision as of 21:44, 18 December 2006 by Whizkid (Talk | contribs) (Draft of ThinkVantage work. Probably should go on a more general page.)
Jump to: navigation, search

Installation

Installation of Fedora Core 6 (Zod) on a Thinkpad T60 (2623). The installation completes successfully but installs the i586 kernel instead of the required i686 kernel. The wrong kernel is due to a known bug in the Anaconda installer. Work-arounds and instructions for checking your kernel are on this page.

Note : At the time of this writing (Dec 18, 2006), the installer on disc still does not correctly install the i686 kernel. Use "linux i686" at the first prompt to bypass the bug, or use the available updates.img patch and a network install. Check your kernel version before you proceed. --Whizkid 21:27, 18 December 2006 (CET)

Keeping ThinkVantage Functionality

The MBR that ships with the T60 gives you access to the Rescue & Recovery partition by pressing the ThinkVantage button at startup. Unfortunately, it also will only boot the first partition, no matter which is marked active. This is fine if you want only one OS on your machine. If you want two or more, there is more work to do.

There are two ways to do this: Make the first partition your /boot partition and let it boot Windows; or keep Windows as your first partition and make it boot Linux.

If you want to keep ThinkVantage functionality, do not install Grub (or anything else) on /dev/sda. To avoid this, check "Review and modify partitioning layout", check "Configure advanced boot loader options" (while on this screen, you can also edit the label for your Windows partition and/or make it your default OS if you like), and select "/dev/sda3 First sector of boot partition" (which may have a different partition for your machine).

Works Out of the Box

Dual Cores (SMP processing)
As of Kernel 2.6.18, used in Fedora Core 6, there is no loger a single cpu and smp kernel image. SMP is now configured on-the-fly. FC6's kernel will automatically discover the T60's dual core cpu and bring up CPU0 and CPU1.
Wired Networking
Kernel recognizes eth0 and correctly loads the e1000 driver.
Video at 1400x1050
Fedora does not ship the proprietary ATi driver, as a reult the VESA driver is used. Installation of the ATi fgrlx driver is described later in this article.
Touchpad / Mouse
The TrackPoint middle button does not work as a scroll wheel by default.
PFPS: Note that although the touchpad and trackpoint work, Fedora Core 6 does a bad job of setting up xorg.conf. It is better to fix it up (see below).
Sound
The first-boot sound test fails to play the test sound. However, sound support is correctly configured and the snd-hda-intel driver is loaded at startup.
Suspend to RAM
Works out of the box under Gnome. Gnome power management intregrates with HAL (Linux's hardware abstraction layer) and DBUS, which correctly put this computer into a suspsend to RAM state and wake it up correctly.

Requires Tweaking

  • Wireless Networking (Requires ipw3945 driver)
  • ATi OpenGL Direct Rendering
  • Hibernate
  • IrDA

Post Install

Replacing the Kernel

Note : The steps below will not be required if the i686 version is already installed by default, which would be the case if you downloaded Zod recently (as of Dec 1, 2006). --Navinsamuel 22:20, 6 December 2006 (CET)

As previously mentioned, the i586 kernel is installed on this machine instead of the i686 version. The i686 version is required to install the ATI video drivers and Intel Wireless drivers required to get this machine 100% operational. It is best to do this first, before updating any packages.

Installing the new kernel can be done by various methods as documented on the Red Hat Bugzilla bug. However, the safest method is to use yum to do the kernel swap.

Note : If you have a multi-boot system, backup your Grub configuration file or atleast note it's contents elsewhere. If you don't, you can end up in a real mess! --Navinsamuel 22:20, 6 December 2006 (CET)

To swap kernels:

  1. Open up a terminal window are become root.
  2. Execute: yum remove kernel
  3. Make note of any other packages that will be removed due to dependency issues. The packages will have to be reinstalled in the next step.
  4. Install the kernel.i686 package and any other packages removed in the previous step.
  5. Fix your Grub configuration
  6. Reboot

On a minimal install, the only dependencies removed were gnome-session, compiz, gnome-volume-manager, and pcmciautils. Getting things back on track required:

# yum install kernel.i686 gnome-session compiz gnome-volume-manager pcmciautils

After [Yum] completes, you will have to fix the boot loader or you will be unable to boot after a restart.

If you have not used Fedora's default installation using LVM partitions, you can use the following configuration for grub. As root, fire up your favorite text editor and add the following lines to your grub configuration (/boot/grub/grub.conf) just below the initial comments:

title FC6 2.6.18-1.2798
        kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.18-1.2798.fc6.img

If you have an LVM partition, use the method detailed at Redhat's site.

Getting Up to Date

Before completing installation, it's best to get up to date by running yum update as root or by using the new graphical updater, Pup, that ships with Fedora Core 6. After all updates are installed, reboot before continuing the post-install tasks.

Setting Up Additional Repositories

In order to get the ATI driver and the Intel Wireless working, you will need to add two repositories to your computer; Livna RPMs and AT-RPMs.

Enabling Livna's Repository
As root, rpm -ivh http://rpm.livna.org/livna-release-6.rpm .
Enabling AT-RPMs Repository
As root, use your favorite editor to create /etc/yum.repos.d/atrpms.repo and type in:
[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/fc$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=0

Important: Disabling the AT-RPMs repository by default (using enabled=0) in the above configuration is important. Some repositories have been known not to play well together. See this post on the Fedora Forms for more information. However, AT-RPMs does provide a packaged version of the Intel wireless drivers and firmware that we'll use to set up wireless networking later. As long as AT-RPMs is disabled by default, Yum won't install software from their repository unless we explicitly tell it to do so.

ATi Video Driver (fglrx)

Installing the fglrx driver is easy if you've enabled the Livna.org RPM repository as discribed earlier in this article. Unfortunately, the proprietary ATi driver currently does not support desktop effects or composite rendering used be default in Fedora Core 6.

To install the drivers, as root:

[root@scottt60 ~]# yum install kmod-fglrx.i686 xorg-x11-drv-fglrx

While the driver installs, X fails to use direct Open GL rendering. There are two things that need to be done to get the driver working. First, we must disable effects by adding these lines to the bottom of /etc/X11/xorg.conf:

Section "ServerFlags"
        Option  "AIGLX" "off"
EndSection

Section "Extensions"
        Option "Composite" "Disable"
EndSection

Next, we need to add ATi's driver directory to dynamic linker (ld) search path and update the linker configuration:

[root@scottt60 ~]# echo "/usr/lib/ati-fglrx/" > /etc/ld.so.conf.d/ati-fglrx.conf
[root@scottt60 ~]# ldconfig

After ldconfig completes, restart X. You can check if you've completed your installation correctly by running fglrxinfo. Your output should look like this:

[scott@scottt60 ~]$ fglrxinfo 
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon X1400 Generic
OpenGL version string: 2.0.6174 (8.31.5)

Congratulations, your video configuration is complete.

Better UltraNav (touchpad) support [PFPS]

To get the touchpad to work right, it is much better to change /etc/X11/xorg.conf. There is quite a bit of information on how to do this scattered over the web, but very little information on why various changes have to be made. (I expect that the changes I made here are not specific to the T60, but would work on most Thinkpads with an UltraNav.)

I ended up crafting my own xorg.conf, which does the job, and produces no (extra) errors or warnings. (Note that the generated xorg.conf is very sparse, and generates warnings due to missing monitors and font directories. These appear to be benign.)

# Xorg configuration created by pyxf86config
# modified by pfps for Synaptics touchpad

Section "ServerLayout"
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "Mouse0"    "CorePointer"
	InputDevice    "TouchPad"  "AlwaysCore"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

# synaptics touchpad device
Section "InputDevice"
   Identifier   "TouchPad"
   Driver       "synaptics"
   Option       "Device"        "/dev/input/mouse0"	# may not be needed
   Option       "Protocol"      "auto-dev"	# automatically find device?
   Option       "LeftEdge"      "1700"
   Option       "RightEdge"     "5300"
   Option       "TopEdge"       "1700"
   Option       "BottomEdge"    "4200"
   Option       "FingerLow"     "25"
   Option       "FingerHigh"    "30"
   Option       "MaxTapTime"    "0"		# turn off tapping
   Option       "MaxTapMove"    "220"
   Option       "VertScrollDelta" "100"
   Option       "MinSpeed"      "0.09"
   Option       "MaxSpeed"      "0.18"
   Option       "AccelFactor"   "0.0015"
   Option       "SHMConfig"     "on"
 EndSection

# default mouse - handles other pointing devices, including trackpoint
Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Device" "/dev/input/mice"
        Option      "Protocol" "Auto"
        Option      "Emulate3Buttons" "no"
	Option	    "Buttons" "3"
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "vesa"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection


Wireless Networking

Note : The wireless issue still exists as of Dec 1, 2006 and you WILL have to follow the instructions below to get it working correctly. --Navinsamuel 22:30, 6 December 2006 (CET)

To use the T60's built in wireless networking driver, you will need to install ipw3945 driver. The AT-RPMs repository, mentioned earlier in this article, provides the necessary packages. As root:

# yum --enablerepo=atrpms install ipw3945d ipw3945-ucode ipw3945-kmdl-2.6.18-1.2798.fc6.i686


Note : You may notice that yum throws up an error (as of Dec 1, 2006) indicating that it could not locate 'ipw3945-kmdl-2.6.18-1.2798.fc6.i686'. Try the one below instead. --Navinsamuel 22:32, 6 December 2006 (CET)

# yum --enablerepo=atrpms install ipw3945-kmdl-2.6.18-1.2849.fc6.i686


Once installed, you must add a startup script to have ipw3945d started at boot. Create the following script in a file named /etc/init.d/ipw3945d

#! /bin/bash
#
# ipw3490d      Load / unload Intel ipw3490 daemon
#
# chkconfig: 2345 09 90
# description:  Load / unload Intel ipw3490 daemon
#
### BEGIN INIT INFO
# Provides: ipw3490d
### END INIT INFO

# Source function library.
. /etc/init.d/functions

if [ ! -f /etc/sysconfig/network ]; then
    exit 0
fi

case "$1" in
  start)
        echo -n "Starting ipw3945d: "
        /sbin/ipw3945d > /dev/null 2>&1
        echo
        ;;
  stop)
        echo -n "Stopping ipw3945d: "
        killproc ipw3945d
        echo
        ;;
  status)
        status ipw3945d
        ;;
  restart)
        cd "$CWD"
        $0 stop
        $0 start
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
esac

exit 0

Now, make it executable and add the script with chkconfig to be started on boot:

# chmod 750 /etc/init.d/ipw3945d
# chkconfig --add ipw3945d

Make sure things are setup correctly by running chkconfig --list ipw345d. Your output should look something like:

# chkconfig --list ipw3945d
ipw3945d        0:off   1:off   2:on    3:on    4:on    5:on    6:off

If everything looks okay, reboot. Once restarted you should be able to run ifconfig eth1 and see information about your wireless card. If you prefer a GUI, you can run the network configuration tool (System, Administration, Network). Click New on the Devices tab, then Wireless Connection. "Intel Corporation PRO/Wireless 3945ABG Network Connection(eth1)" or something similar should appear in the list of wireless devices.

Infrared (IrDA)

By default, Fedora will make the IR device appear as ttyS2, but the BIOS has the port default to COM2, or ttyS1. Paste this text into /etc/sysconfig/irda:

IRDA=yes
DEVICE=/dev/ttyS1
#DONGLE=actisys+
DISCOVERY=yes

Start (or restart) the irda service. Then ensure it starts for your favorite runlevel using either chkconfig or the Service Configuration tool. You can then use irdadump (as root) to confirm your configuration is correct by monitoring port activity when another IR device is near.

External Sources