Installing Fedora 10 on a ThinkPad T400

From ThinkWiki
Jump to: navigation, search

T400 Site under construction. You are invited building an useful guidance!

BIOS Issues To Deal With Before Installation

If you have a t400 (or T500 for that matter) that has the Switchable Graphics there are some things you need to know about

  • The switchable graphics doesn't really "work" so much under Linux. This is unfortunate, but there are plenty of discussion as to the why's and hows of this. So as a Linux user you get a choice at boot as to which one you want.
      • Go into the BIOS on boot (F1) go into Config -> Display -> Graphics Device
    • Either way you are going to want to DISABLE OS detection of switchable graphics. Don't ask me why, but the BIOS has a tendency to switch the actual display adapter out from under you.
    • You must now choose either the EXTERNAL display (I.E. the ATI/AMD graphics card) or the INTERNAL (I.E. the on board Intel graphics)

This step really needs to be done before you try to do the install or setup Linux. Now you can change this at any time, but keep in mind that you will likely need to make changes to your xorg.conf file to have it switch decently. You can take a look at and try something like this blog post but this is left to the user to try / experiment with.

What just works (tm)

  • Wireless with iwlagn driver (Intel WiFi Link 5100/5300 WLAN controller)
    • 802.11bg both work fine along with WEP/WPA/WPA2, status LED lights up and does what you would expect. NetworkManager seems to do the right thing, no issues there
  • Intel Gigabit Ethernet (10/100/1000) PCI-Express
    • No issues here, plug in a cable and it just works
  • Intel driver for Integrated Graphics (Intel GMA 4500MHD)
    • Just works, quite happy. Detects the screen properly as 1440x900 and just goes with it. Kudos to the Xorg team (now get working on the [[1]])
  • UltraNav (Touchpoint and Trackpad)
    • Horizontal and Vertical scrolling just worked.
  • Optical drive
  • Sound card
    • To use your internal microphone you have to change to "HDA Intel CONEXANT Analog (ALSA)" in audio-settings.
  • 7-in-1 card reader from Ricoh (MMC, Memory Stick, Mem Stick Pro, SD, SDHC, XD, XD Type H Memory)
    • I've only tested with SD & SDHC (as that's all I have at the moment) but they work fine. The system very quickly recognizes that you've inserted a disk, and mounts it as you would expect. Please note you need to push the card into it so that it's flush (you'll hear a click). To eject push on it and it will eject.
  • Thinklight control (This is BIOS only anyway so does not have the issue with the button problems mentioned below)
  • Wireless toggle mechanical toggle switch (at the front) - works and is detected by the system.
  • Built-in webcam with Skype, along with using the built-in microphone (used pulse audio for the output and the input is circumventing pulse right now)
  • ACPI in general seems to work, battery status, fan status, temperatures, etc.
  • Optical (ultrabay) hot swapping
    • It just works, pull the drive out Linux will happily disable and remove it, put it back in and Linux detects and deals with adding it back in. Go sata drives!
  • Bluetooth
    • I was able to pair with several devices including a keyboard and two phones. Was unable to do much more than get the keyboard to work but bluetooth does work.
  • Suspend / Resume (there is a caveat, look under what doesn't work)

What doesn't work at all

  • ATI fglrx driver for Discrete Graphics (ATI Mobility Radeon 3470 graphics)
    • Seems to be a matter of the binary driver not having kept up. Even trying with the driver released Dec. 10th, 2008 did not actually get a usable screen configuration. Likely cause is due to Fedora 10's more up to date Xorg server. Watch RPM Fusion and see when they pick up the driver
  • Fingerprint reader
    • Uses a new chipset out of AuthenTec
 T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
 D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs=  1
 P:  Vendor=08ff ProdID=2810 Rev=17.03
 S:  Product=Fingerprint Sensor
 C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
 I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
 E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 E:  Ad=02(O) Atr=02(Bulk) MxPS=   8 Ivl=0ms
 ...
 Bus 004 Device 002: ID 08ff:2810 AuthenTec, Inc.

there does seem to be some hope though as the fprint project should be working on it fprint posting on AuthenTec AES2810

  • Suspend Resume
    • Specifically the problem seems to be that suspend works fine but resume doesn't work if you have compiz turned on resume fails for some reason.

Display / Mice / Xorg

Synaptics Touchpad

There is an excellent utility that's available via Yum called GSynaptics which uses the synaptics driver (documented here Synaptics_TouchPad_driver_for_X) But it's worth noting how to get it working with your Fedora 10 system

Specifically when Fedora boots up it likely won't have written an xorg.conf file, choosing instead to let the whole thing autodetect. This, though odd, works. However to get the synaptics driver to have the options you want you need to actually get an xorg configuration file in place. Simplest way is to go under

 System -> Administration -> Display

Note: if you do not have this option install the system-config-display package

Once there basically make sure that your monitor is setup as to have the actual resolution of your display. Once you've done that just hit 'ok' and it will write out an xorg.conf. Once you've done that you can go and edit the xorg.conf file (/etc/X11/xorg.conf) and add the xorg.conf section from the Synaptics_TouchPad_driver_for_X page.

Once you've done that add

 InputDevice    "Synaptics Touchpad" "CorePointer"

under the ServerLayout section. Restart X and you should now be able to use GSynaptics.

Issues with Fedora 10

Ok so I'll admit, I did a fresh install and expected everything to just work (tm) - it didn't quite. There are a few things that still need to be tweaked to make it all work but it's getting there

Pulseaudio w/ GStreamer

So fresh install and setup a new user account and log in. *BOOM* first thing you are greated with is the gnome-volume-control crashing and hitting reload will just come back with 'no crashed again reload or remove from panel'. Further if you try to start gnome-volume-control and get a dialogue window that says "No volume control GStreamer plugins and/or devices found." If you install the nautilus-sound-converter and you find that nautilus doesn't load at all, this is also a symptom. You are likely hitting the same problem for all of these issues. The problem *seems* to be that the permissions on the gstreamer directory in your home dir is set in correctly. Easiest way to fix this is to do:

 chmod -R 777 ~/.gstreamer-0.10;rm -rf ~/.gstreamer-0.10

After you do this things should work as you would expect again.

Extra Thinkpad buttons only work for root

I will admit I do not have a fix for this one yet, but it is one that is annoying me greatly. Basically things like the volume control, display brightness, control over bluetooth being on/off, etc or anything that uses the <Fn> key or the volume controls only works for the root user. Since it seems to work for the root user I'm guessing this is a permissions problem, but I have not tracked it down yet.

NOTE: things like the 'ThinkLight' that are fully BIOS controlled are not affected by this and work as expected. So far all I've seen that does this is the ThinkLight but I haven't done and exhaustive check.

Addendum: So I got the brightness display working as the non-root user if your under Gnome go under:

 System -> Preferences -> System -> Power Management

Once that loads you'll see a small icon added in your notification bar that looks like a battery, the brightness display should now work.

Addendum 2: So I got the audio buttons working as well for non-root users. If your under Gnome go under:

 System -> Preferences -> System -> PulseAudio Preferences

One that loads you should have access to the buttons. Volume Up/Down will display and actually change the volume. The Mute button will actually mute the audio, however you won't see any indication of it sadly.

Also of note it seems the media buttons (fn+ left,right,up,down) which are next, stop, play, previous, seem to work within some applications within gnome as well. Basically anything that can handle the X/Gnome shortcut key can make use of these buttons.

Extra Thinkpad buttons extras

So many of the buttons can be made to work without too much issue, sadly however there are a few buttons that might be useful. Here are a couple of quick scripts to help with that:

Bluetooth enable / disable

edit /etc/acpi/events/thinkpad-bluetooth.conf and write:

   event=ibm/hotkey HKEY 00000080 00001005
   action=/usr/local/sbin/bttoggle

Note: it seems the last bit in the HKEY (00001005) does seem to cleanly map to the FN key thus 00001005 is F5 and 00001008 maps to F8.

Next create an executable script (chmod +x) in /usr/local/sbin/ called bttoggle

   #!/bin/bash
   INFO=/proc/acpi/ibm/bluetooth
   STATE=$( grep "status" "${INFO}" | awk '{ print $2;}' )
   case "${STATE}" in
           enabled)
                   echo -n "disable" > $INFO
                   ;;
           disabled)
                   echo "enable" -n > $INFO
                   ;;
           *)
                   echo "usage: disable, enable"
   esac
   

restart acpid: sudo service acpid restart

Touchpad enable / disable

This does assume you have the synaptics tools installed and setup properly, but...

edit /etc/acpi/events/thinkpad-trackpad.conf and write:

   event=ibm/hotkey HKEY 00000080 00001008
   action=/usr/local/sbin/trackpad-toggle

Note: it seems the last bit in the HKEY (00001005) does seem to cleanly map to the FN key thus 00001005 is F5 and 00001008 maps to F8.

Next create an executable script (chmod +x) in /usr/local/sbin/ called trackpad-toggle

   #!/bin/bash
   STATE=$( /usr/bin/synclient -l | grep "TouchpadOff" | awk '{ print $3; }' )
   case "${STATE}" in
           0)
                   /usr/bin/synclient TouchpadOff=1
                   ;;
           1)
                   /usr/bin/synclient TouchpadOff=0
                   ;;
           *)
                   echo "usage: 0,1"
   esac
   
   

restart acpid: sudo service acpid restart