<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mtk</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mtk"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Mtk"/>
	<updated>2026-05-09T05:10:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_11_on_a_ThinkPad_T60&amp;diff=44428</id>
		<title>Installing Fedora 11 on a ThinkPad T60</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_11_on_a_ThinkPad_T60&amp;diff=44428"/>
		<updated>2009-09-28T20:47:37Z</updated>

		<summary type="html">&lt;p&gt;Mtk: /* Untested on Fedora 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
{{NOTE|Some functions mentioned below might rely on available Fedora updates being installed. So if you're having problems with something that is supposed to work, please ensure you have all available updates installed}}&lt;br /&gt;
{{NOTE|This is based on the x86-64 version of Fedora 11}}&lt;br /&gt;
{{NOTE|ThinkPad T60p is reported here as well}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Success Chart - Out of the box experience ==&lt;br /&gt;
The SMOLT profile for the T60 used for testing Fedora 11 is [http://www.smolts.org/client/show/pub_55c7e1c7-00a3-468c-a558-ae1382ef506c here].&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2| '''Item''' || '''Working''' || '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=3|Installation &lt;br /&gt;
| Local CD/DVD install || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Network Installation || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| USB Installation     || {{Cyes}} ||&lt;br /&gt;
|- &lt;br /&gt;
|rowspan=3|Display - Intel&lt;br /&gt;
| Laptop Screen  || {{Cyes}} || only 1 video mode available&lt;br /&gt;
|-&lt;br /&gt;
| VGA || {{Cno}} || currently broken&lt;br /&gt;
|-&lt;br /&gt;
| DVI || {{Cno}} || currently broken&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=3|Display - ATI&lt;br /&gt;
| Laptop Screen  || {{Cyes}} || everything works, including rotation&lt;br /&gt;
|-&lt;br /&gt;
| VGA || {{Cyes}} || everything works, including rotation and mirroring&lt;br /&gt;
|-&lt;br /&gt;
| DVI || {{Cunk}} (should work) || no reason this wouldn't work&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2|Power Management&lt;br /&gt;
| Software Suspend (hibernate) || {{Cyes}} || &lt;br /&gt;
|-&lt;br /&gt;
| Suspend to Memory (ACPI sleep) || {{Cyes}} || &lt;br /&gt;
|-&lt;br /&gt;
|colspan=2| Audio || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=5| Wireless || WiFi - Atheros|| {{Cpart}} || occasional disconnect/reconnect&lt;br /&gt;
|-&lt;br /&gt;
| WiFi - Intel|| {{Cyes}} || no problems at all&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| WWAN - Verizon  || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
| WWAN - Cingular || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Buttons || Keyboard Section || {{Cpart}} || see ThinkPad keyboard section below&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=8|Ports&lt;br /&gt;
| Ethernet || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Modem || {{Cno}} || Requires closed-source driver&lt;br /&gt;
|-&lt;br /&gt;
| Serial || {{Cyes}} || Requires port-replicator or dock&lt;br /&gt;
|-&lt;br /&gt;
| IrDA || {{Cno}} || Device is detected, but does not work.&lt;br /&gt;
|-&lt;br /&gt;
| PS/2 Keyboard/Mouse || {{Cyes}}|| Mouse tested, Requires port-replicator or dock&lt;br /&gt;
|-&lt;br /&gt;
| Parallel || {{Cunk}} (should work)|| Requires port-replicator or dock&lt;br /&gt;
|-&lt;br /&gt;
| USB || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| PCMCIA/Cardbus || {{Cyes}} || even ATA adaptors (for CF cards, etc) now work!&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2| Harddisk Active Protection || {{Cno}} || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2| Ultrabay device hotswap || {{Cpart}} || see below, use with&lt;br /&gt;
caution out of the box&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2| Fingerprint reader || {{Cyes}} || F11 has standard support for Fingerprint readers&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2| TPM (security subsystem) || {{Cunk}} || Not brave enough to mess around with it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tested and Verified on Fedora 11 =&lt;br /&gt;
&lt;br /&gt;
Information in this section has been tested and verified using Fedora 11, including the pre-release (post-beta) version.  The development version of Fedora 11 (rawhide) is quite stable and even suitable for day-to-day use, if you are a bit brave.  You will be automatically switched over to the release version of Fedora 11 if you keep everything up to date.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Installation is straight forward; you can follow the generic Fedora install instructions.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== X Server (Intel)===&lt;br /&gt;
Basic X server functionality should work out of the box on the ThinkPad LCD (LVDS), as long as no external displays are attached at boot. &lt;br /&gt;
&lt;br /&gt;
Fedora 11 uses KMS (Kernel Mode Setting) by default, which for now has some up and down sides for external displays.&lt;br /&gt;
&lt;br /&gt;
For the moment external displays do not work. When you boot with an external display attached, you will get a non-optimal resolution on the external display, and the LVDS will be off. When you logon the system will hang, and you will have a black display, but with functioning mouse cursor. Attaching a display afterwards also freezes the system when you try to active extended desktop.&lt;br /&gt;
&lt;br /&gt;
Another down side is that currently mirror mode is very limited as the ThinkPad LCD (LVDS) is limited to one single display mode, so only if the external display supports this same mode can you activate mirror mode. On the other hand with KMS enabled the maximum virtual display size is now 4096x4096 (2048x2048 without KMS) meaning you can have an extended desktop.&lt;br /&gt;
&lt;br /&gt;
A workaround to the single mode problem is to add the modes manually with xrandr. Below is a script I created that adds the most common modes for a 1400x1050 LCD ThinkPad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# modelines created with &amp;quot;gtf 640 480 60&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
xrandr --newmode &amp;quot;1280x1024_60.00&amp;quot;  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync&lt;br /&gt;
xrandr --newmode &amp;quot;1024x768_60.00&amp;quot;  64.11  1024 1080 1184 1344  768 769 772 795  -HSync +Vsync&lt;br /&gt;
xrandr --newmode &amp;quot;800x600_60.00&amp;quot;  38.22  800 832 912 1024  600 601 604 622  -HSync +Vsync&lt;br /&gt;
xrandr --newmode &amp;quot;640x480_60.00&amp;quot;  23.86  640 656 720 800  480 481 484 497  -HSync +Vsync&lt;br /&gt;
xrandr --addmode LVDS1 &amp;quot;1280x1024_60.00&amp;quot;&lt;br /&gt;
xrandr --addmode LVDS1 &amp;quot;1024x768_60.00&amp;quot;&lt;br /&gt;
xrandr --addmode LVDS1 &amp;quot;800x600_60.00&amp;quot;&lt;br /&gt;
xrandr --addmode LVDS1 &amp;quot;640x480_60.00&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== X Server (ATI)===&lt;br /&gt;
On a T60p, displays work well, with multiple mirrored and non-mirrored displays and even with one of the displays being rotated!  This may also work on a base T60, as there has been a lot of effort put into getting this to work right.&lt;br /&gt;
&lt;br /&gt;
One thing that still doesn't work quite right is screensavers and screen blanking.  There is something wrong with the timers, which may result in your screen blanking while you are typing.  Recovery is a simple as waiting until the screen is completely blank and then type or click to wake up the screen.&lt;br /&gt;
&lt;br /&gt;
Another thing that doesn't work quite right is screen resolution when booting with multiple screens.  If one screen doesn't not have a preferred resolution, a poor resolution may be used for both screens during the booting process.  Everything works fine after login, however.&lt;br /&gt;
&lt;br /&gt;
==== Desktop Effects ====&lt;br /&gt;
Compiz (wobbly windows, desktops on a cube) seems to work.  Direct display of video may be problematic with Compiz, however.&lt;br /&gt;
&lt;br /&gt;
=== dpi ===&lt;br /&gt;
On the 1400x1050 (and 1600x1200) LCD Fedora comes up with a DPI of 124 (or higher). While this is correct for the physical screen size, it waists a lot of screen real estate.&lt;br /&gt;
&lt;br /&gt;
To change to the more typical 96 DPI, go to System -&amp;gt; Preferences -&amp;gt; Appearance. Now in Appearance Preferences select the Fonts tab and press the &amp;quot;Details ...&amp;quot; button. Here you can change the dots per inch to 96.  Of course, many things will shrink, but that is what you wanted, after all.&lt;br /&gt;
&lt;br /&gt;
=== Wireless Network ===&lt;br /&gt;
&lt;br /&gt;
Both the Intel and Atheros wireless should work out of the box.&lt;br /&gt;
====Atheros WiFi====&lt;br /&gt;
Atheros was tested and works, but you may encounter occasional disconnects and reconnects. In addition you might have problems after a suspend cycle. It seems the Atheros chip can get stuck sometimes, require a shutdown (not just a reboot) before the driver can initialize the chip again. Also the WiFi LED remains off.&lt;br /&gt;
&lt;br /&gt;
As a test I tried the 2.6.31-0.21.rc0.git18.fc12 kernel from rawhide, but it does not seem to make any big difference. Still disconnects, but at least the WiFi activity LED works.&lt;br /&gt;
&lt;br /&gt;
====Intel WiFi====&lt;br /&gt;
Intel wireless was tested and works.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPad keys ===&lt;br /&gt;
ThinkPad keys are handled by a mixture of the thinkpad_acpi, acpi button, acpi dock and acpi video drivers.&lt;br /&gt;
{{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.}}&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Key''' || '''Function''' || '''Handled by''' ||'''Event''' || '''Works''' || '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F2 || lock screen || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F3 || battery || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F4 || suspend || acpi button|| {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F5 || wireless || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F7 || videomode || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cyes}} || Cycles through only LCD, only external, both (mirrored), and both (non-mirrored)&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F8 || mouse input select || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F9 || undock || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F12 || hibernate || acpi button|| {{Cyes|text=}} HAL || {{Cpart}} || does the same as Fn-F4 (suspend), not hibernate &lt;br /&gt;
|-&lt;br /&gt;
| Fn-Home || brightness up || acpi video || {{Cyes|text=}} HAL || {{Cyes}} || includes on-screen display of brightness level&lt;br /&gt;
|-&lt;br /&gt;
| Fn-End || brightness down || acpi video || {{Cyes|text=}} HAL || {{Cyes}} || includes on-screen display of brightness level&lt;br /&gt;
|-&lt;br /&gt;
| Fn-PgUp || thinklight || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. No OSD in any case.&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Space || zoom || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cno}} ||&lt;br /&gt;
|-&lt;br /&gt;
| VolumeUp || Volume Up || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. But OSD is wrong&lt;br /&gt;
|-&lt;br /&gt;
| VolumeDown || Volume Down || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. But OSD is wrong&lt;br /&gt;
|-&lt;br /&gt;
| Mute || Mute || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events and OSD. works as a on/off toggle&lt;br /&gt;
|-&lt;br /&gt;
| ThinkVantage || Vendor key ||thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties&lt;br /&gt;
|-&lt;br /&gt;
| NextTab || Browser Next tab || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| PreviousTab || Browser Previous tab || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Up || Stop || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Left || reverse || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Right || forward || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Down || play/pause || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Power || Power button || acpi button|| {{Cyes|text=}} HAL || {{Cyes}} || Need to press button for ~1 second to trigger event &lt;br /&gt;
|-&lt;br /&gt;
| Lid || Lid button || acpi button|| {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Dock || Dock eject button || acpi dock  || {{Cyes|text=}} udev || {{Cpart}} || causes udev event. Disconnects Ethernet, switches to battery and unload of USB devices (including internal Bluetooth!!).Does not restore video to ThinkPad only.&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay || Ultrabay eject switch || acpi dock || {{Cyes|text=}} udev || {{Cpart}} || causes a udev event, which can be handled as in [How to hotswap Ultrabay devices], with minor changes, but should be handled better&lt;br /&gt;
|-&lt;br /&gt;
| Radio switch || Radio kill switch || thinkpad_acpi || {{Cyes|text=}} udev || {{Cpart}} || Bluetooth only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrabay ===&lt;br /&gt;
&lt;br /&gt;
The Ultrabay has some glitches out of the box with respect to hotswapping.  It is possible to lock the machine when pulling out devices, even the CD/DVD device.&lt;br /&gt;
&lt;br /&gt;
The culprit is that the Ultrabay pre-eject switch is not hooked into anything useful.  It does cause udev events, but nothing is listening for them.  When a device that has a mounted partition or CD is actually pulled out it is too late to do the right thing.  Fedora 11 will usually just complain, sometimes bitterly, but may also lock up for some unknown reason, even if just pulling out a CD/DVD device with a mounted CD.&lt;br /&gt;
&lt;br /&gt;
Manually unmounting before removal will help.  Manual powering down may also be required for correct performance.  &lt;br /&gt;
&lt;br /&gt;
A better solution is to set up a udev rule and script to handle the pre-eject switch event for Ultrabay devices that have mountable things in them as in [How to hotswap Ultrabay devices].&lt;br /&gt;
&lt;br /&gt;
The revised solution here works well.  Pushing the pre-eject switch either does the unmounting and powering off and then emits a low beep, or fails and then emits a triple beep.  After success the device can be safely removed or the eject lever can be pushed back and everything will be remounted.  After failure pushing the eject lever back in does nothing, permitting continuing as if nothing happened or allowing changes to be made before the next attempt to remove.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the code below is complex and may be fragile.  A better solution would be very useful.&lt;br /&gt;
&lt;br /&gt;
To set this solution up, first&lt;br /&gt;
create the file {{path|/etc/udev/rules.d/50-thinkpad-ultrabay.rules}} with the following content&lt;br /&gt;
&lt;br /&gt;
 ENV{BAY_EVENT}==&amp;quot;3&amp;quot;, ACTION==&amp;quot;change&amp;quot;, SUBSYSTEM==&amp;quot;scsi&amp;quot;, RUN+=&amp;quot;/usr/local/sbin/ultrabay_eject&amp;quot;&lt;br /&gt;
Make sure it is owned by root and has the right selinux security context&lt;br /&gt;
 chown root:root /etc/udev/rules.d/50-thinkpad-ultrabay.rules&lt;br /&gt;
 chmod 644 /etc/udev/rules.d/50-thinkpad-ultrabay.rules&lt;br /&gt;
 chcon system_u:object_r:etc_runtime_t:s0 /etc/udev/rules.d/50-thinkpad-ultrabay.rules&lt;br /&gt;
&lt;br /&gt;
Then create the executable file {{path|/usr/local/sbin/ultrabay_eject}} with the following content&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
ULTRABAY_SYSDIR=/sys$DEVPATH&lt;br /&gt;
shopt -s nullglob&lt;br /&gt;
logger ultrabay_eject storage device $DEVPATH&lt;br /&gt;
export DISPLAY=:0.0 # required for notify-send&lt;br /&gt;
&lt;br /&gt;
# Umount the filesystem(s) backed by the given major:minor device(s)&lt;br /&gt;
unmount_rdev() { perl - &amp;quot;$@&amp;quot; &amp;lt;&amp;lt;'EOPERL'  # let's do it in Perl&lt;br /&gt;
        for $major_minor (@ARGV) {&lt;br /&gt;
                $major_minor =~ m/^(\d+):(\d+)$/ or die;&lt;br /&gt;
                push(@tgt_rdevs, ($1&amp;lt;&amp;lt;8)|$2);&lt;br /&gt;
        }&lt;br /&gt;
        # Sort by reverse length of mount point, to unmount sub-directories first&lt;br /&gt;
        open MOUNTS,&amp;quot;&amp;lt;/proc/mounts&amp;quot; or die &amp;quot;$!&amp;quot;;&lt;br /&gt;
        @mounts=sort { length($b-&amp;gt;[1]) &amp;lt;=&amp;gt; length($a-&amp;gt;[1]) } map { [ split ] } &amp;lt;MOUNTS&amp;gt;;&lt;br /&gt;
        close MOUNTS;&lt;br /&gt;
        foreach $m (@mounts) {&lt;br /&gt;
                ($dev,$dir)=@$m;&lt;br /&gt;
                next unless -b $dev;  $rdev=(stat($dev))[6];&lt;br /&gt;
                next unless grep($_==$rdev, @tgt_rdevs);&lt;br /&gt;
                system(&amp;quot;umount&amp;quot;,&amp;quot;-v&amp;quot;,&amp;quot;$dir&amp;quot;)==0  or  $bad=1;&lt;br /&gt;
                if ($bad == 1) {&lt;br /&gt;
                        system(&amp;quot;logger&amp;quot;,&amp;quot;ultrabay_eject&amp;quot;,&amp;quot;ERROR unmounting&amp;quot;,$dev,$dir);&lt;br /&gt;
                        system(&amp;quot;notify-send -u critical -t 300000 \&amp;quot;Error unmounting $dir\&amp;quot; \&amp;quot;Unmounting of $dir on $dev failed!\&amp;quot;&amp;quot;);&lt;br /&gt;
                } else {&lt;br /&gt;
                        system(&amp;quot;logger&amp;quot;,&amp;quot;ultrabay_eject&amp;quot;,&amp;quot;unmounted&amp;quot;,$dev,$dir);&lt;br /&gt;
                        system(&amp;quot;notify-send -u normal -t 300000 \&amp;quot;Unmounted $dir\&amp;quot;&amp;quot;);&lt;br /&gt;
                };&lt;br /&gt;
        }&lt;br /&gt;
        exit 1 if $bad;&lt;br /&gt;
EOPERL&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get the UltraBay's /dev/foo block device node&lt;br /&gt;
ultrabay_dev_node() {&lt;br /&gt;
        UDEV_PATH=&amp;quot;`readlink -e &amp;quot;$ULTRABAY_SYSDIR/block/&amp;quot;*`&amp;quot; || return 1&lt;br /&gt;
        UDEV_NAME=&amp;quot;`udevadm info --query=name --path=$UDEV_PATH`&amp;quot; || return 1&lt;br /&gt;
        echo /dev/$UDEV_NAME&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ -d $ULTRABAY_SYSDIR ]; then&lt;br /&gt;
        sync&lt;br /&gt;
        # Unmount filesystems backed by this device&lt;br /&gt;
        ## This seems to be very inelegant and prone to failure&lt;br /&gt;
        unmount_rdev `cat $ULTRABAY_SYSDIR/block/*/dev     \&lt;br /&gt;
                          $ULTRABAY_SYSDIR/block/*/*/dev`  \&lt;br /&gt;
        || {&lt;br /&gt;
                logger ultrabay_eject umounting failed&lt;br /&gt;
                echo 2 &amp;gt; /proc/acpi/ibm/beep  # triple error tone&lt;br /&gt;
                notify-send -u critical -t 300000 &amp;quot;ThinkPad Ultrabay eject failed&amp;quot; &amp;quot;Please do not pull the device, doing so could cause file corruption and possibly hang the system. Unmounting of the filesystem on the ThinkPad Ultrabay device failed. Please put the eject leaver back in place, and try to unmount the filesystem manually. If this succeeds you can try the eject again&amp;quot;&lt;br /&gt;
                exit 1;&lt;br /&gt;
        }&lt;br /&gt;
        sync&lt;br /&gt;
        # Nicely power off the device&lt;br /&gt;
        DEVNODE=`ultrabay_dev_node` &amp;amp;&amp;amp; hdparm -Y $DEVNODE&lt;br /&gt;
        # Let HAL+KDE notice the unmount and let the disk spin down&lt;br /&gt;
        sleep 0.5&lt;br /&gt;
        # Unregister this SCSI device:&lt;br /&gt;
        sync&lt;br /&gt;
        echo 1 &amp;gt; $ULTRABAY_SYSDIR/delete&lt;br /&gt;
else&lt;br /&gt;
        logger ultrabay_eject no ultrabay device directory&lt;br /&gt;
        echo 2 &amp;gt; /proc/acpi/ibm/beep  # triple error tone&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# We need sleep here so someone can disconnect the bay and the drive&lt;br /&gt;
sleep 1&lt;br /&gt;
&lt;br /&gt;
# Turn off power to the UltraBay&lt;br /&gt;
dock=$( /bin/grep ata_bay /sys/devices/platform/dock.?/type )&lt;br /&gt;
dock=${dock%%/type:ata_bay} # needed for 2.6.27 and later&lt;br /&gt;
if [ -n &amp;quot;$dock&amp;quot; -a -d &amp;quot;$dock&amp;quot; ]; then&lt;br /&gt;
        logger ultrabay_eject undocking $dock&lt;br /&gt;
        echo 1 &amp;gt; $dock/undock&lt;br /&gt;
fi&lt;br /&gt;
# Tell the user we're OK&lt;br /&gt;
logger ultrabay_eject done&lt;br /&gt;
echo 12 &amp;gt; /proc/acpi/ibm/beep&lt;br /&gt;
notify-send -u normal -t 300000 &amp;quot;Safe to remove&amp;quot; &amp;quot;The ThinkPad Ultrabay device can now safely be removed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then make sure ownership and permissions are set correct&lt;br /&gt;
 chown root:root /usr/local/sbin/ultrabay_eject&lt;br /&gt;
 chmod 555 /usr/local/sbin/ultrabay_eject&lt;br /&gt;
&lt;br /&gt;
===IrDA===&lt;br /&gt;
IrDA is detected, but does not work. Part of the problem is that the default Fedora configuration expects to find the IrDA port at /dev/ttyS2, while it should use /dev/ircomm0 instead. This can be fixed in {{path|/etc/sysconfig/irda}} after which the irda service can be started ({{cmdroot|service irda start}}).&lt;br /&gt;
&lt;br /&gt;
However, even after this communication with other devices fails. irdadump does not show any output when something like a mobile phone with IrDA is sending data.&lt;br /&gt;
== Untested on Fedora 11 ==&lt;br /&gt;
&lt;br /&gt;
The WWAN option has not been tested yet. If you try it with Fedora 11, please update the table.&lt;br /&gt;
&lt;br /&gt;
[[Category:T60]][[Category:Fedora]][[Category:T60p]]&lt;/div&gt;</summary>
		<author><name>Mtk</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_11_on_a_ThinkPad_T60&amp;diff=44427</id>
		<title>Installing Fedora 11 on a ThinkPad T60</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_11_on_a_ThinkPad_T60&amp;diff=44427"/>
		<updated>2009-09-28T20:46:25Z</updated>

		<summary type="html">&lt;p&gt;Mtk: /* Success Chart - Out of the box experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
{{NOTE|Some functions mentioned below might rely on available Fedora updates being installed. So if you're having problems with something that is supposed to work, please ensure you have all available updates installed}}&lt;br /&gt;
{{NOTE|This is based on the x86-64 version of Fedora 11}}&lt;br /&gt;
{{NOTE|ThinkPad T60p is reported here as well}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Success Chart - Out of the box experience ==&lt;br /&gt;
The SMOLT profile for the T60 used for testing Fedora 11 is [http://www.smolts.org/client/show/pub_55c7e1c7-00a3-468c-a558-ae1382ef506c here].&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2| '''Item''' || '''Working''' || '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=3|Installation &lt;br /&gt;
| Local CD/DVD install || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Network Installation || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| USB Installation     || {{Cyes}} ||&lt;br /&gt;
|- &lt;br /&gt;
|rowspan=3|Display - Intel&lt;br /&gt;
| Laptop Screen  || {{Cyes}} || only 1 video mode available&lt;br /&gt;
|-&lt;br /&gt;
| VGA || {{Cno}} || currently broken&lt;br /&gt;
|-&lt;br /&gt;
| DVI || {{Cno}} || currently broken&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=3|Display - ATI&lt;br /&gt;
| Laptop Screen  || {{Cyes}} || everything works, including rotation&lt;br /&gt;
|-&lt;br /&gt;
| VGA || {{Cyes}} || everything works, including rotation and mirroring&lt;br /&gt;
|-&lt;br /&gt;
| DVI || {{Cunk}} (should work) || no reason this wouldn't work&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2|Power Management&lt;br /&gt;
| Software Suspend (hibernate) || {{Cyes}} || &lt;br /&gt;
|-&lt;br /&gt;
| Suspend to Memory (ACPI sleep) || {{Cyes}} || &lt;br /&gt;
|-&lt;br /&gt;
|colspan=2| Audio || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=5| Wireless || WiFi - Atheros|| {{Cpart}} || occasional disconnect/reconnect&lt;br /&gt;
|-&lt;br /&gt;
| WiFi - Intel|| {{Cyes}} || no problems at all&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| WWAN - Verizon  || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
| WWAN - Cingular || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Buttons || Keyboard Section || {{Cpart}} || see ThinkPad keyboard section below&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=8|Ports&lt;br /&gt;
| Ethernet || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Modem || {{Cno}} || Requires closed-source driver&lt;br /&gt;
|-&lt;br /&gt;
| Serial || {{Cyes}} || Requires port-replicator or dock&lt;br /&gt;
|-&lt;br /&gt;
| IrDA || {{Cno}} || Device is detected, but does not work.&lt;br /&gt;
|-&lt;br /&gt;
| PS/2 Keyboard/Mouse || {{Cyes}}|| Mouse tested, Requires port-replicator or dock&lt;br /&gt;
|-&lt;br /&gt;
| Parallel || {{Cunk}} (should work)|| Requires port-replicator or dock&lt;br /&gt;
|-&lt;br /&gt;
| USB || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| PCMCIA/Cardbus || {{Cyes}} || even ATA adaptors (for CF cards, etc) now work!&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2| Harddisk Active Protection || {{Cno}} || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2| Ultrabay device hotswap || {{Cpart}} || see below, use with&lt;br /&gt;
caution out of the box&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2| Fingerprint reader || {{Cyes}} || F11 has standard support for Fingerprint readers&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2| TPM (security subsystem) || {{Cunk}} || Not brave enough to mess around with it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tested and Verified on Fedora 11 =&lt;br /&gt;
&lt;br /&gt;
Information in this section has been tested and verified using Fedora 11, including the pre-release (post-beta) version.  The development version of Fedora 11 (rawhide) is quite stable and even suitable for day-to-day use, if you are a bit brave.  You will be automatically switched over to the release version of Fedora 11 if you keep everything up to date.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Installation is straight forward; you can follow the generic Fedora install instructions.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== X Server (Intel)===&lt;br /&gt;
Basic X server functionality should work out of the box on the ThinkPad LCD (LVDS), as long as no external displays are attached at boot. &lt;br /&gt;
&lt;br /&gt;
Fedora 11 uses KMS (Kernel Mode Setting) by default, which for now has some up and down sides for external displays.&lt;br /&gt;
&lt;br /&gt;
For the moment external displays do not work. When you boot with an external display attached, you will get a non-optimal resolution on the external display, and the LVDS will be off. When you logon the system will hang, and you will have a black display, but with functioning mouse cursor. Attaching a display afterwards also freezes the system when you try to active extended desktop.&lt;br /&gt;
&lt;br /&gt;
Another down side is that currently mirror mode is very limited as the ThinkPad LCD (LVDS) is limited to one single display mode, so only if the external display supports this same mode can you activate mirror mode. On the other hand with KMS enabled the maximum virtual display size is now 4096x4096 (2048x2048 without KMS) meaning you can have an extended desktop.&lt;br /&gt;
&lt;br /&gt;
A workaround to the single mode problem is to add the modes manually with xrandr. Below is a script I created that adds the most common modes for a 1400x1050 LCD ThinkPad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# modelines created with &amp;quot;gtf 640 480 60&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
xrandr --newmode &amp;quot;1280x1024_60.00&amp;quot;  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync&lt;br /&gt;
xrandr --newmode &amp;quot;1024x768_60.00&amp;quot;  64.11  1024 1080 1184 1344  768 769 772 795  -HSync +Vsync&lt;br /&gt;
xrandr --newmode &amp;quot;800x600_60.00&amp;quot;  38.22  800 832 912 1024  600 601 604 622  -HSync +Vsync&lt;br /&gt;
xrandr --newmode &amp;quot;640x480_60.00&amp;quot;  23.86  640 656 720 800  480 481 484 497  -HSync +Vsync&lt;br /&gt;
xrandr --addmode LVDS1 &amp;quot;1280x1024_60.00&amp;quot;&lt;br /&gt;
xrandr --addmode LVDS1 &amp;quot;1024x768_60.00&amp;quot;&lt;br /&gt;
xrandr --addmode LVDS1 &amp;quot;800x600_60.00&amp;quot;&lt;br /&gt;
xrandr --addmode LVDS1 &amp;quot;640x480_60.00&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== X Server (ATI)===&lt;br /&gt;
On a T60p, displays work well, with multiple mirrored and non-mirrored displays and even with one of the displays being rotated!  This may also work on a base T60, as there has been a lot of effort put into getting this to work right.&lt;br /&gt;
&lt;br /&gt;
One thing that still doesn't work quite right is screensavers and screen blanking.  There is something wrong with the timers, which may result in your screen blanking while you are typing.  Recovery is a simple as waiting until the screen is completely blank and then type or click to wake up the screen.&lt;br /&gt;
&lt;br /&gt;
Another thing that doesn't work quite right is screen resolution when booting with multiple screens.  If one screen doesn't not have a preferred resolution, a poor resolution may be used for both screens during the booting process.  Everything works fine after login, however.&lt;br /&gt;
&lt;br /&gt;
==== Desktop Effects ====&lt;br /&gt;
Compiz (wobbly windows, desktops on a cube) seems to work.  Direct display of video may be problematic with Compiz, however.&lt;br /&gt;
&lt;br /&gt;
=== dpi ===&lt;br /&gt;
On the 1400x1050 (and 1600x1200) LCD Fedora comes up with a DPI of 124 (or higher). While this is correct for the physical screen size, it waists a lot of screen real estate.&lt;br /&gt;
&lt;br /&gt;
To change to the more typical 96 DPI, go to System -&amp;gt; Preferences -&amp;gt; Appearance. Now in Appearance Preferences select the Fonts tab and press the &amp;quot;Details ...&amp;quot; button. Here you can change the dots per inch to 96.  Of course, many things will shrink, but that is what you wanted, after all.&lt;br /&gt;
&lt;br /&gt;
=== Wireless Network ===&lt;br /&gt;
&lt;br /&gt;
Both the Intel and Atheros wireless should work out of the box.&lt;br /&gt;
====Atheros WiFi====&lt;br /&gt;
Atheros was tested and works, but you may encounter occasional disconnects and reconnects. In addition you might have problems after a suspend cycle. It seems the Atheros chip can get stuck sometimes, require a shutdown (not just a reboot) before the driver can initialize the chip again. Also the WiFi LED remains off.&lt;br /&gt;
&lt;br /&gt;
As a test I tried the 2.6.31-0.21.rc0.git18.fc12 kernel from rawhide, but it does not seem to make any big difference. Still disconnects, but at least the WiFi activity LED works.&lt;br /&gt;
&lt;br /&gt;
====Intel WiFi====&lt;br /&gt;
Intel wireless was tested and works.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPad keys ===&lt;br /&gt;
ThinkPad keys are handled by a mixture of the thinkpad_acpi, acpi button, acpi dock and acpi video drivers.&lt;br /&gt;
{{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.}}&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Key''' || '''Function''' || '''Handled by''' ||'''Event''' || '''Works''' || '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F2 || lock screen || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F3 || battery || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F4 || suspend || acpi button|| {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F5 || wireless || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F7 || videomode || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cyes}} || Cycles through only LCD, only external, both (mirrored), and both (non-mirrored)&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F8 || mouse input select || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F9 || undock || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F12 || hibernate || acpi button|| {{Cyes|text=}} HAL || {{Cpart}} || does the same as Fn-F4 (suspend), not hibernate &lt;br /&gt;
|-&lt;br /&gt;
| Fn-Home || brightness up || acpi video || {{Cyes|text=}} HAL || {{Cyes}} || includes on-screen display of brightness level&lt;br /&gt;
|-&lt;br /&gt;
| Fn-End || brightness down || acpi video || {{Cyes|text=}} HAL || {{Cyes}} || includes on-screen display of brightness level&lt;br /&gt;
|-&lt;br /&gt;
| Fn-PgUp || thinklight || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. No OSD in any case.&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Space || zoom || thinkpad_acpi || {{Cyes|text=}} HAL || {{Cno}} ||&lt;br /&gt;
|-&lt;br /&gt;
| VolumeUp || Volume Up || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. But OSD is wrong&lt;br /&gt;
|-&lt;br /&gt;
| VolumeDown || Volume Down || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events. But OSD is wrong&lt;br /&gt;
|-&lt;br /&gt;
| Mute || Mute || - || {{Cno}} || {{Cyes}} || changing thinkpad_acpi hotkey_mask, causes HAL events and OSD. works as a on/off toggle&lt;br /&gt;
|-&lt;br /&gt;
| ThinkVantage || Vendor key ||thinkpad_acpi || {{Cyes|text=}} HAL || {{Cpart}} || No default action, but can be associated with gnome-keybinding-properties&lt;br /&gt;
|-&lt;br /&gt;
| NextTab || Browser Next tab || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| PreviousTab || Browser Previous tab || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Up || Stop || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Left || reverse || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Right || forward || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Down || play/pause || standard keyboard driver || {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Power || Power button || acpi button|| {{Cyes|text=}} HAL || {{Cyes}} || Need to press button for ~1 second to trigger event &lt;br /&gt;
|-&lt;br /&gt;
| Lid || Lid button || acpi button|| {{Cyes|text=}} HAL || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Dock || Dock eject button || acpi dock  || {{Cyes|text=}} udev || {{Cpart}} || causes udev event. Disconnects Ethernet, switches to battery and unload of USB devices (including internal Bluetooth!!).Does not restore video to ThinkPad only.&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay || Ultrabay eject switch || acpi dock || {{Cyes|text=}} udev || {{Cpart}} || causes a udev event, which can be handled as in [How to hotswap Ultrabay devices], with minor changes, but should be handled better&lt;br /&gt;
|-&lt;br /&gt;
| Radio switch || Radio kill switch || thinkpad_acpi || {{Cyes|text=}} udev || {{Cpart}} || Bluetooth only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrabay ===&lt;br /&gt;
&lt;br /&gt;
The Ultrabay has some glitches out of the box with respect to hotswapping.  It is possible to lock the machine when pulling out devices, even the CD/DVD device.&lt;br /&gt;
&lt;br /&gt;
The culprit is that the Ultrabay pre-eject switch is not hooked into anything useful.  It does cause udev events, but nothing is listening for them.  When a device that has a mounted partition or CD is actually pulled out it is too late to do the right thing.  Fedora 11 will usually just complain, sometimes bitterly, but may also lock up for some unknown reason, even if just pulling out a CD/DVD device with a mounted CD.&lt;br /&gt;
&lt;br /&gt;
Manually unmounting before removal will help.  Manual powering down may also be required for correct performance.  &lt;br /&gt;
&lt;br /&gt;
A better solution is to set up a udev rule and script to handle the pre-eject switch event for Ultrabay devices that have mountable things in them as in [How to hotswap Ultrabay devices].&lt;br /&gt;
&lt;br /&gt;
The revised solution here works well.  Pushing the pre-eject switch either does the unmounting and powering off and then emits a low beep, or fails and then emits a triple beep.  After success the device can be safely removed or the eject lever can be pushed back and everything will be remounted.  After failure pushing the eject lever back in does nothing, permitting continuing as if nothing happened or allowing changes to be made before the next attempt to remove.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the code below is complex and may be fragile.  A better solution would be very useful.&lt;br /&gt;
&lt;br /&gt;
To set this solution up, first&lt;br /&gt;
create the file {{path|/etc/udev/rules.d/50-thinkpad-ultrabay.rules}} with the following content&lt;br /&gt;
&lt;br /&gt;
 ENV{BAY_EVENT}==&amp;quot;3&amp;quot;, ACTION==&amp;quot;change&amp;quot;, SUBSYSTEM==&amp;quot;scsi&amp;quot;, RUN+=&amp;quot;/usr/local/sbin/ultrabay_eject&amp;quot;&lt;br /&gt;
Make sure it is owned by root and has the right selinux security context&lt;br /&gt;
 chown root:root /etc/udev/rules.d/50-thinkpad-ultrabay.rules&lt;br /&gt;
 chmod 644 /etc/udev/rules.d/50-thinkpad-ultrabay.rules&lt;br /&gt;
 chcon system_u:object_r:etc_runtime_t:s0 /etc/udev/rules.d/50-thinkpad-ultrabay.rules&lt;br /&gt;
&lt;br /&gt;
Then create the executable file {{path|/usr/local/sbin/ultrabay_eject}} with the following content&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
ULTRABAY_SYSDIR=/sys$DEVPATH&lt;br /&gt;
shopt -s nullglob&lt;br /&gt;
logger ultrabay_eject storage device $DEVPATH&lt;br /&gt;
export DISPLAY=:0.0 # required for notify-send&lt;br /&gt;
&lt;br /&gt;
# Umount the filesystem(s) backed by the given major:minor device(s)&lt;br /&gt;
unmount_rdev() { perl - &amp;quot;$@&amp;quot; &amp;lt;&amp;lt;'EOPERL'  # let's do it in Perl&lt;br /&gt;
        for $major_minor (@ARGV) {&lt;br /&gt;
                $major_minor =~ m/^(\d+):(\d+)$/ or die;&lt;br /&gt;
                push(@tgt_rdevs, ($1&amp;lt;&amp;lt;8)|$2);&lt;br /&gt;
        }&lt;br /&gt;
        # Sort by reverse length of mount point, to unmount sub-directories first&lt;br /&gt;
        open MOUNTS,&amp;quot;&amp;lt;/proc/mounts&amp;quot; or die &amp;quot;$!&amp;quot;;&lt;br /&gt;
        @mounts=sort { length($b-&amp;gt;[1]) &amp;lt;=&amp;gt; length($a-&amp;gt;[1]) } map { [ split ] } &amp;lt;MOUNTS&amp;gt;;&lt;br /&gt;
        close MOUNTS;&lt;br /&gt;
        foreach $m (@mounts) {&lt;br /&gt;
                ($dev,$dir)=@$m;&lt;br /&gt;
                next unless -b $dev;  $rdev=(stat($dev))[6];&lt;br /&gt;
                next unless grep($_==$rdev, @tgt_rdevs);&lt;br /&gt;
                system(&amp;quot;umount&amp;quot;,&amp;quot;-v&amp;quot;,&amp;quot;$dir&amp;quot;)==0  or  $bad=1;&lt;br /&gt;
                if ($bad == 1) {&lt;br /&gt;
                        system(&amp;quot;logger&amp;quot;,&amp;quot;ultrabay_eject&amp;quot;,&amp;quot;ERROR unmounting&amp;quot;,$dev,$dir);&lt;br /&gt;
                        system(&amp;quot;notify-send -u critical -t 300000 \&amp;quot;Error unmounting $dir\&amp;quot; \&amp;quot;Unmounting of $dir on $dev failed!\&amp;quot;&amp;quot;);&lt;br /&gt;
                } else {&lt;br /&gt;
                        system(&amp;quot;logger&amp;quot;,&amp;quot;ultrabay_eject&amp;quot;,&amp;quot;unmounted&amp;quot;,$dev,$dir);&lt;br /&gt;
                        system(&amp;quot;notify-send -u normal -t 300000 \&amp;quot;Unmounted $dir\&amp;quot;&amp;quot;);&lt;br /&gt;
                };&lt;br /&gt;
        }&lt;br /&gt;
        exit 1 if $bad;&lt;br /&gt;
EOPERL&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get the UltraBay's /dev/foo block device node&lt;br /&gt;
ultrabay_dev_node() {&lt;br /&gt;
        UDEV_PATH=&amp;quot;`readlink -e &amp;quot;$ULTRABAY_SYSDIR/block/&amp;quot;*`&amp;quot; || return 1&lt;br /&gt;
        UDEV_NAME=&amp;quot;`udevadm info --query=name --path=$UDEV_PATH`&amp;quot; || return 1&lt;br /&gt;
        echo /dev/$UDEV_NAME&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ -d $ULTRABAY_SYSDIR ]; then&lt;br /&gt;
        sync&lt;br /&gt;
        # Unmount filesystems backed by this device&lt;br /&gt;
        ## This seems to be very inelegant and prone to failure&lt;br /&gt;
        unmount_rdev `cat $ULTRABAY_SYSDIR/block/*/dev     \&lt;br /&gt;
                          $ULTRABAY_SYSDIR/block/*/*/dev`  \&lt;br /&gt;
        || {&lt;br /&gt;
                logger ultrabay_eject umounting failed&lt;br /&gt;
                echo 2 &amp;gt; /proc/acpi/ibm/beep  # triple error tone&lt;br /&gt;
                notify-send -u critical -t 300000 &amp;quot;ThinkPad Ultrabay eject failed&amp;quot; &amp;quot;Please do not pull the device, doing so could cause file corruption and possibly hang the system. Unmounting of the filesystem on the ThinkPad Ultrabay device failed. Please put the eject leaver back in place, and try to unmount the filesystem manually. If this succeeds you can try the eject again&amp;quot;&lt;br /&gt;
                exit 1;&lt;br /&gt;
        }&lt;br /&gt;
        sync&lt;br /&gt;
        # Nicely power off the device&lt;br /&gt;
        DEVNODE=`ultrabay_dev_node` &amp;amp;&amp;amp; hdparm -Y $DEVNODE&lt;br /&gt;
        # Let HAL+KDE notice the unmount and let the disk spin down&lt;br /&gt;
        sleep 0.5&lt;br /&gt;
        # Unregister this SCSI device:&lt;br /&gt;
        sync&lt;br /&gt;
        echo 1 &amp;gt; $ULTRABAY_SYSDIR/delete&lt;br /&gt;
else&lt;br /&gt;
        logger ultrabay_eject no ultrabay device directory&lt;br /&gt;
        echo 2 &amp;gt; /proc/acpi/ibm/beep  # triple error tone&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# We need sleep here so someone can disconnect the bay and the drive&lt;br /&gt;
sleep 1&lt;br /&gt;
&lt;br /&gt;
# Turn off power to the UltraBay&lt;br /&gt;
dock=$( /bin/grep ata_bay /sys/devices/platform/dock.?/type )&lt;br /&gt;
dock=${dock%%/type:ata_bay} # needed for 2.6.27 and later&lt;br /&gt;
if [ -n &amp;quot;$dock&amp;quot; -a -d &amp;quot;$dock&amp;quot; ]; then&lt;br /&gt;
        logger ultrabay_eject undocking $dock&lt;br /&gt;
        echo 1 &amp;gt; $dock/undock&lt;br /&gt;
fi&lt;br /&gt;
# Tell the user we're OK&lt;br /&gt;
logger ultrabay_eject done&lt;br /&gt;
echo 12 &amp;gt; /proc/acpi/ibm/beep&lt;br /&gt;
notify-send -u normal -t 300000 &amp;quot;Safe to remove&amp;quot; &amp;quot;The ThinkPad Ultrabay device can now safely be removed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then make sure ownership and permissions are set correct&lt;br /&gt;
 chown root:root /usr/local/sbin/ultrabay_eject&lt;br /&gt;
 chmod 555 /usr/local/sbin/ultrabay_eject&lt;br /&gt;
&lt;br /&gt;
===IrDA===&lt;br /&gt;
IrDA is detected, but does not work. Part of the problem is that the default Fedora configuration expects to find the IrDA port at /dev/ttyS2, while it should use /dev/ircomm0 instead. This can be fixed in {{path|/etc/sysconfig/irda}} after which the irda service can be started ({{cmdroot|service irda start}}).&lt;br /&gt;
&lt;br /&gt;
However, even after this communication with other devices fails. irdadump does not show any output when something like a mobile phone with IrDA is sending data.&lt;br /&gt;
== Untested on Fedora 11 ==&lt;br /&gt;
&lt;br /&gt;
The Fingerprint reader and the WWAN options have not been tested yet. If you tried them with Fedora 11, please update the table.&lt;br /&gt;
&lt;br /&gt;
[[Category:T60]][[Category:Fedora]][[Category:T60p]]&lt;/div&gt;</summary>
		<author><name>Mtk</name></author>
		
	</entry>
</feed>