Difference between revisions of "Installing Fedora 11 on a ThinkPad X40"

From ThinkWiki
Jump to: navigation, search
(ThinkPad keys)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Success Chart ==
+
{| width="100%"
 +
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__
 +
|style="vertical-align:top" |
 +
{{NOTE|Some functions mentioned below might rely on available Fedora updates being installed. So if your having problems with something that is supposed to work, please ensure you have all available updates installed}}
 +
|}
 +
== Success Chart - Out of the box experience==
  
 
{| border="1" cellpadding="5" cellspacing="0"
 
{| border="1" cellpadding="5" cellspacing="0"
Line 18: Line 23:
 
|-
 
|-
 
|rowspan=2|Power Management
 
|rowspan=2|Power Management
| Software Suspend (hibernate) || {{Cyes}} ||  
+
| Software Suspend (hibernate) || {{Cno}} || Display is off after resume. See below for workaround.
 
|-
 
|-
| Suspend to Memory (ACPI sleep) || {{Cyes}} || See the suspend section below
+
| Suspend to Memory (ACPI sleep) || {{Cno}} || Display is off after resume. See below for workaround.
 
|-
 
|-
|colspan=2| Audio || {{Cyes}} ||
+
|colspan=2| Audio || {{Cyes}} || Occasional choppy sound, especially during login
 
|-
 
|-
 
|rowspan=3| Wireless || WiFi - Atheros|| {{Cyes}} || Works fine with WEP, I haven't managed to get it to work with a WPA network yet
 
|rowspan=3| Wireless || WiFi - Atheros|| {{Cyes}} || Works fine with WEP, I haven't managed to get it to work with a WPA network yet
Line 71: Line 76:
 
It is recommended to edit {{path|/boot/grub/grub.conf}} and add {{bootparm|hpet|force}} to the kernel line. This will activate HPET (High Precision Event Timer), which will allow the CPU to sleep for longer periods and save power.
 
It is recommended to edit {{path|/boot/grub/grub.conf}} and add {{bootparm|hpet|force}} to the kernel line. This will activate HPET (High Precision Event Timer), which will allow the CPU to sleep for longer periods and save power.
  
It is also reccommended to add "highres=off" since suspend/resume fails intermittently with highres enabled.
+
It is also recommended to add {{bootparm|highres|off}} since suspend/resume fails intermittently with highres enabled.
 
 
Finally, add "nomodeset", without this the screen will become corrupted by some programs, and the display backlight will not come on after a resume.
 
  
 +
Finally as is mentioned below in the X Server section, you should disable KMS for now by adding {{bootparm|nomodeset|}}
 
=== X Server ===
 
=== X Server ===
 
Basic X server functionality should work out of the box on the ThinkPad LCD (LVDS).
 
Basic X server functionality should work out of the box on the ThinkPad LCD (LVDS).
  
Fedora 11 uses KMS (Kernel Mode Setting) by default, and this causes problems for now with external displays. VGA external displays do not work properly, and can cause severe screen distortion/corruption when an external VGA display is activated.
+
Fedora 11 uses KMS (Kernel Mode Setting) by default, and this causes problems a variety of problems for now
 
+
* Only one display mode (highest resolution) on ThinkPad LCD (LVDS)
KMS also breaks a lot of X applications such as xterm or xfontsel. 
+
* External displays do not work, or cause screen corruption
 
+
* black screen on resume
Even when no external VGA display is attached, xrandr claims a unknown connection with 1024x768, 800x600 and 640x480 modes. When a display is attached this is replaced by the modes from the actual VGA display.
+
* ghost modes on external VGA connector when no display is attached (unknown connection)
  
 
On the up side, with KMS the maximum virtual display size is now 4096x4096 (2048x2048 without KMS), which should allow extended desktop once the issues with external display support are sorted.
 
On the up side, with KMS the maximum virtual display size is now 4096x4096 (2048x2048 without KMS), which should allow extended desktop once the issues with external display support are sorted.
  
Adding "nomodeset" to the kernel command disables KMS and makes most things work, but will not allow glitch-free switching between different video modes.
+
For now the best solution is to add {{bootparm|nomodeset|}} to the kernel line which will deactivate KMS, and returns you to the mode that was used in previous Fedora distributions.
  
 
==== Desktop Effects ====
 
==== Desktop Effects ====
'Desktop Effects' (compiz) seems to work
+
'Desktop Effects' (compiz) seems to work with KMS enabled, but with KMS disabled it causes the X server to restart.
  
 
=== Wireless Network ===
 
=== Wireless Network ===
Line 105: Line 109:
 
=== ThinkPad keys ===
 
=== ThinkPad keys ===
 
ThinkPad keys are handled by a mixture of the thinkpad_acpi, acpi button and acpi dock drivers.
 
ThinkPad keys are handled by a mixture of the thinkpad_acpi, acpi button and acpi dock drivers.
{{NOTE|Due to Xorg limitations, some keys that cause HAL events work with Xorg (Access IBM and Fn-F7) and others do not. This is a known limitation that should be fixed with the next major Xorg (v1.7) release.}}
+
{{NOTE|Due to Xorg limitations, some keys that cause HAL events work with Xorg and others do not (Fn-Space). This is a known limitation that is scheduled to be fixed with XKB2 which is planned for the Xorg 1.8 release sometime in 2010.}}
 
{| border="1" cellpadding="5" cellspacing="0"
 
{| border="1" cellpadding="5" cellspacing="0"
 
|-
 
|-
| '''Key''' || '''Function''' || '''Handled by''' ||'''HAL event''' || '''Works''' || '''Notes'''
+
| '''Key''' || '''Function''' || '''Handled by''' ||'''Event''' || '''Works''' || '''Notes'''
 
|-
 
|-
| Fn-F3 || lock screen || thinkpad_acpi|| {{Cyes}} || {{Cyes}} ||
+
| Fn-F3 || lock screen || thinkpad_acpi|| {{Cyes|text=}} HAL || {{Cyes}} ||
 
|-
 
|-
| Fn-F4 || suspend || acpi button|| {{Cyes}} || {{Cpart}} || Key event works, suspend itself does not
+
| Fn-F4 || suspend || acpi button|| {{Cyes|text=}} HAL || {{Cpart}} || Key event works, but can cause a double or triple suspend cycle
 
|-
 
|-
| Fn-F5 || wireless || thinkpad_acpi || {{Cyes}} || {{Cno}} || See the wireless section below
+
| Fn-F5 || wireless || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cno}} || See the wireless section below
 
|-
 
|-
| Fn-F7 || videomode || thinkpad_acpi || {{Cyes}} || {{Cpart}} || causes a brief flash of the display. Can be associated with gnome-keybinding-properties
+
| Fn-F7 || videomode || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || causes a brief flash of the display. Can be associated with gnome-keybinding-properties
 
|-
 
|-
| Fn-F9 || undock || acpi button || {{Cyes}} || {{Cno}} || causes event, but does not actually undock
+
| Fn-F9 || undock || acpi button || {{Cyes|text=}} HAL || {{Cno}} || causes event, but does not actually undock
 
|-
 
|-
| Fn-F12 || hibernate || acpi button|| {{Cyes}} || {{Cpart}} || does the same as Fn-F4 (suspend), not hibernate
+
| Fn-F12 || hibernate || acpi button|| {{Cyes|text=}} HAL || {{Cpart}} || does the same as Fn-F4 (suspend), not hibernate
 
|-
 
|-
 
| Fn-Home || brightness up || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. But sysfs backlight brightness value does not change, so OSD is wrong.
 
| Fn-Home || brightness up || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. But sysfs backlight brightness value does not change, so OSD is wrong.
Line 128: Line 132:
 
| Fn-PgUp || thinklight || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. No OSD in any case.
 
| Fn-PgUp || thinklight || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. No OSD in any case.
 
|-
 
|-
| Fn-Space || zoom || thinkpad_acpi || {{Cyes}} || {{Cno}} ||
+
| Fn-Space || zoom || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cno}} ||
 
|-
 
|-
 
| VolumeUp || Volume Up || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. But OSD is wrong
 
| VolumeUp || Volume Up || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. But OSD is wrong
Line 136: Line 140:
 
| Mute || Mute || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events and OSD. works as a on/off toggle
 
| Mute || Mute || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events and OSD. works as a on/off toggle
 
|-
 
|-
| Access IBM || Vendor key ||thinkpad_acpi ||  {{Cyes}} || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties
+
| Access IBM || Vendor key ||thinkpad_acpi ||  {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties
 
|-
 
|-
| NextTab || Browser Next tab || standard keyboard driver || {{Cyes}} || {{Cyes}} ||
+
| NextTab || Browser Next tab || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||
 
|-
 
|-
| PreviousTab || Browser Previous tab || standard keyboard driver || {{Cyes}} || {{Cyes}} ||
+
| PreviousTab || Browser Previous tab || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||
 
|-
 
|-
| Power || Power button || acpi button|| {{Cyes}} || {{Cyes}} || Need to press button for ~1 second to trigger event
+
| Power || Power button || acpi button|| {{Cyes|text=}} HAL || {{Cyes}} || Need to press button for ~1 second to trigger event
 
|-
 
|-
| Lid || Lid button || acpi button|| {{Cyes}} || {{Cyes}} ||
+
| Lid || Lid button || acpi button|| {{Cyes|text=}} HAL || {{Cyes}} ||
 
|-
 
|-
| Dock || Dock eject button || -  || {{Cno}} || {{Cno}} ||  
+
| Dock || Dock eject button || -  || {{Cno}} || {{Cno}} || Does not cause any event
 
|-
 
|-
| Ultrabay || Ultrabay eject switch || acpi dock || {{Cno}} || {{Cno}} || Handled by ACPI dock driver, but does not work
+
| Ultrabay || Ultrabay eject switch || acpi dock || {{Cyes|text=}} udev || {{Cno}} || Causes udev event, but missing handler
 
|-
 
|-
 
|}
 
|}

Latest revision as of 09:55, 1 September 2009

NOTE!
Some functions mentioned below might rely on available Fedora updates being installed. So if your having problems with something that is supposed to work, please ensure you have all available updates installed

Success Chart - Out of the box experience

Item Working Notes
Installation Local CD/DVD install yes
Network Installation yes
USB Installation yes
Display Laptop Screen yes Only 1 video mode available
VGA no xrandr claims unknown connection, even when nothing is attached (with 1024, 800 and 640 modes).
Power Management Software Suspend (hibernate) no Display is off after resume. See below for workaround.
Suspend to Memory (ACPI sleep) no Display is off after resume. See below for workaround.
Audio yes Occasional choppy sound, especially during login
Wireless WiFi - Atheros yes Works fine with WEP, I haven't managed to get it to work with a WPA network yet
WiFi - Intel yes
Bluetooth yes
Extra Buttons Keyboard Section partial See ThinkPad keyboard section below
Ports Ethernet yes
Modem no Requires closed-source driver
Serial unknown (should work) Requires dock
IrDA no It seems the device is detected, but then it tries to register a second device and fails with nsc_ircc_open(). can't get iobase of 0x2f8. As a result no device files are created in /dev
PS/2 Keyboard/Mouse unknown (should work) Requires dock
Parallel unknown (should work) Requires dock
USB yes
PCMCIA/Cardbus yes
SD slot yes 4GB SDHC flash card automatically detected.
Harddisk Active Protection no
Ultrabay device removal no Does not work reliably, due to missing dock eject detection
TPM (security subsystem) unknown Not brave enough to mess around with it

Tested and Verified on Fedora 11

Information in this section has been tested and verified using Fedora 11.

Installation

Installation is straight forward; you can follow the generic Fedora install instructions.

Configuration

Kernel

It is recommended to edit /boot/grub/grub.conf and add hpet=force to the kernel line. This will activate HPET (High Precision Event Timer), which will allow the CPU to sleep for longer periods and save power.

It is also recommended to add highres=off since suspend/resume fails intermittently with highres enabled.

Finally as is mentioned below in the X Server section, you should disable KMS for now by adding nomodeset

X Server

Basic X server functionality should work out of the box on the ThinkPad LCD (LVDS).

Fedora 11 uses KMS (Kernel Mode Setting) by default, and this causes problems a variety of problems for now

  • Only one display mode (highest resolution) on ThinkPad LCD (LVDS)
  • External displays do not work, or cause screen corruption
  • black screen on resume
  • ghost modes on external VGA connector when no display is attached (unknown connection)

On the up side, with KMS the maximum virtual display size is now 4096x4096 (2048x2048 without KMS), which should allow extended desktop once the issues with external display support are sorted.

For now the best solution is to add nomodeset to the kernel line which will deactivate KMS, and returns you to the mode that was used in previous Fedora distributions.

Desktop Effects

'Desktop Effects' (compiz) seems to work with KMS enabled, but with KMS disabled it causes the X server to restart.

Wireless Network

Both the Intel and Atheros wireless should work out of the box.

I tested the Intel and it worked. Atheros has also been tested.

To allow Fn-F5 to bypass HAL and enable/disable Bluetooth directly, add the following to /etc/rc.local:

echo 0x008c7fef > /proc/acpi/ibm/hotkey

If you enable this, Fn-F5 will no longer affect the Atheros wireless network.

ThinkPad keys

ThinkPad keys are handled by a mixture of the thinkpad_acpi, acpi button and acpi dock drivers.

NOTE!
Due to Xorg limitations, some keys that cause HAL events work with Xorg and others do not (Fn-Space). This is a known limitation that is scheduled to be fixed with XKB2 which is planned for the Xorg 1.8 release sometime in 2010.
Key Function Handled by Event Works Notes
Fn-F3 lock screen thinkpad_acpi HAL yes
Fn-F4 suspend acpi button HAL partial Key event works, but can cause a double or triple suspend cycle
Fn-F5 wireless thinkpad_acpi HAL no See the wireless section below
Fn-F7 videomode thinkpad_acpi HAL partial causes a brief flash of the display. Can be associated with gnome-keybinding-properties
Fn-F9 undock acpi button HAL no causes event, but does not actually undock
Fn-F12 hibernate acpi button HAL partial does the same as Fn-F4 (suspend), not hibernate
Fn-Home brightness up - no yes changing thinkpad_acpi hotkey_mask, causes HAL events. But sysfs backlight brightness value does not change, so OSD is wrong.
Fn-End brightness down - no yes changing thinkpad_acpi hotkey_mask, causes HAL events. But sysfs backlight brightness value does not change, so OSD is wrong.
Fn-PgUp thinklight - no yes changing thinkpad_acpi hotkey_mask, causes HAL events. No OSD in any case.
Fn-Space zoom thinkpad_acpi HAL no
VolumeUp Volume Up - no yes changing thinkpad_acpi hotkey_mask, causes HAL events. But OSD is wrong
VolumeDown Volume Down - no yes changing thinkpad_acpi hotkey_mask, causes HAL events. But OSD is wrong
Mute Mute - no yes changing thinkpad_acpi hotkey_mask, causes HAL events and OSD. works as a on/off toggle
Access IBM Vendor key thinkpad_acpi HAL partial No default action, but can be associated with gnome-keybinding-properties
NextTab Browser Next tab standard keyboard driver HAL yes
PreviousTab Browser Previous tab standard keyboard driver HAL yes
Power Power button acpi button HAL yes Need to press button for ~1 second to trigger event
Lid Lid button acpi button HAL yes
Dock Dock eject button - no no Does not cause any event
Ultrabay Ultrabay eject switch acpi dock udev no Causes udev event, but missing handler

Suspend/Resue

It's possible to get suspend to work by adding "highres=off" to the kernel command line. If you suspend using Fn-F4 the machine may enter suspend multiple times, use Fedora Menu->Shutdown->Suspend instead.

Without "nomodeset", resume will technically work, but the display backligt never comes on again, so it is kind of useless for desktop use. You can verify that the kernel is alive by switching to a text console with Ctrl-Alt-F2 and then pressing Ctrl-Alt-Del to reboot; that works, so everything but the display seems to be alive.

Closing the lid does not initiate a suspend, I don't know why yet.

Untested on Fedora 11

SDIO