Installing Fedora 7 on a ThinkPad T60

From ThinkWiki
Revision as of 00:39, 2 October 2007 by J laszlo (Talk | contribs) (Suspend)
Jump to: navigation, search

Created by: TomCallaway 09:45, March 20, 2007

Abstract

This article describes how I got Fedora 7 installed on my IBM/Lenovo ThinkPad T60. Now, I know that Fedora 7 isn't out yet, so this information is specific to the test releases. When Fedora 7 comes out, I'll update this page to reflect any changes.

My ThinkPad

These are the specifications of my machine.

   * Lenovo ThinkPad T60 (6369-CTO)
   * Intel Core 2 Duo (Merom) T7200 @ 2.00GHz
   * Intel Graphics Media Accelerator 950
   * Intel Gigabit Ethernet Controller
   * Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter
   * Integrated Bluetooth.
   * Integrated Fingerprint Reader
   * 100 GB - Serial ATA-150 Hard Drive.
   * 15.4" TFT display with 1680x1050 resolution (widescreen)
   * Intel 82801G (ICH7 Family) High Definition Audio Controller (rev 02)

What Works?

   * Fedora
   * Most of the function keys, except the ones mentioned below
   * The fingerprint reader.
   * Video, 2D and 3D.
   * Brightness, Volume and Mute with OSD (On-Screen Display).
   * ThinkLight, TrackPoint II and the touchpad.
   * Bluetooth
   * Infrared
   * Suspend

What Doesn't Work? (Known Issues)

   * Modem
   * Hibernate

Kernel Drivers

The laptop uses the following hardware specific kernel drivers:

   * iwlwifi (wireless)
   * e1000 (ethernet)
   * snd_hda_intel (sound)
   * nsc_ircc (infrared)

Installing Fedora

I really have no interest in dual-booting my laptop. There are plenty of good guides to setting up a computer for dual-boot on the internet. I burned a copy of the FC 6.91 DVD iso, booted off of it, and told the installer to delete all existing partitions. The install went off without a hitch. After installation, I ran yum update, and rebooted into the new kernel.

If you have problem booting up the fedora 7 DVD, and getting a blue screen at the start. Then install by text mode and update as root. "yum update" - And remember to change the line: "d:3:initdefault:" in the fil /etc/inittab into: "d:5:initdefault:" if you like to boot into an grafic mode.

Post Install

The Fedora repositories have some useful packages for ThinkPads. After I installed the OS, I used yum to install the following packages:

  * thinkfinger: Support for the Fingerprint Reader
  * tpb: ThinkPad button support utility and onscreen display
  * beryl-gnome: Eyecandy!
  * iwlwifi-firmware: The firmware for the new intel wireless driver
  * xbindkeys: A utility to help us bind the "special" thinkpad keys
  * xorg-x11-drv-i810: Driver for the Intel Graphics Chipsets

Wireless LAN

The latest Fedora 7 kernels include a new driver for the Intel 3945 chipset, called iwlwifi. This driver works, but it is a bit new, so you must be patient with it. If you didn't install the iwlwifi-firmware package, do so now. The kernel should have detected the wireless device, and configured iwlwifi for you.

Step 1: Turn on the radio Make sure the switch on the front is pushed to the right (you should be able to see green on the left). Then, as root, run:

# /sbin/ifconfig wlan0 up

Step 2: Scan for access points Even if you know the ESSID, the iwlwifi driver needs to also be told the frequency and access point that you want to connect to. Hopefully, this will be fixed in a later revision of the driver.

As root, run:

# /sbin/iwlist wlan0 scanning

You should see something like:

          Cell 03 - Address: 00:01:02:03:04:05
                    ESSID:"freewifi"
                    Mode:Master
                    Frequency:2.462 GHz
                    Signal level=-80 dBm  
                    Encryption key:on
                    Extra:tsf=000000deadb33fabc
                    Extra:bcn_int=100
                    Extra:rssi=-80
                    Extra:capab=0x0411
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s

Assuming that's the AP we want to connect to, note the Frequency, Address, and ESSID.

Step 3: Tell wlan0 about our AP Now, we just need to configure wlan0 to find our AP: As root, run:

# /sbin/iwconfig wlan0 freq 2.462G
# /sbin/iwconfig wlan0 ap 00:01:02:03:04:05
# /sbin/iwconfig wlan0 essid "freewifi"

Step 4: Get an IP Address Assuming the wireless network is DHCP, as root, run:

# /sbin/dhclient wlan0

Now your wireless is up and running! (Note: Your mileage may vary. There are lots of bug reports against iwlwifi. Maybe it is only a problem with NetworkManager, but my experience is that Fedora 7 test 4 (6.93) has unworkable wifi out of the box, at least on a T60p with an ipw3945.) As of 15 June 2007, NetworkManager still doesn't work very well with the iwlwifi device. There is a discussion on this on the fedora test list, starting with https://www.redhat.com/archives/fedora-test-list/2007-April/msg00539.html

Bluetooth

Bluetooth works out of the box, but Gnome GUI only provides limited functionality (like Obex file transfers). To configure bluetooth serial ports (those are used to connect to internet via Your bluetooth enabled mobile phone, to use bluetooth GPS devices etc), You have to manually tweak /etc/bluetooth/rfcomm.conf file.

At first run:

$ hcitool scan

The output should be something like

Scanning ...
        00:0A:D9:ED:89:4E       Anttix P900

Note the MAC address of Your phone, then run:

$ sdptool browse MAC_ADDRESS_OF_YOUR_PHONE

Find modem channel by looking for an entry like this:

Service Name: Dial-up Networking
Service Description: Dial-up Networking
Service Provider: Sony Ericsson
Service RecHandle: 0x10001
Service Class ID List:
  "Dialup Networking" (0x1103)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 7
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100

Now edit /etc/bluetooth/rfcomm.conf. Uncomment the lines for rfcomm0 and replace MAC and channel numbers with the ones from Your phone. Also make sure to turn on automatic binding on startup. The final config will look like this:

rfcomm0 {
        # Automatically bind the device at startup
        bind yes;

        # Bluetooth address of the device
        device 00:0A:D9:ED:89:4E;

        # RFCOMM channel for the connection
        channel 7;

        # Description of the connection
        comment "My GSM Dialup Networking";
}

Restart bluetooth subsystem:

# service bluetooth restart

Now run network configuration tool, add a new modem to device /dev/rfcomm0 and configure an internet connection as usual. The phone number depends on Your phone make, but most of the time it's *99#. You might also need to add additional modem initialization string AT+cgdcont=1,"IP","internet",,0,0 to configure Your GPRS service name.

Make sure that Gnome bluetooth applet is running. If not, run it by typing bluetooth-applet.

Activate the connection. You should be prompted for PIN by both: the phone and the applet. Enter the same number on both sides to pair the connection.

Infrared

T60 has an NSC FIR chip. The driver needs to know a Dongle ID so it must be manually configured.

Edit /etc/modprobe.conf, add the following two lines:

alias irda0 nsc-ircc
options nsc-ircc dongle_id=0x09

Edit /etc/sysconfig/irda:

IRDA=yes
DEVICE=irda0
DISCOVERY=yes

Start IRDA

# service irda start

If You want IRDA to be enabled during system boot, turn it on like this:

# chkconfig irda on

Getting the ThinkVantage Buttons to work

Fedora does not recognize all the ThinkVantage buttons correctly by default. This can be fixed quite easily. Just edit /etc/X11/Xmodmap.

Then paste the following in the file:

keycode 234 = XF86Back
keycode 233 = XF86Forward
keycode 159 = XF86Start
keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 153 = XF86AudioNext
keycode 144 = XF86AudioPrev
keycode 227 = XF86LaunchF
keycode 249 = XF86ZoomIn

Save and close the file, then logout and back in again. You can now assign the buttons to do anything you want. For example, use the Back and Forward buttons (next the cursor keys) to flip desktops using the cube effect in Beryl (set this using the Beryl settings manager). You can set most of the other keys using Gnome vis System - Preferences - Keyboard Shortcuts.

For the ThinkVantage and Zoom buttons, I used xbindkeys. Open a terminal and type:

$ xbindkeys --defaults > ~/.xbindkeysrc
$ xbindkeys-config

Click "New" and assign a remark to the new shortcut. Then press "Grab" and press the combination you want (ex: The ThinkVantage button). You can then set the action you want executed in the "Action" field.

Video Drivers

Intel Graphics Media Accelerator 950 (GMA950)

Since the Fedora installer didn't detect the graphics device properly, it uses the Vesa driver. Which works, but that's not really what we want to use. After installing the xorg-x11-drv-i810 package, I edited the /etc/X11/xorg.conf, and changed the driver from "vesa" to "intel". Then, restart X. That's it.

ATI Mobility Radeon X1300 (M52) & X1400 (M54)

ATI's drivers did not work with Fedora 7 because they couldn't handle the xorg version there. Version 8.39.4, and above, are compatible with Fedora 7. Matching kernel modules are provided by the livna repository.


# rpm -i http://rpm.livna.org/livna-release-7.rpm
# yum install kmod-fglrx

The Fingerprint Reader

Thanks to the efforts of the ThinkFinger guys, the fingerprint reader works very well in Linux using entirely Free Software. After installing thinkfinger, you need to edit /etc/pam.d/system-auth as root (be careful!):

Above the line that reads:

auth        sufficient    pam_unix.so nullok try_first_pass

Add a new line that reads:

auth        sufficient    pam_thinkfinger.so

So, the auth section of your /etc/pam.d/system-auth file should look like:

auth        required      pam_env.so
auth        sufficient    pam_thinkfinger.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

Save the updated /etc/pam.d/system-auth, then as root, run:

# /usr/sbin/tf-tool --add-user spot

Of course, if your username isn't spot, change it! It will prompt you to swipe your finger over the reader three times.

Thats it! Now, you can login using either a password or a fingerprint.

Beryl - eyecandy

Beryl is shiny desktop eyecandy. To get it running, you can follow the steps here: http://wiki.beryl-project.org/wiki/Install/Fedora_Core

Suspend

Create a new file /etc/rc.modules and put the following lines into it:

# Turn on correct suspend flags for T60
echo 3 > /proc/sys/kernel/acpi_video_flags

Then make it executable:

# chmod 755 /etc/rc.modules

After reboot the machine should suspend and wake up fine.

NOTE: I have tried the above with FC7 and T60p and still have not gotten suspend to work. It worked out of the box on FC6. I have also added the following lines to the kernel parameters but with no luck. pci=noacpi acpi_sleep=s3_bios,s3_mode. Note: as of 2.6.22.9-91.fc7, with the ATI M1400 the suspend or hibernate crash just after the suspending console's message.

Thanks

Much credit goes to Keithvassallo for his Installing Ubuntu Edgy Eft on the Thinkpad T60 page.

References