<?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=AlanHK</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=AlanHK"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/AlanHK"/>
	<updated>2026-05-05T22:41:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_hotswap_the_UltraBase&amp;diff=46646</id>
		<title>How to hotswap the UltraBase</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_hotswap_the_UltraBase&amp;diff=46646"/>
		<updated>2010-03-01T00:46:47Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Here is how I set up an {{X22}} to allow hot ejection/removal of the UltraBase. See also [[How_to_hotswap_Ultrabay_devices|this related page]] for the Ultrabay. These instructions are well-tested, but ymmv.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
* Uses &amp;lt;tt&amp;gt;lt_hotswap&amp;lt;/tt&amp;gt; to preserve DMA on re-insert&lt;br /&gt;
* Idiot-proof (somewhat)&lt;br /&gt;
* Scripts also work without &amp;lt;tt&amp;gt;lt_hotswap&amp;lt;/tt&amp;gt; (using the older way, &amp;lt;tt&amp;gt;idectl&amp;lt;/tt&amp;gt;).&lt;br /&gt;
* Makes use of ThinkPad beeps to inform user.&lt;br /&gt;
&lt;br /&gt;
===System===&lt;br /&gt;
&lt;br /&gt;
* X22 ThinkPad + UltraBase + DVD-R&lt;br /&gt;
* [[lt_hotswap]] version 0.3.9&lt;br /&gt;
* kernel-2.6.17.1&lt;br /&gt;
* xorg 6.9.0&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
&lt;br /&gt;
===rc.local===&lt;br /&gt;
First, make sure the lt_hotswap module is loaded. Add this to /etc/rc.local (or use modprobe.preload, if you prefer)&lt;br /&gt;
 echo &amp;quot;Loading lt_hotswap module&amp;quot;&lt;br /&gt;
 modprobe lt_hotswap hdc_dock=1&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/lths===&lt;br /&gt;
&lt;br /&gt;
Disable the existing lths script. Here is the modified /etc/acpi/events/lths:&lt;br /&gt;
 # Call the LTHS script&lt;br /&gt;
 event=lths.*&lt;br /&gt;
 #action=/usr/local/sbin/lths.sh %e&lt;br /&gt;
 action=echo &amp;quot;Not invoking lths.sh; this is now done by the ultrabase_eject and insert scripts instead.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/ultrabase_eject===&lt;br /&gt;
&lt;br /&gt;
Respond to an ultrabase eject event. Here is /etc/acpi/events/ultrabase_eject&lt;br /&gt;
 #Ultrabase eject button has been pressed&lt;br /&gt;
 #We can be triggered by an ibm/bay event if NOT using lt_hotswap, or an lt_hotswap event if we are.&lt;br /&gt;
 event=ibm/bay.MSTR.00000003.00000000&lt;br /&gt;
 event=lths.MSTR.00000003.00000000&lt;br /&gt;
 action=/etc/acpi/actions/ultrabase_eject.sh&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/ultrabase_insert===&lt;br /&gt;
&lt;br /&gt;
Respond to an ultrabase insert event. Here is /etc/acpi/events/ultrabase_insert&lt;br /&gt;
 #Ultrabase has been re-inserted&lt;br /&gt;
 #We can be triggered by an ibm/bay event if NOT using lt_hotswap, or an lt_hotswap event if we are.&lt;br /&gt;
 event=ibm/bay.MSTR.00000001.00000000&lt;br /&gt;
 event=lths.MSTR.00000001.00000000&lt;br /&gt;
 action=/etc/acpi/actions/ultrabase_insert.sh&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/actions/ultrabase_eject.sh===&lt;br /&gt;
&lt;br /&gt;
This is the actual script which does the ejection. It is /etc/acpi/actions/ultrabase_eject.sh&lt;br /&gt;
* Note the dependency on '''cddb-id'''.&lt;br /&gt;
{{MoveToCode}}&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;syncing disks for safety&amp;quot;&lt;br /&gt;
 sync&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Unregistering IDE interface for CDROM and preparing to eject.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #Note: the BIOS will already deal with the ultrabay LED (number 3). It will:&lt;br /&gt;
 #  * turn it on when the bay is loaded&lt;br /&gt;
 #  * turn it off when the bay is unloaded&lt;br /&gt;
 #  * blink it when it is waiting between an eject request and an eject. (Linux never takes long enough to see this!)&lt;br /&gt;
 &lt;br /&gt;
 #What if there is a disk in the drive?&lt;br /&gt;
 #Case 1: there is an umounted CDROM, or an AudioCD/DVD which is NOT playing.&lt;br /&gt;
 # =&amp;gt; It's OK to proceed.&lt;br /&gt;
 &lt;br /&gt;
 #Case 2: there is a mounted CDROM. &lt;br /&gt;
 # =&amp;gt; we MUST unmount it, or give up on ejecting.&lt;br /&gt;
 if grep hdc /proc/mounts &amp;gt;/dev/null; then&lt;br /&gt;
        echo &amp;quot;There is a mounted filesystem on /dev/hdc. Trying to unmount it&amp;quot;&lt;br /&gt;
        umount /dev/hdc&lt;br /&gt;
        if [ $? == 0 ]; then&lt;br /&gt;
                echo &amp;quot;Successfully unmounted the CDROM.&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;The CDROM is busy; can't unmount. Do not try to undock.&amp;quot;&lt;br /&gt;
                echo 9 &amp;gt; /proc/acpi/ibm/beep   #This is an &amp;quot;unhappy, warning beep&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #Case 3: there is a AudioCD/DVD which is currently playing.&lt;br /&gt;
 #How do we detect this? It could be just using cdplay (which has no associated process)&lt;br /&gt;
 #The following methd is ugly, and it requires the cddb-id program. However, it does work.&lt;br /&gt;
 #Assuming that we have already ruled out a mounted filesystem, then...&lt;br /&gt;
 CDDBID=$(cddb-id /dev/hdc 2&amp;gt;/dev/null)&lt;br /&gt;
 if [ -n &amp;quot;$CDDBID&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;There is a CD in the drive. Ejecting it&amp;quot;&lt;br /&gt;
        eject /dev/hdc   #Buglet: we don't necessarily want to eject the disk; we just want to be sure it has stopped playing.&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #We're now OK to proceed.&lt;br /&gt;
 if /sbin/lsmod | grep lt_hotswap &amp;gt; /dev/null ; then&lt;br /&gt;
        echo &amp;quot;We are using lt_hotswap&amp;quot;&lt;br /&gt;
         #Eject the bay using lths.&lt;br /&gt;
        echo -n &amp;quot;MSTR eject&amp;quot; &amp;gt; /proc/acpi/lths&lt;br /&gt;
 else&lt;br /&gt;
        echo &amp;quot;We are not using lt_hotswap. Do it the old way with idectl.&amp;quot;&lt;br /&gt;
         #Unregister IDE interface 1. This WILL cause a kernel panic if there is anything in the drive!&lt;br /&gt;
        idectl 1 off&lt;br /&gt;
         #Tell the thinkpad the bay is to be ejected&lt;br /&gt;
        echo eject &amp;gt; /proc/acpi/ibm/bay&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #Beep happily&lt;br /&gt;
 echo 6 &amp;gt; /proc/acpi/ibm/beep&lt;br /&gt;
 echo &amp;quot;OK to undock&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/actions/ultrabase_insert.sh===&lt;br /&gt;
&lt;br /&gt;
This script is called on insertion. It is /etc/acpi/actions/ultrabase_insert.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;Ultrabase has been inserted. Re-registering IDE interface for CDROM.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 if /sbin/lsmod | grep lt_hotswap &amp;gt; /dev/null ; then&lt;br /&gt;
        echo &amp;quot;We are using lt_hotswap&amp;quot;&lt;br /&gt;
        echo &amp;quot;Enabling DMA on /dev/hdc&amp;quot;&lt;br /&gt;
        hdparm -d 1 -u 1 -c 1 /dev/hdc&lt;br /&gt;
 &lt;br /&gt;
        #LTHS already beeps; no beep required here.&lt;br /&gt;
 else&lt;br /&gt;
        echo &amp;quot;We are not using lt_hotswap. Do it the old way with idectl.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
        #Register IDE interface 1&lt;br /&gt;
        idectl 1 rescan&lt;br /&gt;
        #Turn DMA on again. But this is probably a vain attempt; it will fail unless we are using lt_hotswap.&lt;br /&gt;
        sleep 2&lt;br /&gt;
        hdparm -d1 /dev/hdc || echo &amp;quot;WARNING: DMA cannot be re-enabled for hdc after insert. You'll have to reboot for now.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
        #Beep happily&lt;br /&gt;
        echo 6 &amp;gt; /proc/acpi/ibm/beep&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Redocked successfully&amp;quot;&lt;br /&gt;
 echo &amp;quot;Note: KDE's volume manager might not work anymore with the CD/DVD drive.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
* The easiest way to check what is happening is:&lt;br /&gt;
 tail -f /var/log/acpid&lt;br /&gt;
&lt;br /&gt;
* Remember, after modifying anything in /etc/acpi/events, to reload the acpid rules:&lt;br /&gt;
 killall -HUP acpid&lt;br /&gt;
&lt;br /&gt;
* Note that stdout from all scripts ends up in /var/log/acpid. But to communicate a message with the user, it's best to use either the various thinkpad beeps, or perhaps the thinklight.&lt;br /&gt;
&lt;br /&gt;
* Note: idectl and lt_hotswap '''really''' don't get along together. You will lock the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
# Save your files; this could (possibly) crash the kernel.&lt;br /&gt;
# Press the &amp;quot;Request ejection&amp;quot; button, which is on the front of the ultrabase (located between CD drive and floppy).&lt;br /&gt;
# The thinkpad should beep happily (high-low). If so, proceed. Otherwise, if it beeps unhappily (3 very short high beeps), it was unable to unmount a busy filesystem in the optical drive. &amp;lt;br&amp;gt;Note: If you change your mind after the thinkpad has beeped happily, you should eject the laptop, and then re-insert.&lt;br /&gt;
# Gently pull the release handles (back left/right of the ultrabase). If it beeps unhappily (long, high), stop pulling. &lt;br /&gt;
# Pull the handles harder to physically eject the thinkpad.&lt;br /&gt;
# Later, reseat the thinkpad with a firm push.&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_hotswap_the_UltraBase&amp;diff=46645</id>
		<title>How to hotswap the UltraBase</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_hotswap_the_UltraBase&amp;diff=46645"/>
		<updated>2010-03-01T00:46:11Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Here is how I set up an {{X22}} to allow hot ejection/removal of the UltraBase. See also [[How_to_hotswap_Ultrabay_devices|this related page]] for the Ultrabay. These instructions are well-tested, but ymmv.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
* Uses &amp;lt;tt&amp;gt;lt_hotswap&amp;lt;/tt&amp;gt; to preserve DMA on re-insert&lt;br /&gt;
* Idiot-proof (somewhat)&lt;br /&gt;
* Scripts also work without &amp;lt;tt&amp;gt;lt_hotswap&amp;lt;/tt&amp;gt; (using the older way, &amp;lt;tt&amp;gt;idectl&amp;lt;/tt&amp;gt;).&lt;br /&gt;
* Makes use of ThinkPad beeps to inform user.&lt;br /&gt;
&lt;br /&gt;
===System===&lt;br /&gt;
&lt;br /&gt;
* X22 ThinkPad + UltraBase + DVD-R&lt;br /&gt;
* [[lt_hotswap]] version 0.3.9&lt;br /&gt;
* kernel-2.6.17.1&lt;br /&gt;
* xorg 6.9.0&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
&lt;br /&gt;
===rc.local===&lt;br /&gt;
First, make sure the lt_hotswap module is loaded. Add this to /etc/rc.local (or use modprobe.preload, if you prefer)&lt;br /&gt;
 echo &amp;quot;Loading lt_hotswap module&amp;quot;&lt;br /&gt;
 modprobe lt_hotswap hdc_dock=1&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/lths===&lt;br /&gt;
&lt;br /&gt;
Disable the existing lths script. Here is the modified /etc/acpi/events/lths:&lt;br /&gt;
 # Call the LTHS script&lt;br /&gt;
 event=lths.*&lt;br /&gt;
 #action=/usr/local/sbin/lths.sh %e&lt;br /&gt;
 action=echo &amp;quot;Not invoking lths.sh; this is now done by the ultrabase_eject and insert scripts instead.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/ultrabase_eject===&lt;br /&gt;
&lt;br /&gt;
Respond to an ultrabase eject event. Here is /etc/acpi/events/ultrabase_eject&lt;br /&gt;
 #Ultrabase eject button has been pressed&lt;br /&gt;
 #We can be triggered by an ibm/bay event if NOT using lt_hotswap, or an lt_hotswap event if we are.&lt;br /&gt;
 event=ibm/bay.MSTR.00000003.00000000&lt;br /&gt;
 event=lths.MSTR.00000003.00000000&lt;br /&gt;
 action=/etc/acpi/actions/ultrabase_eject.sh&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/ultrabase_insert===&lt;br /&gt;
&lt;br /&gt;
Respond to an ultrabase insert event. Here is /etc/acpi/events/ultrabase_insert&lt;br /&gt;
 #Ultrabase has been re-inserted&lt;br /&gt;
 #We can be triggered by an ibm/bay event if NOT using lt_hotswap, or an lt_hotswap event if we are.&lt;br /&gt;
 event=ibm/bay.MSTR.00000001.00000000&lt;br /&gt;
 event=lths.MSTR.00000001.00000000&lt;br /&gt;
 action=/etc/acpi/actions/ultrabase_insert.sh&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/actions/ultrabase_eject.sh===&lt;br /&gt;
&lt;br /&gt;
This is the actual script which does the ejection. It is /etc/acpi/actions/ultrabase_eject.sh&lt;br /&gt;
* Note the dependency on '''cddb-id'''.&lt;br /&gt;
{{MoveToCode}}&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;syncing disks for safety&amp;quot;&lt;br /&gt;
 sync&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Unregistering IDE interface for CDROM and preparing to eject.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #Note: the BIOS will already deal with the ultrabay LED (number 3). It will:&lt;br /&gt;
 #  * turn it on when the bay is loaded&lt;br /&gt;
 #  * turn it off when the bay is unloaded&lt;br /&gt;
 #  * blink it when it is waiting between an eject request and an eject. (Linux never takes long enough to see this!)&lt;br /&gt;
 &lt;br /&gt;
 #What if there is a disk in the drive?&lt;br /&gt;
 #Case 1: there is an umounted CDROM, or an AudioCD/DVD which is NOT playing.&lt;br /&gt;
 # =&amp;gt; It's OK to proceed.&lt;br /&gt;
 &lt;br /&gt;
 #Case 2: there is a mounted CDROM. &lt;br /&gt;
 # =&amp;gt; we MUST unmount it, or give up on ejecting.&lt;br /&gt;
 if grep hdc /proc/mounts &amp;gt;/dev/null; then&lt;br /&gt;
        echo &amp;quot;There is a mounted filesystem on /dev/hdc. Trying to unmount it&amp;quot;&lt;br /&gt;
        umount /dev/hdc&lt;br /&gt;
        if [ $? == 0 ]; then&lt;br /&gt;
                echo &amp;quot;Successfully unmounted the CDROM.&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;The CDROM is busy; can't unmount. Do not try to undock.&amp;quot;&lt;br /&gt;
                echo 9 &amp;gt; /proc/acpi/ibm/beep   #This is an &amp;quot;unhappy, warning beep&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #Case 3: there is a AudioCD/DVD which is currently playing.&lt;br /&gt;
 #How do we detect this? It could be just using cdplay (which has no associated process)&lt;br /&gt;
 #The following methd is ugly, and it requires the cddb-id program. However, it does work.&lt;br /&gt;
 #Assuming that we have already ruled out a mounted filesystem, then...&lt;br /&gt;
 CDDBID=$(cddb-id /dev/hdc 2&amp;gt;/dev/null)&lt;br /&gt;
 if [ -n &amp;quot;$CDDBID&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;There is a CD in the drive. Ejecting it&amp;quot;&lt;br /&gt;
        eject /dev/hdc   #Buglet: we don't necessarily want to eject the disk; we just want to be sure it has stopped playing.&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #We're now OK to proceed.&lt;br /&gt;
 if /sbin/lsmod | grep lt_hotswap &amp;gt; /dev/null ; then&lt;br /&gt;
        echo &amp;quot;We are using lt_hotswap&amp;quot;&lt;br /&gt;
         #Eject the bay using lths.&lt;br /&gt;
        echo -n &amp;quot;MSTR eject&amp;quot; &amp;gt; /proc/acpi/lths&lt;br /&gt;
 else&lt;br /&gt;
        echo &amp;quot;We are not using lt_hotswap. Do it the old way with idectl.&amp;quot;&lt;br /&gt;
         #Unregister IDE interface 1. This WILL cause a kernel panic if there is anything in the drive!&lt;br /&gt;
        idectl 1 off&lt;br /&gt;
         #Tell the thinkpad the bay is to be ejected&lt;br /&gt;
        echo eject &amp;gt; /proc/acpi/ibm/bay&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #Beep happily&lt;br /&gt;
 echo 6 &amp;gt; /proc/acpi/ibm/beep&lt;br /&gt;
 echo &amp;quot;OK to undock&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/actions/ultrabase_insert.sh===&lt;br /&gt;
&lt;br /&gt;
This script is called on insertion. It is /etc/acpi/actions/ultrabase_insert.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;Ultrabase has been inserted. Re-registering IDE interface for CDROM.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 if /sbin/lsmod | grep lt_hotswap &amp;gt; /dev/null ; then&lt;br /&gt;
        echo &amp;quot;We are using lt_hotswap&amp;quot;&lt;br /&gt;
        echo &amp;quot;Enabling DMA on /dev/hdc&amp;quot;&lt;br /&gt;
        hdparm -d 1 -u 1 -c 1 /dev/hdc&lt;br /&gt;
 &lt;br /&gt;
        #LTHS already beeps; no beep required here.&lt;br /&gt;
 else&lt;br /&gt;
        echo &amp;quot;We are not using lt_hotswap. Do it the old way with idectl.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
        #Register IDE interface 1&lt;br /&gt;
        idectl 1 rescan&lt;br /&gt;
        #Turn DMA on again. But this is probably a vain attempt; it will fail unless we are using lt_hotswap.&lt;br /&gt;
        sleep 2&lt;br /&gt;
        hdparm -d1 /dev/hdc || echo &amp;quot;WARNING: DMA cannot be re-enabled for hdc after insert. You'll have to reboot for now.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
        #Beep happily&lt;br /&gt;
        echo 6 &amp;gt; /proc/acpi/ibm/beep&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Redocked successfully&amp;quot;&lt;br /&gt;
 echo &amp;quot;Note: KDE's volume manager might not work anymore with the CD/DVD drive.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
* The easiest way to check what is happening is:&lt;br /&gt;
 tail -f /var/log/acpid&lt;br /&gt;
&lt;br /&gt;
* Remember, after modifying anything in /etc/acpi/events, to reload the acpid rules:&lt;br /&gt;
 killall -HUP acpid&lt;br /&gt;
&lt;br /&gt;
* Note that stdout from all scripts ends up in /var/log/acpid. But to communicate a message with the user, it's best to use either the various thinkpad beeps, or perhaps the thinklight.&lt;br /&gt;
&lt;br /&gt;
* Note: idectl and lt_hotswap '''really''' don't get along together. You will lock the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
# Save your files; this could (possibly) crash the kernel.&lt;br /&gt;
# Press the &amp;quot;Request ejection&amp;quot; button, which is on the front of the ultrabase (located between CD drive and floppy).&lt;br /&gt;
# The thinkpad should beep happily (high-low). If so, proceed. Otherwise, if it beeps unhappily (3 very short high beeps), it was unable to unmount a busy filesystem in the optical drive. &amp;lt;br&amp;gt;Note: If you change your mind after the thinkpad has beeped happily, you should eject the laptop, and then re-insert.&lt;br /&gt;
# Gently pull the release handles (back left/right of the ultrabase). If it beeps unhappily (long, high), stop pulling. &lt;br /&gt;
# Pull the handles harder to physically eject the thinkpad.&lt;br /&gt;
# Later, reseat the thinkpad with a firm push.&lt;br /&gt;
&lt;br /&gt;
Note: If you change your mind after the thinkpad has beeped happily at (2), you should eject the laptop, and then re-insert.&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_hotswap_the_UltraBase&amp;diff=46644</id>
		<title>How to hotswap the UltraBase</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_hotswap_the_UltraBase&amp;diff=46644"/>
		<updated>2010-03-01T00:42:35Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Here is how I set up an {{X22}} to allow hot ejection/removal of the UltraBase. See also [[How_to_hotswap_Ultrabay_devices|this related page]] for the Ultrabay. These instructions are well-tested, but ymmv.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
* Uses &amp;lt;tt&amp;gt;lt_hotswap&amp;lt;/tt&amp;gt; to preserve DMA on re-insert&lt;br /&gt;
* Idiot-proof (somewhat)&lt;br /&gt;
* Scripts also work without &amp;lt;tt&amp;gt;lt_hotswap&amp;lt;/tt&amp;gt; (using the older way, &amp;lt;tt&amp;gt;idectl&amp;lt;/tt&amp;gt;).&lt;br /&gt;
* Makes use of ThinkPad beeps to inform user.&lt;br /&gt;
&lt;br /&gt;
===System===&lt;br /&gt;
&lt;br /&gt;
* X22 ThinkPad + UltraBase + DVD-R&lt;br /&gt;
* [[lt_hotswap]] version 0.3.9&lt;br /&gt;
* kernel-2.6.17.1&lt;br /&gt;
* xorg 6.9.0&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
&lt;br /&gt;
===rc.local===&lt;br /&gt;
First, make sure the lt_hotswap module is loaded. Add this to /etc/rc.local (or use modprobe.preload, if you prefer)&lt;br /&gt;
 echo &amp;quot;Loading lt_hotswap module&amp;quot;&lt;br /&gt;
 modprobe lt_hotswap hdc_dock=1&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/lths===&lt;br /&gt;
&lt;br /&gt;
Disable the existing lths script. Here is the modified /etc/acpi/events/lths:&lt;br /&gt;
 # Call the LTHS script&lt;br /&gt;
 event=lths.*&lt;br /&gt;
 #action=/usr/local/sbin/lths.sh %e&lt;br /&gt;
 action=echo &amp;quot;Not invoking lths.sh; this is now done by the ultrabase_eject and insert scripts instead.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/ultrabase_eject===&lt;br /&gt;
&lt;br /&gt;
Respond to an ultrabase eject event. Here is /etc/acpi/events/ultrabase_eject&lt;br /&gt;
 #Ultrabase eject button has been pressed&lt;br /&gt;
 #We can be triggered by an ibm/bay event if NOT using lt_hotswap, or an lt_hotswap event if we are.&lt;br /&gt;
 event=ibm/bay.MSTR.00000003.00000000&lt;br /&gt;
 event=lths.MSTR.00000003.00000000&lt;br /&gt;
 action=/etc/acpi/actions/ultrabase_eject.sh&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/events/ultrabase_insert===&lt;br /&gt;
&lt;br /&gt;
Respond to an ultrabase insert event. Here is /etc/acpi/events/ultrabase_insert&lt;br /&gt;
 #Ultrabase has been re-inserted&lt;br /&gt;
 #We can be triggered by an ibm/bay event if NOT using lt_hotswap, or an lt_hotswap event if we are.&lt;br /&gt;
 event=ibm/bay.MSTR.00000001.00000000&lt;br /&gt;
 event=lths.MSTR.00000001.00000000&lt;br /&gt;
 action=/etc/acpi/actions/ultrabase_insert.sh&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/actions/ultrabase_eject.sh===&lt;br /&gt;
&lt;br /&gt;
This is the actual script which does the ejection. It is /etc/acpi/actions/ultrabase_eject.sh&lt;br /&gt;
* Note the dependency on '''cddb-id'''.&lt;br /&gt;
{{MoveToCode}}&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;syncing disks for safety&amp;quot;&lt;br /&gt;
 sync&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Unregistering IDE interface for CDROM and preparing to eject.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #Note: the BIOS will already deal with the ultrabay LED (number 3). It will:&lt;br /&gt;
 #  * turn it on when the bay is loaded&lt;br /&gt;
 #  * turn it off when the bay is unloaded&lt;br /&gt;
 #  * blink it when it is waiting between an eject request and an eject. (Linux never takes long enough to see this!)&lt;br /&gt;
 &lt;br /&gt;
 #What if there is a disk in the drive?&lt;br /&gt;
 #Case 1: there is an umounted CDROM, or an AudioCD/DVD which is NOT playing.&lt;br /&gt;
 # =&amp;gt; It's OK to proceed.&lt;br /&gt;
 &lt;br /&gt;
 #Case 2: there is a mounted CDROM. &lt;br /&gt;
 # =&amp;gt; we MUST unmount it, or give up on ejecting.&lt;br /&gt;
 if grep hdc /proc/mounts &amp;gt;/dev/null; then&lt;br /&gt;
        echo &amp;quot;There is a mounted filesystem on /dev/hdc. Trying to unmount it&amp;quot;&lt;br /&gt;
        umount /dev/hdc&lt;br /&gt;
        if [ $? == 0 ]; then&lt;br /&gt;
                echo &amp;quot;Successfully unmounted the CDROM.&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;The CDROM is busy; can't unmount. Do not try to undock.&amp;quot;&lt;br /&gt;
                echo 9 &amp;gt; /proc/acpi/ibm/beep   #This is an &amp;quot;unhappy, warning beep&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #Case 3: there is a AudioCD/DVD which is currently playing.&lt;br /&gt;
 #How do we detect this? It could be just using cdplay (which has no associated process)&lt;br /&gt;
 #The following methd is ugly, and it requires the cddb-id program. However, it does work.&lt;br /&gt;
 #Assuming that we have already ruled out a mounted filesystem, then...&lt;br /&gt;
 CDDBID=$(cddb-id /dev/hdc 2&amp;gt;/dev/null)&lt;br /&gt;
 if [ -n &amp;quot;$CDDBID&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;There is a CD in the drive. Ejecting it&amp;quot;&lt;br /&gt;
        eject /dev/hdc   #Buglet: we don't necessarily want to eject the disk; we just want to be sure it has stopped playing.&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #We're now OK to proceed.&lt;br /&gt;
 if /sbin/lsmod | grep lt_hotswap &amp;gt; /dev/null ; then&lt;br /&gt;
        echo &amp;quot;We are using lt_hotswap&amp;quot;&lt;br /&gt;
         #Eject the bay using lths.&lt;br /&gt;
        echo -n &amp;quot;MSTR eject&amp;quot; &amp;gt; /proc/acpi/lths&lt;br /&gt;
 else&lt;br /&gt;
        echo &amp;quot;We are not using lt_hotswap. Do it the old way with idectl.&amp;quot;&lt;br /&gt;
         #Unregister IDE interface 1. This WILL cause a kernel panic if there is anything in the drive!&lt;br /&gt;
        idectl 1 off&lt;br /&gt;
         #Tell the thinkpad the bay is to be ejected&lt;br /&gt;
        echo eject &amp;gt; /proc/acpi/ibm/bay&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #Beep happily&lt;br /&gt;
 echo 6 &amp;gt; /proc/acpi/ibm/beep&lt;br /&gt;
 echo &amp;quot;OK to undock&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===/etc/acpi/actions/ultrabase_insert.sh===&lt;br /&gt;
&lt;br /&gt;
This script is called on insertion. It is /etc/acpi/actions/ultrabase_insert.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;Ultrabase has been inserted. Re-registering IDE interface for CDROM.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 if /sbin/lsmod | grep lt_hotswap &amp;gt; /dev/null ; then&lt;br /&gt;
        echo &amp;quot;We are using lt_hotswap&amp;quot;&lt;br /&gt;
        echo &amp;quot;Enabling DMA on /dev/hdc&amp;quot;&lt;br /&gt;
        hdparm -d 1 -u 1 -c 1 /dev/hdc&lt;br /&gt;
 &lt;br /&gt;
        #LTHS already beeps; no beep required here.&lt;br /&gt;
 else&lt;br /&gt;
        echo &amp;quot;We are not using lt_hotswap. Do it the old way with idectl.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
        #Register IDE interface 1&lt;br /&gt;
        idectl 1 rescan&lt;br /&gt;
        #Turn DMA on again. But this is probably a vain attempt; it will fail unless we are using lt_hotswap.&lt;br /&gt;
        sleep 2&lt;br /&gt;
        hdparm -d1 /dev/hdc || echo &amp;quot;WARNING: DMA cannot be re-enabled for hdc after insert. You'll have to reboot for now.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
        #Beep happily&lt;br /&gt;
        echo 6 &amp;gt; /proc/acpi/ibm/beep&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Redocked successfully&amp;quot;&lt;br /&gt;
 echo &amp;quot;Note: KDE's volume manager might not work anymore with the CD/DVD drive.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
* The easiest way to check what is happening is:&lt;br /&gt;
 tail -f /var/log/acpid&lt;br /&gt;
&lt;br /&gt;
* Remember, after modifying anything in /etc/acpi/events, to reload the acpid rules:&lt;br /&gt;
 killall -HUP acpid&lt;br /&gt;
&lt;br /&gt;
* Note that stdout from all scripts ends up in /var/log/acpid. But to communicate a message with the user, it's best to use either the various thinkpad beeps, or perhaps the thinklight.&lt;br /&gt;
&lt;br /&gt;
* Note: idectl and lt_hotswap '''really''' don't get along together. You will lock the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
# Save your files; this could (possibly) crash the kernel.&lt;br /&gt;
# Press the &amp;quot;Request ejection&amp;quot; button, which is on the front of the ultrabase (located between CD drive and floppy).&lt;br /&gt;
# The thinkpad should beep happily (high-low). If so, proceed. Otherwise, if it beeps unhappily (3 very short high beeps), it was unable to unmount a busy filesystem in the optical drive.&lt;br /&gt;
# Gently pull the release handles (back left/right of the ultrabase). If it beeps unhappily (long, high), stop pulling. &lt;br /&gt;
# Pull the handles harder to physically eject the thinkpad.&lt;br /&gt;
# Later, reseat the thinkpad with a firm push.&lt;br /&gt;
&lt;br /&gt;
Note: If you change your mind after the thinkpad has beeped happily at (2), you should eject the laptop, and then re-insert.&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Help:Editing&amp;diff=46643</id>
		<title>Help:Editing</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Help:Editing&amp;diff=46643"/>
		<updated>2010-03-01T00:39:27Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: /* general help */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==general help==&lt;br /&gt;
&lt;br /&gt;
For general help in editing please read [[Wikipedia:Wikipedia:Cheatsheet| Wikipedia's &amp;quot;Editing cheatsheet&amp;quot;]], or see [http://meta.wikimedia.org/wiki/Help:Editing MediaWiki's Help:Editing].&lt;br /&gt;
&lt;br /&gt;
==ThinkWiki editing policies==&lt;br /&gt;
&lt;br /&gt;
===write with other users in your mind===&lt;br /&gt;
When you write an article, keep the following things in mind...&lt;br /&gt;
*Respect others. Try sticking to a [http://en.wikipedia.org/wiki/Npov neutral point of view]. Respect the work of other writers. Respect your (potential) readers.&lt;br /&gt;
*ThinkWiki is not only about the newest models. Try to write in a way that is open for older, newer and future models. This especially regards the structuring of the information you provide.&lt;br /&gt;
*ThinkWiki is not only about your Distro. Try to make clear if something you write is valid only for your specific linux distribution.&lt;br /&gt;
*Even though the article is written by you, it is a piece of information others might work on later. Try to avoid personal remarks in your articles.&lt;br /&gt;
&lt;br /&gt;
===naming policies for new pages===&lt;br /&gt;
If you create a new page, please consider the following page naming policies. This is important to keep a persistent page naming scheme and hence to ensure that ThinkWiki still works well when it has grown more complex.&lt;br /&gt;
&lt;br /&gt;
Page names (the links you create to point to the page) are used as the page Title. Considering these policies has the following advantages:&lt;br /&gt;
*the pages will have self-explaining titles&lt;br /&gt;
*in Category views like the Model view the links to the pages are expressively labeled and similar pages are sorted together&lt;br /&gt;
*the pages are more easily found in search engines like google&lt;br /&gt;
&lt;br /&gt;
====general policies====&lt;br /&gt;
*It is allowed and in fact wanted that you use spaces within your page titles.&lt;br /&gt;
*The name you choose for the page should be as specific as its content will be. In other words...it should not be possible to write another page with more general content about the topic that your page title indicates.&lt;br /&gt;
&lt;br /&gt;
====specific kinds of pages====&lt;br /&gt;
To sort similar pages together in the Model views, we start specific pages in defined ways.&lt;br /&gt;
The following table shows the naming schemes for several kinds of pages...&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+page naming schemes&lt;br /&gt;
! page type !! naming scheme !! example&lt;br /&gt;
|-&lt;br /&gt;
| Installation instructions overview for a model || Installation instructions for the &amp;lt;model&amp;gt; || Installation instructions for the ThinkPad T41p&lt;br /&gt;
|-&lt;br /&gt;
| Installation instructions for a specific distro on a model || Installing &amp;lt;distro&amp;gt; on a &amp;lt;model&amp;gt; || Installing Gentoo on a ThinkPad T41p&lt;br /&gt;
|-&lt;br /&gt;
| other HowTos || How to ... || How to get special keys to work&lt;br /&gt;
|-&lt;br /&gt;
| Problem descriptions || Problem with ... || Problem with lm-sensors&lt;br /&gt;
|-&lt;br /&gt;
| Drivers and Tools pages || &amp;lt;name of driver/tool&amp;gt; || ibm-acpi&lt;br /&gt;
|-&lt;br /&gt;
| Patches || Patch ... || Patch disabling ACPI C3&lt;br /&gt;
|-&lt;br /&gt;
| Components || &amp;lt;name of component as used by IBM&amp;gt; || IBM 11a/b/g Wireless LAN Mini PCI Adapter II&lt;br /&gt;
|-&lt;br /&gt;
| Distro pages || Category:&amp;lt;distro&amp;gt; || Category:SUSE&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Models || Category:&amp;lt;Model without &amp;quot;ThinkPad&amp;quot;&amp;gt; || Category:T41p&lt;br /&gt;
|-&lt;br /&gt;
| Specifications || &amp;lt;type number-model number&amp;gt; || 2373-GHG&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== use semantic formatting ===&lt;br /&gt;
Please prefer semantic formatting over beauty. To help maintaining a formatting standard, you can use the following templates.&lt;br /&gt;
{{NOTE|&lt;br /&gt;
Unfortunately, nesting templates is not possible. I.e. you can't put a cmd template inside a NOTE template.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! syntax !! resulting output&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{cmduser|command}}&amp;lt;/nowiki&amp;gt; || {{cmduser|command}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{cmdroot|command}}&amp;lt;/nowiki&amp;gt; || {{cmdroot|command}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{cmdgrub|command}}&amp;lt;/nowiki&amp;gt; || {{cmdgrub|command}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{cmdresult|shell output}}&amp;lt;/nowiki&amp;gt; || {{cmdresult|shell output}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{cmd|command|prefix&amp;gt;}}&amp;lt;/nowiki&amp;gt; || {{cmd|command|prefix&amp;gt;}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{bootparm|parameter|value}}&amp;lt;/nowiki&amp;gt; || {{bootparm|parameter|value}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{path|/etc/config.cfg}}&amp;lt;/nowiki&amp;gt; || {{path|/etc/config.cfg}}&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
#&amp;lt;nowiki&amp;gt;{{kernelconf|CONFIG_SCSI|[M]|SCSI device support|SCSI device support|Device Drivers||}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;{{kernelconf|CONFIG_SCSI|[M]|SCSI device support||||}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;{{kernelconf|CONFIG_SCSI|[M]|||||}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;{{kernelconf|CONFIG_SCSI||||||}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;{{kernelconf||[M]|SCSI device support||||}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''specify the menuconfig path in reverse order and fill with empty parameters to at least a total of seven''&lt;br /&gt;
|&lt;br /&gt;
#{{kernelconf|CONFIG_SCSI|[M]|SCSI device support|SCSI device support|Device Drivers||}}&lt;br /&gt;
#{{kernelconf|CONFIG_SCSI|[M]|SCSI device support||||}}&lt;br /&gt;
#{{kernelconf|CONFIG_SCSI|[M]|||||}}&lt;br /&gt;
#{{kernelconf|CONFIG_SCSI||||||}}&lt;br /&gt;
#{{kernelconf||[M]|SCSI device support||||}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{HINT|A suggestion.}}&amp;lt;/nowiki&amp;gt; || {{HINT|A suggestion.}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{NOTE|Take notice!}}&amp;lt;/nowiki&amp;gt; || {{NOTE|Take notice!}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{WARN|Be careful!}}&amp;lt;/nowiki&amp;gt; || {{WARN|Be careful!}}&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{HELP|Request for help}}&amp;lt;/nowiki&amp;gt; || {{HELP|Request for help}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{QUOTE|Master Foo|zen-devel|Your theories on the sound of one hand clapping are quite interesting.}}&amp;lt;/nowiki&amp;gt; || {{QUOTE|Master Foo|zen-devel|Your theories on the sound of one hand clapping are quite interesting.}}&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;{{key|Fn}}{{key|F4}}&amp;lt;/nowiki&amp;gt; || {{key|Fn}}{{key|F4}}&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;{{ibmkey|Access IBM|#495988}} = {{ibmkey|ThinkPad|#494949}}&amp;lt;/nowiki&amp;gt; || {{ibmkey|Access IBM|#495988}} = {{ibmkey|ThinkPad|#494949}}&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;to be commented{{footnote|1}}&amp;lt;/nowiki&amp;gt; || to be commented{{footnote|1}}&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;{{footnotes|&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#first footnote&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#second footnote&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{footnotes|&lt;br /&gt;
#first footnote&lt;br /&gt;
#second footnote&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
When adding tables, you might want to use our special &amp;lt;nowiki&amp;gt;{{Cyes}}&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;{{Cno}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Cunk}}&amp;lt;/nowiki&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Syntax !!Resulting output&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{Cyes}}&amp;lt;/nowiki&amp;gt; || {{Cyes}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{Cno}}&amp;lt;/nowiki&amp;gt;  || {{Cno}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{Cpart}}&amp;lt;/nowiki&amp;gt;  || {{Cpart}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{Cunk}}&amp;lt;/nowiki&amp;gt;  || {{Cunk}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{Cunk}} (should work)&amp;lt;/nowiki&amp;gt; || {{Cunk}} (should work)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{Cunk|text=}} custom text&amp;lt;/nowiki&amp;gt; || {{Cunk|text=}} custom text&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== use our Link&amp;amp;Categorization Templates===&lt;br /&gt;
To ease editing and to provide a standardized way of linking to a category and categorizing the page at the same time in that category, we introduced the following Templates. So far there are two types of these:&lt;br /&gt;
*Model Templates. Just write the model number surrounded by winged brackets, like i.e. &amp;lt;nowiki&amp;gt;{{T40}}&amp;lt;/nowiki&amp;gt;. This will be equivalent to &amp;lt;nowiki&amp;gt;[[:Category:T40|T40]] [[Category:T40]]&amp;lt;/nowiki&amp;gt;. Hence the result will be a link like this: [[:Category:T40|T40]], but at the same time, the page will be categorized under that category.&lt;br /&gt;
*Distribution Templates. They work the same way as Model Templates, except that for them you need to specify the Distribution name (simplest, shortest variant of it). It will create a link to that distributions category page and also categorize the page you used the template on under that category.&lt;br /&gt;
&lt;br /&gt;
=== use our Editorial Templates===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! syntax !! resulting output&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;{{Stub}}&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;(Use only at the beginning of pages!)||{{Stub}} &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;{{Todo|needs editing}}&amp;lt;/nowiki&amp;gt;||{{Todo|needs editing}}&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;{{Fixme|preliminary information}}&amp;lt;/nowiki&amp;gt;||{{Fixme|preliminary information}}&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;{{Usage|do this and that}}&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;(Use only at the beginning of pages!)||{{Usage|Do this and that}}&lt;br /&gt;
|}&lt;br /&gt;
'''Have fun editing!'''&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&amp;diff=44581</id>
		<title>Problem with unauthorized MiniPCI network card</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&amp;diff=44581"/>
		<updated>2009-10-28T12:31:20Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Problem Description==&lt;br /&gt;
Although the MiniPCI slot is an industry standard and can accept any MiniPCI adapter, the IBM BIOS is set to only allow you to boot with an 'authorized' adapter installed. Attempts to install an unsupported card will result in the following message:&lt;br /&gt;
&lt;br /&gt;
   1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.&lt;br /&gt;
&lt;br /&gt;
This is because the card's sub-vendor PCI-ID (which can be seen using ''lspci -v'') are checked against a [[Wikipedia:Whitelist|whitelist]] in the BIOS.  IBM's reasoning for this is that the combination of MiniPCI card and the integrated antenna in the ThinkPad needs to be certified by the US FCC (Federal Communications Commission).{{footnote|1}} or similar agencies in other countries.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
All machines with integrated WiFi, or machines with WiFi added&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
All - problem is in the BIOS&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
* Workarounds exist for most affected models.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
It may be possible to use the computer with the unauthorized card deactivated (but not removed).  Press {{key|F1}} to enter the BIOS and deactivate the WLAN card, then attempt to boot with the card disabled.  This does not make the wireless card work, but it may allow you to boot the computer normally.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Any of the following solutions should suffice to make the wireless card useable.  You only need to perform one of them.}}&lt;br /&gt;
&lt;br /&gt;
* You may can modify the BIOS whitelist to include the PCI-ID of the card you wish to use.  The complete instructions for this procedure are [http://www.paul.sladen.org/thinkpad-r31/wifi-card-pci-ids.html here].&lt;br /&gt;
{{WARN|It is dangerous to mess with your BIOS, you can easily make your machine unbootable, proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
* A safer and better method than modifying the BIOS is modifying the PCI-ID of the wlan card to match the authorized one(why? 1.you'll risk the wireless card instead of the motherbord 2.future BIOS updates will not create any problem 3.no problem with newer laptops with different BIOS, the only reqirement is to find an ID that is already listed in the BIOS that can be easily acheived if community maintain a compatibility table). The instructions are [http://www.dagarlas.org/stuff/computing/article0001.php here].  This page is for Atheros-based cards and HP notebooks, but it applies to Thinkpads as well. It also has links on how to edit the PCI-ID on Intel Pro Wireless cards. Instruction for intel 2200/2915 cards are [http://stachon.webpark.cz/ipw-eeprom.html here] or [http://www.thinkpad-forum.de/thinkpad-hardware/zubeh%C3%B6r/44192-tutorial-nicht-ibm-wlan-karte-2200-2915-im-thinkpad/ here] (in German). The second one is much simpler because it provides an already patched and compiled ipw2200 driver required to do the job.&lt;br /&gt;
{{NOTE|Modifying your PCI-ID will require either a laptop without a BIOS lock or a PCI adapter for your desktop.  Also, this procedure can render your card useless, but that's better than bricking your laptop.}}&lt;br /&gt;
&lt;br /&gt;
* Another safer method: You can plug the wireless card into the spare WWAN slot (the second miniPCI express slot) with pin-20 taped over. It has been tested on a Thinkpad X61s and a non-IBM (unauthorized) Intel Wifi link 4965agn card, originally it gave a 1802 error, but using this trick it boots up and works without any apparent problem-- it essentially hides the card from the test in the bios, but the WWAN slot still gives the card access to the proper PCI bus, with no need to modify the computer or card. Other combinations reported to work with this method: Thinkpad X61 / Intel 3945abg (bulk). &lt;br /&gt;
&lt;br /&gt;
* You can use the [[Problem with error 01C9 - More than one Ethernet devices | no-1802 and no-01C9 Linux Live CD]] without applying the no-01C9 patch. It is very convenient to use and based on the C code below.&lt;br /&gt;
&lt;br /&gt;
* You can use the DOS [http://jcnp.pku.edu.cn/~shadow/1802/no-1802.com no-1802] utility, written by Tisheng Chen.{{footnote|2}} It will set a certain bit in the CMOS memory which disables the whitelist check, but it has been reported not to work on the latest machines, such as the T43 and X41&lt;br /&gt;
&lt;br /&gt;
* You can compile and run (as root) the following C-code, which was written by Matthew Garrett. It was based on the code written by Vojtech Pavlik, which in turn was based on the assembly used in the no-1802 program. {{footnote|3}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
   int fd;&lt;br /&gt;
   unsigned char data;&lt;br /&gt;
   &lt;br /&gt;
   fd = open(&amp;quot;/dev/nvram&amp;quot;, O_RDWR);&lt;br /&gt;
   if (fd==-1) {&lt;br /&gt;
     printf(&amp;quot;Opening /dev/nvram failed\n&amp;quot;);&lt;br /&gt;
     return 1;&lt;br /&gt;
   }&lt;br /&gt;
   printf(&amp;quot;Disabling WiFi whitelist check.\n&amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
   /* BIG INFORMATIONAL WARNING */ &lt;br /&gt;
   /* The linux nvram driver doesn't give access to the first 14 bytes of&lt;br /&gt;
      the CMOS. As a result, we seek to 0x5c rather than 0x6a. If you're &lt;br /&gt;
      implementing this under another OS, then you'll have to go to whichever&lt;br /&gt;
      address is appropriate for your access method */&lt;br /&gt;
 &lt;br /&gt;
   lseek(fd, 0x5c, SEEK_SET);&lt;br /&gt;
   read(fd, &amp;amp;data, 1);&lt;br /&gt;
   printf(&amp;quot;CMOS address 0x5c: %02x-&amp;gt;&amp;quot;, data);&lt;br /&gt;
   data |= 0x80;&lt;br /&gt;
   printf(&amp;quot;%02x\n&amp;quot;, data);&lt;br /&gt;
   lseek(fd, 0x5c, SEEK_SET);&lt;br /&gt;
   if (write(fd, &amp;amp;data, 1)&amp;lt;0) {&lt;br /&gt;
     printf(&amp;quot;Unable to write to /dev/nvram - hack failed\n&amp;quot;);&lt;br /&gt;
     close(fd);&lt;br /&gt;
     return 2;&lt;br /&gt;
   }&lt;br /&gt;
   close(fd);&lt;br /&gt;
   printf(&amp;quot;Done.\n&amp;quot;);&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
{{NOTE|On the R32, T43, X41, X60, W500 and probably others, the BIOS hacks and the &amp;quot;no-1802&amp;quot; utility don't work.}}&lt;br /&gt;
&lt;br /&gt;
* On the X61s (and probably others), if you tape pin 20 from the card, it works if plugged into the second (WWAN) mini-PCIE-slot.&lt;br /&gt;
&lt;br /&gt;
==Successful BIOS Modifications==&lt;br /&gt;
{{WARN|This table is meant to give users an idea of what models have been successfully modified and how. As stated before, it is dangerous to mess with your BIOS, you can easily make your machine unbootable. Please proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table contains information about ThinkPad models that have been successfully modified to run an unauthorized Mini PCI card. {{footnote|4}} &lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| BIOS Version &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Method &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad 240&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| 1.18&lt;br /&gt;
| Damn Small Linux&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad A31&lt;br /&gt;
| 2652-P3M&lt;br /&gt;
| 1.10 (1NET16WW)&lt;br /&gt;
| Debian GNU/Linux Lenny (2.6.25-2-686)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad G40&lt;br /&gt;
| 2388-2UU&lt;br /&gt;
| 1.21 (2006/2/24; 1TETA6WW)&lt;br /&gt;
| Windows XP Home&lt;br /&gt;
| no-1802 DOS 6.22 floppy&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R31&lt;br /&gt;
| 2656-6FG &lt;br /&gt;
| 3.11 (12-01-2004) &lt;br /&gt;
| Windows XP Boot Disk &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R31&lt;br /&gt;
| 2656-E4U&lt;br /&gt;
| 3.11 (12-01-2004) &lt;br /&gt;
| Windows XP Professional SP2 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R32&lt;br /&gt;
| 2656-EG1 &lt;br /&gt;
| 2.16 (16-06-2006) &lt;br /&gt;
| DOS Boot Disk &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2656-69U &lt;br /&gt;
| ? &lt;br /&gt;
| Windows 2000 Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-F7G &lt;br /&gt;
| n/a&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2200BG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2682&lt;br /&gt;
| ?&lt;br /&gt;
| Debian Etch&lt;br /&gt;
| Matthew Garrett code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2896-J3U &lt;br /&gt;
| 1.24 (10-18-2005) &lt;br /&gt;
| Fedora Core 4 &lt;br /&gt;
| Vojtech Pavlik code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-L7U &lt;br /&gt;
| 1.24 (10-18-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-BDG&lt;br /&gt;
| 1.33&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-DG1&lt;br /&gt;
| 1.26&lt;br /&gt;
| Ubuntu Linux 8.10 2.6.27-9&lt;br /&gt;
| Matthew Garrett code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40e&lt;br /&gt;
| 2684-LKG&lt;br /&gt;
| ?&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-CDG&lt;br /&gt;
| 1.27 (10-06-2006) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-DM2&lt;br /&gt;
| 1.09 (2003) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2723&lt;br /&gt;
| ?&lt;br /&gt;
| Slackware Linux 12&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes  &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-CFM &lt;br /&gt;
| 1.24 (10-17-2005) &lt;br /&gt;
| Gentoo &amp;amp; XP Pro&lt;br /&gt;
| no-1802 utility (boot from USB key to apply)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2724 &lt;br /&gt;
| 1.30 (10-19-2005) &lt;br /&gt;
| FreeBSD 6.1-p1&lt;br /&gt;
| code by Matthew Garrett, compiled and run on bactrack&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2724-3XU &lt;br /&gt;
| 1.33 (06-29-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2682 &lt;br /&gt;
| 1.01 (2003-01-24)&lt;br /&gt;
| Debian GNU/Linux etch (March 2007) &lt;br /&gt;
| Matthew Garret's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-BDG&lt;br /&gt;
| 1.33 (2006/6/29)&lt;br /&gt;
| Lunar Linux (2007/03/04) &lt;br /&gt;
| Matthew Garret's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50&lt;br /&gt;
| 1829-7RG&lt;br /&gt;
| 3.21 (02-06-2006)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50&lt;br /&gt;
| 1830-6FG&lt;br /&gt;
| 3.05a (14-05-2004)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50p&lt;br /&gt;
| 1832-2AG&lt;br /&gt;
| 3.19 (13-10-2005)&lt;br /&gt;
| Ubuntu 5.10 (kernel 2.6.12-10-686)&lt;br /&gt;
| Vojtech Pavlik code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad R51&lt;br /&gt;
| 2887-W2C &lt;br /&gt;
| 1.27 (03-03-2006) &lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility (boot from USB key to apply)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad R52&lt;br /&gt;
| 1849-BMU&lt;br /&gt;
|1.27 (09-20-2006)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility (boot from external USB floppy)&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T23&lt;br /&gt;
| 2647-4MU&lt;br /&gt;
| 1.18 (08-06-2004) &lt;br /&gt;
| Windows XP Pro/SP2&lt;br /&gt;
| no-1802 utility (W98se-bootfloppy)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
|ThinkPad T30&lt;br /&gt;
| 2366-68G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T30&lt;br /&gt;
| 2366-ES1 &lt;br /&gt;
| 2.10  &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;  &lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-97G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-N6G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-N6G &lt;br /&gt;
| 2.10 (26-06-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-81U &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86U &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro SP 2&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86G&lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro SP 2 and Ubuntu 7.10 &amp;quot;Gutsy Gibbon&amp;quot; Intel BG2200&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86M&lt;br /&gt;
| 2.05 (12-06-2003) &lt;br /&gt;
| Mepis 7&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-DU9 &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Suse Linux 10.1 &lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2367-RU1 &lt;br /&gt;
| 2.01 (06-08-2002) &lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30&lt;br /&gt;
| 2366-81M&lt;br /&gt;
| 2.10 (1IET71WW)&lt;br /&gt;
| Debian GNU/Linux Lenny (2.6.24-1-686)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40 &lt;br /&gt;
| 2373-7CU &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-PM1 &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40 &lt;br /&gt;
| 2373-4BG &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-7CU&lt;br /&gt;
| 3.21 (06-02-2006)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-75U&lt;br /&gt;
| 3.21 (09-12-2006)&lt;br /&gt;
| Fedora 6 w Intel 2915ABG&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-82U &lt;br /&gt;
| 3.18 (09-15-2005)&lt;br /&gt;
| Windows XP/ SUSE 10.1&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-8CG &lt;br /&gt;
| 3.05a (2004-05-14)&lt;br /&gt;
| Arch Linux&lt;br /&gt;
| No-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-8CG &lt;br /&gt;
| 3.15 (2005-03-29)&lt;br /&gt;
| Windows XP Pro SP2 w/[http://www.giga-byte.com.tw/Products/Communication/Products_Spec.aspx?ClassValue=Communication&amp;amp;ProductID=985&amp;amp;ProductName=GN-WI01GS Gigabyte GN-WI01GS]&lt;br /&gt;
| No-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-PU7 &lt;br /&gt;
| 3.21 (09-12-2006)&lt;br /&gt;
| Windows XP Professional&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-42G &lt;br /&gt;
| 3.20 (11-05-2006) &lt;br /&gt;
| Windows 2000 Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-8CG &lt;br /&gt;
| 3.20 (11-05-2006) &lt;br /&gt;
| Ubuntu 6.06 LTS w/Intel Pro Lan2200&lt;br /&gt;
| no-1802 Linux Live CD &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-8CU &lt;br /&gt;
| 3.03 (07 Apr 2004) &lt;br /&gt;
| Windows XP&lt;br /&gt;
| no-1802 utility (applied via FreeDos bootable USB stick) &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-DG1 &lt;br /&gt;
| 3.21 (06-02-2006) &lt;br /&gt;
| Ubuntu 6.10 w/Broadcom 4306&lt;br /&gt;
| Matthew Garrett's code &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40p&lt;br /&gt;
| 2373-G1G&lt;br /&gt;
| 3.19 (10-13-2005)&lt;br /&gt;
| Debian GNU/Linux (sid)&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40p&lt;br /&gt;
| 2373-G5G&lt;br /&gt;
| 3.21 (2006-06-02)&lt;br /&gt;
| Windows XP Pro SP2 / Gentoo 2007.0&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-1FG &lt;br /&gt;
| 3.21 (2007-06-18)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-5G1 &lt;br /&gt;
| 2004 &lt;br /&gt;
| Fedora Core 6 w/Intel Pro 2915ABG a/b/g&lt;br /&gt;
| no-1802 Linux Live CD &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T41&lt;br /&gt;
| 2373-9HU&lt;br /&gt;
| n/a&lt;br /&gt;
| Ubuntu 6.10 w/Atheros 5212 a/b/g&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style=&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T41&lt;br /&gt;
| 2373-2FG&lt;br /&gt;
| n/a&lt;br /&gt;
| Windows XP Pro SR2 w/ Intel 2200BG&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style=&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41p&lt;br /&gt;
| 2373-GEG &lt;br /&gt;
| BIOS Build ID: 1RETDOWW(3.20) &lt;br /&gt;
| Gentoo / XP pro SP2&lt;br /&gt;
| Matthew Garrett's code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41p&lt;br /&gt;
| 2374-GGU &lt;br /&gt;
| 3.21 (1RETDPWW) 6/2/2006&lt;br /&gt;
| Slackware / XP pro SP2&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-K32 &lt;br /&gt;
| BIOS Build ID: 1RETDOWW(3.20) &lt;br /&gt;
| CentOS 5.0 w/Atheros 5212 (CM9)&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-6UU&lt;br /&gt;
| Not noted&lt;br /&gt;
| Fedora 7 w/Atheros 5212&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-4TG &lt;br /&gt;
| 3.13 (1RETDHWW) (29-10-2004)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel PRO 2200BG&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-Y8N&lt;br /&gt;
| 1RETDRWW (3.23)&lt;br /&gt;
| openSUSE 11.1 / Intel 2915abg&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42p&lt;br /&gt;
| 2373-HTU &lt;br /&gt;
| 3.23 (1RETDRWW) (06-18-2007)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-K2G &lt;br /&gt;
| 3.17 (07-27-2005)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-M1U&lt;br /&gt;
| 3.13 1RETDHWW (10/29/2004)&lt;br /&gt;
| Fedora 7 w/ Intel PRO 2200BG&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-LM1&lt;br /&gt;
| 3.23 (1RETDRWW) (06-18-2007)&lt;br /&gt;
| Debian Lenny (2.6.21-2-686) w/ Intel PRO 2915ABG&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2378-EXU &lt;br /&gt;
| 3.18 (09-15-2005)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T43&lt;br /&gt;
| 1871-F1G&lt;br /&gt;
| 1.19 (70ET59WW) (2005-09-20)&lt;br /&gt;
| n/a&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X22 &lt;br /&gt;
| 2662-95G&lt;br /&gt;
| 1.32 (2003-06-10)&lt;br /&gt;
| Debian GNU/Linux testing, kernel 2.6.18-3-686&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X24&lt;br /&gt;
| 2662-MPG &lt;br /&gt;
| 1.26 (2002-05-22)&lt;br /&gt;
| Debian GNU/Linux 2.6.18-5&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| AR5212 &lt;br /&gt;
| ?&lt;br /&gt;
| Debian Linux 2.6.18-5&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2672-41j &lt;br /&gt;
| 1.08 (08-09-2005)&lt;br /&gt;
| Gentoo Kernel 2.6.15 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2672-4XU &lt;br /&gt;
| 1.09&lt;br /&gt;
| Win XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2673-EU2 &lt;br /&gt;
| 1.09 &lt;br /&gt;
| Windows XP Pro SP2 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C2G &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.22-rc7&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-PG9 &lt;br /&gt;
| 2.04 (2003-11-10) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.21-2&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2673-C27 &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Ubuntu 5.10 (kernel 2.6.12-9-386) &lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-1UG &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| FreeBSD 6-STABLE&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CEG &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.17-2-686&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CXU &lt;br /&gt;
| 2.04&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-PBU &lt;br /&gt;
| 3.02&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-I5A &lt;br /&gt;
| 3.02&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C8G&lt;br /&gt;
| 3.02&lt;br /&gt;
| Debian (kernel 2.6.16.20-386)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CEG&lt;br /&gt;
| 2.11 (02/13/2004)&lt;br /&gt;
| Debian (kernel 2.6.18-4-686, gcc 4.1.2)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2884-BRU &lt;br /&gt;
| 1.03 (1QET34WW) 2003-04-08&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C2G &lt;br /&gt;
| ?&lt;br /&gt;
| Win XP Pro, w/ Gigabyte GN-WI03N-RN&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-BAU &lt;br /&gt;
| 3.02 (1QET97WW)&lt;br /&gt;
| Windows Vista w/ Broadcom 43XG, Ubuntu 7.10&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X32&lt;br /&gt;
| 2672-58G&lt;br /&gt;
| 3.02&lt;br /&gt;
| Ubuntu 8.04&lt;br /&gt;
| no-1802 CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X40&lt;br /&gt;
| 2371-8EU&lt;br /&gt;
| 1.42 (2004/09/16; 1UET92WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X40&lt;br /&gt;
| 2371-8EU&lt;br /&gt;
| 2.08 (2006/12/25; 1UETD3WW)&lt;br /&gt;
| Windows XP Professional SP3, Ubuntu 8.04&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41&lt;br /&gt;
| 1866-6SU&lt;br /&gt;
| ?&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41 &lt;br /&gt;
| 2525-A2U&lt;br /&gt;
| 2.06 (2006/03/14; 74ET61WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41&lt;br /&gt;
| 2528-ELU&lt;br /&gt;
| 2.06 (2006/03/14; 74ET61WW)&lt;br /&gt;
| Windows XP Pro / OSX 10.4.8 / Ubuntu Edgy&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X60s&lt;br /&gt;
| 1702-3JU&lt;br /&gt;
| ?&lt;br /&gt;
| Debian Testing&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| NO (bricked)&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-LUU&lt;br /&gt;
| 1.27 (2006-06-29; 1OET61WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| jmp1802.cmd&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad W500&lt;br /&gt;
| 4061-A97&lt;br /&gt;
| 1.16 (2008-09-24; 6FET46WW)&lt;br /&gt;
| Ubuntu 8.10&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem with WiFi LED==&lt;br /&gt;
After getting an unauthorized card to work, you may notice that the WiFi LED found on the ThinkPad is not working. This doesn't happen with all unauthorized cards. The general cause for this is the fact that the MiniPCI standard leaves the implementation of the LED signals available on the MiniPCI connector to the card vendors. Therefore some newer WiFi cards use one of the signals originally meant for LEDs to implement the &amp;quot;radio kill&amp;quot; switch input. As a result, the LED doesn't get proper signals and fails.&lt;br /&gt;
&lt;br /&gt;
====Details====&lt;br /&gt;
The WiFi LED found in ThinkPads is connected to following pins on the MiniPCI connector.&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Pin&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Signal&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Description&lt;br /&gt;
|-style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
|11&lt;br /&gt;
|LED1_GRNP&lt;br /&gt;
|WiFi active LED +&lt;br /&gt;
|-style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
|13&lt;br /&gt;
|LED1_GRNN&lt;br /&gt;
|WiFi active LED - (older cards) / RF Silent input (newer cards)&lt;br /&gt;
|}&lt;br /&gt;
Note: The descriptions are specific to this article.&lt;br /&gt;
&lt;br /&gt;
If your LED is not working, the problem could be the pin 13. Newer cards may no longer provide the necessary negative signal there to drive the LED. Before you apply any fixes, be sure to check the voltage between pin 11 and ground (can be found for example on the MiniPCI latch arms) - it should give you about 3.3V while the WiFi is active and 0V otherwise. The voltage between pin 13 and ground should measure about 2.5V. The notebook has to be running while you perform the tests so be extremely careful. All the mentioned pins are on the upper side so it's quite easy to get to them with a multimeter. If all the voltages match, your LED is fixable.&lt;br /&gt;
&lt;br /&gt;
Reference:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://members.datafast.net.au/dft0802/specs/mpci10.pdf MiniPCI Specification] (PDF, 724KB)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.interfacebus.com/MiniPCI_Pinout_124Pin.html MiniPCI Pinout]&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
The solution is to connect the ground (GND) to the pin 13. However, since the new ''RF Silent input'' signal is active low, grounding the card side will tell it to turn itself off. Therefore, we have to separate pin 13 of the card from the system board and connect ground to the system board side only.&lt;br /&gt;
&lt;br /&gt;
There are many ways to accomplish this. One which doesn't require any soldering is to mask pin 13 on the card with a cellophane tape and use about 3cm of thin wire to connect pin 13 of the connector to the ground. Place one end of the wire on the masked pad and insert the card into the slot. Check if the wire is centered on the pad and try pulling it (but not too hard) to see if it holds. If it comes out easily, pull the card out and repeat. If you successfully attach it, you have to connect the other end to the ground. The best place is the left MiniPCI latch arm. Bend it outside and insert the wire into the small gap between the two pieces of metal the arm is made from. Finally, make sure that the wire doesn't touch anything else and doesn't stand out too much, it must not touch the touchpad electronics when you put the palmrest back on. If in doubt, cover the wire with some insulator.&lt;br /&gt;
&lt;br /&gt;
{{WARN|Do this fix ONLY if you know exactly what you are doing and at your own risk! If you're not sure about any part, don't even try it or you may damage your WiFi card and/or brick your laptop. You have been warned.}}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|If your card is not listed in the table below, your WiFi LED may not work for some other reason. Therefore, make sure you understood the problem described here and made all the measurements carefully. This way you will know if this apply to your card and if it can be fixed this way. Otherwise, if you're skilled enough, please try to find out why your LED doesn't work and contribute to this article.}}&lt;br /&gt;
&lt;br /&gt;
====Successful WiFi LED fixes====&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Model&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| WiFi card&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Comments&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|T41&lt;br /&gt;
|2374-312&lt;br /&gt;
|Intel&amp;amp;nbsp;PRO/Wireless&amp;amp;nbsp;2915ABG,&lt;br /&gt;
Spares No: 373830-001&lt;br /&gt;
|Windows&amp;amp;nbsp;XP&amp;amp;nbsp;SP2,&lt;br /&gt;
Ubuntu&amp;amp;nbsp;7.10&lt;br /&gt;
|style =&amp;quot;color:green;font-weight:bold;&amp;quot;|Yes&lt;br /&gt;
|The WiFi card seems to be a HP one (tip: google for spares no.). Not sure thou - received it with an already changed PCI-ID.&lt;br /&gt;
|-  style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|X31&lt;br /&gt;
|2672-PG9&lt;br /&gt;
|Intel&amp;amp;nbsp;PRO/Wireless&amp;amp;nbsp;2915ABG, Broadcom BCM4306&lt;br /&gt;
|Debian Sid&lt;br /&gt;
|style =&amp;quot;color:green;font-weight:bold;&amp;quot;|Yes&lt;br /&gt;
|Both cards are non-IBM ones, BIOS was patched. ipw2200 needed the {{bootparm|led|1}} option to be enabled while loading the module.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
* Additional Information about &amp;quot;Unauthorised&amp;quot; MiniPCI adapters can be found on [http://www.srcf.ucam.org/~mjg59/thinkpad/wireless.html Matthew Garrett's website].&lt;br /&gt;
&lt;br /&gt;
* Thinkpad Mini PCI Wireless [http://www.srcf.ucam.org/~mjg59/thinkpad/tables.html compatibility matrix].&lt;br /&gt;
&lt;br /&gt;
* Bootable &amp;quot;no-1802&amp;quot; [http://www.command-tab.com/2006/02/26/unauthorized-wireless-cards/ CD and floppy image]&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#This is explained in a [http://lkml.org/lkml/2003/6/3/162 message to the LKML] and subsequently [http://lkml.org/lkml/2003/6/9/50 clarified].&lt;br /&gt;
#The no-1802 tool was announced and explained in a [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2004-June/018253.html message to the Linux-Thinkpad ML].&lt;br /&gt;
#Vojtech Pavlik's C-code was originally posted in a [http://lkml.org/lkml/2004/6/13/69 message to the LKML]. It was based on the assembly used in the no-1802 program. Matthew Garrett [http://www.srcf.ucam.org/~mjg59/thinkpad/hacks.html rewrote] the code to provide more error checking.&lt;br /&gt;
#This information has been added by users. Please feel free to add systems if you have had personal success or failure.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ThinkPad_series&amp;diff=44379</id>
		<title>ThinkPad series</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ThinkPad_series&amp;diff=44379"/>
		<updated>2009-09-15T23:50:13Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Current Series=&lt;br /&gt;
==ThinkPad R series==&lt;br /&gt;
Dropping the [[#ThinkPad A series|A series]], IBM introduced a mainstream budget line of ThinkPads in the R series. The RXXe series lacks some of &amp;quot;normal&amp;quot; RXX series features like stereo speakers, touchpad, hot-swappable CD/DVD drive, docking connector and some other things. They also usually feature slower CPU like Intel Celeron (but in newer models also slower Intel Core processors). ACPI functions in modern RXX-e models are just as well supported in Linux as they are for the regular RXX models.&lt;br /&gt;
&lt;br /&gt;
Starting from R61, the R series ThinkPads feature the same chassis (including RollCage) as the [[#ThinkPad T series|T series]] making them virtually indistinguishable from each other.&lt;br /&gt;
&lt;br /&gt;
==ThinkPad T series==&lt;br /&gt;
As successor of the [[#ThinkPad 600 series|600 series]], the T series became IBM mobile productivity line. Usually leading the ThinkPad range in technology, innovation and price, the T series was intended for the travelling businessman - comparatively more stylish, functional, and rugged machines; and easy to disassemble for repair or upgrades. T series ThinkPads are clad in black non-slip rubber with embedded glitter. The case lid has tabs along the edge that interlocks with depressions in the lower case when closed, to reduce case flexing. &lt;br /&gt;
&lt;br /&gt;
===ThinkPad T2x series===&lt;br /&gt;
The ThinkPad T2x models ([[:Category:T20|T20]], [[:Category:T21|T21]], [[:Category:T22|T22]], [[:Category:T23|T23]]) were [[Intel Mobile Pentium III-M]] based, sub-5 lb (2.3 kg) class machines.  These machines typically had 14.1 inch XGA screens, S3 Savage graphics chips and Cirrus Logic sound chips. The T2x series introduced the [[UltraBay|UltraBay 2000]] optical drive bay and titanium-reinforced screen lids. With the [[:Category:T23|T23]], an internal WiFi antenna became available, so WiFi miniPCI cards could be used. Also the [[:Category:T23|T23]] was the first ThinkPad featuring an [[UltraBay|UltraBay Plus]] drive and [[Embedded Security Subsystem]].&lt;br /&gt;
&lt;br /&gt;
===ThinkPad T3x series===&lt;br /&gt;
The T3x series only saw one model, the [[:Category:T30|T30]]. Powered by a [[Intel Mobile Pentium 4-M]] and a Radeon 7500 graphics chip with 16&amp;amp;nbsp;MB of discrete video memory, the T30 was available with 14.1 inch XGA or SXGA screens. The [[:Category:T30|T30]] introduced the [[UltraNav]] touchpad and integrated Bluetooth among ThinkPads. Other features include the [[Embedded Security Subsystem]], [[UltraBay|Ultrabay Plus]] drive, integrated Wireless LAN. The shell is titanium reinforced composite. The whole package was a bit heavier and thicker than both the T2x and the T4x series.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad T4x series===&lt;br /&gt;
Includes the [[:Category:T40|T40]], [[:Category:T41|T41]], [[:Category:T42|T42]], [[:Category:T43|T43]], and associated &amp;quot;p&amp;quot; series (for &amp;quot;performance&amp;quot;; e.g., [[:Category:T43p|T43p]]). A typical T4x weighs 2.2 kg (4.9 lb), slightly less than the [[#ThinkPad 600 series|600 series]], and features an [[Intel Pentium M (Dothan)]] Processor, a 14.1 or 15 inch LCD (XGA or SXGA+), an integrated GPU ([[Intel Graphics Media Accelerator 900]]) or a discrete GPU ([[ATI Mobility Radeon 7500]], [[ATI Mobility Radeon 9000|9000]], [[ATI Mobility Radeon X300|X300]], [[ATI Mobility FireGL 9000]], FireGL 9600, [[ATI Mobility FireGL T2| FireGL T2]] and [[ATI Mobility FireGL V3200|FireGL V3200]]), and a hard drive ranging in size from 30 to 100 GB with the [[Active Protection System]] to protect the hard drive ([[:Category:T41|T41]] and later models).  &amp;quot;p&amp;quot; (mobile workstation) models are also available with a 14&amp;quot; SXGA+ or a 15 inch UXGA FlexView display with wide viewing angle and high density IPS technology with resolutions up to 1600x1200. These 15 inch display models weigh slightly more than their lesser brethren, with optical drive and battery, at 2.7 kg (5.9 lb).  Some [[:Category:T42|T42]] and [[:Category:T43|T43]] models feature a biometric security system with [[Integrated Fingerprint Reader]].&lt;br /&gt;
&lt;br /&gt;
===ThinkPad T6x series===&lt;br /&gt;
ThinkPad [[:Category:T60|T60]] contained the [[Intel Core Duo (Yonah)]].  It was paired with either a [[ATI Mobility Radeon X1300]] or [[ATI Mobility Radeon X1400|x1400]] or with an [[ATI Mobility FireGL V5200]] for the performance model. The [[:Category:T60|T60]] was also the first of its kind to support Wireless Wide Area Network (WWAN) out of the box if the option was selected.&lt;br /&gt;
&lt;br /&gt;
The ThinkPad [[:Category:T60|T60]] refresh contained the [[Intel Core 2 Duo (Merom)]]. It gave a processing speed of up to twenty five percent faster than the [[Intel Core Duo (Yonah)|Yonah]] and introduced EM64T into the mobile realm. It was paired with either a [[ATI Mobility Radeon X1300]] or [[ATI Mobility Radeon X1400|x1400]] or with an [[ATI Mobility FireGL V5250]] for the performance model.&lt;br /&gt;
&lt;br /&gt;
ThinkPad [[:Category:T61|T61]] features the Santa Rosa chipset, in addition to the existing [[Intel Core 2 Duo (Merom)]]. The designers found it prudent to move from an ATI based Mobility Radeon to NVIDIA's Quadro NVS series discrete video processors. The move also marked a more aggressive shift to the wide screen format. Introductory [[:Category:T61|T61]] models only shipped with a wide screen. In addition, the designers added a Roll Cage for the screen to decrease the likelihood of damage in the event of a fall. Finally fan blades were overhauled to decrease fan noise and temperature.&lt;br /&gt;
&lt;br /&gt;
==ThinkPad X series==&lt;br /&gt;
===ThinkPad X2x series===&lt;br /&gt;
[[Intel Mobile Pentium III]] with [[ATI Rage Mobility M]] ([[:Category:X20|X20]], [[:Category:X21|X21]]) or [[Intel Mobile Pentium III-M]] with [[ATI Mobility Radeon 7000]] ([[:Category:X22|X22]], [[:Category:X23|X23]], [[:Category:X24|X24]]), sub-4 lb machines. Contained processors ranging from [[Intel Mobile Pentium III|MPIII]] 500&amp;amp;nbsp;MHz to [[Intel Mobile Pentium III-M|PIII-M]] 1+&amp;amp;nbsp;GHz. 12.1 inch XGA screens.  Used miniPCI form factor cards, which supports modem and/or ethernet. With the [[:Category:X22|X22]] and later machines, provisions for wireless networking support are built into the chassis.  [[UltraBay|UltraBay 2000]] optical drive support can be fitted via the [[UltraBase X2]] portable docking station option, and extended batteries can give the series a 5 hour running time.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad X3x series===&lt;br /&gt;
[[Intel Mobile Pentium III-M]] with [[Intel Graphics Technology]] ([[:Category:X30|X30]]) or [[Intel Pentium M (Banias)]]/[[Intel Pentium M (Dothan)|(Dothan)]] with [[ATI Mobility Radeon 7000]] ([[:Category:X31|X31]], [[:Category:X32|X32]]), 12.1 inch XGA screens, [[IrDA]], FireWire, Compact Flash card slot. No built-in optical drive. Like the X2x series [[UltraBay|UltraBay Plus]] optical drive support can be fitted via the [[UltraBase X3]] portable docking station option. As the [[UltraBase X3]] can take the same battery as the notebook, the running time can be increased to amazing 10 hours.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad X4x Series===&lt;br /&gt;
A continuation of the lightweight X series. Weighing in at 1.2 kg (2.7 lb), the lightest [[:Category:X41|X41]] is 25% lighter than its predecessor, the [[:Category:X31|X31]]. Part of the X4x series, the [[:Category:X41 Tablet|X41 Tablet]] is the first Tablet PC (convertible) ThinkPad. They also get [[UltraBay|UltraBay Slim]] optical drive support via the [[UltraBase X4]] portable docking station option, but it is not compatible with the [[:Category:X41 Tablet|X41 Tablet]].&lt;br /&gt;
&lt;br /&gt;
===ThinkPad X6x Series===&lt;br /&gt;
Starting in 2006, the first models in X6x series were [[:Category:X60|X60]], lighter and smaller [[:Category:X60s|X60s]] and  [[:Category:X60 Tablet|X60 Tablet]] (the two with slower CPU). These models featured [[:Intel_Core_Duo_(Yonah)|Intel Core]] CPUs, later Core 2.&lt;br /&gt;
&lt;br /&gt;
Later, [[:Category:X61|X61]], [[:Category:X61s|X61s]] and [[:Category:X61 Tablet|X61 Tablet]] appeared. These ThinkPads are now migrated to the new Santa Rosa chipset, in addition to the existing [[:Intel_Core_2_Duo_(Merom)|Intel Core 2 (Merom)]] platform and has some design improvements. The X61 features full-blown Core 2 Duo processors, X61s and X61 Tablet can be configured only with low-voltage variants. In many benchmarks, the X61 proved, that it can be as fast as ThinkPad [[:Category:T61|T61]] with same configuration.&lt;br /&gt;
&lt;br /&gt;
Unlike T61 and [[:Category:R61|R61]], the X61 series aren't available with widescreen display option.&lt;br /&gt;
&lt;br /&gt;
X6x series ThinkPads fit in the [[UltraBase X6]], while X6x Tablets fit in [[X6 Tablet UltraBase]] docking stations.&lt;br /&gt;
&lt;br /&gt;
=Withdrawn Series=&lt;br /&gt;
==ThinkPad 200 series==&lt;br /&gt;
The 200 series ([[:Category:220|220]], [[:Category:230|230]], [[:Category:235|235]], [[:Category:240|240]] and their various sub series) was a subnotebook series. This means they were extremely small and light crossovers between notebooks and PDAs. The series ended with the [[:Category:240X|240X]]. With the changing from the numeric to the alphanumeric naming scheme in 2000, IBM stopped developing subnotebook class ThinkPads. Only in the Asia-Pacific only [[#ThinkPad S series|S series]] did in find a rather short revival.&lt;br /&gt;
&lt;br /&gt;
==ThinkPad 300 series==&lt;br /&gt;
The 300 series ([[:Category:300|300]], [[:Category:310|310]], [[:Category:350|350]], [[:Category:360|360]], [[:Category:365E|365E]], [[:Category:380|380]], [[:Category:385ED|385ED]], [[:Category:390|390]] and their various sub series) was a long running value series starting at the [[Intel 386|Intel 386SL-33]] going all the way to the [[Intel Mobile Pentium III]].  The ThinkPad 300 was also produced for IBM by Zenith Data Systems.  They were a bit large and slower than the more full featured models but offered a less expensive ThinkPad. The successor of this series is the [[#ThinkPad R series|R series]].&lt;br /&gt;
&lt;br /&gt;
==ThinkPad 500 series==&lt;br /&gt;
The 500 series ([[:Category:500|500]], [[:Category:510Cs|510Cs]], [[:Category:560|560]], [[:Category:570|570]] and their various sub series) were the main line of the ultraportable ThinkPads.  Starting with the [[IBM 486|IBM 486BL-25 Blue Lightening]] to the [[Intel Mobile Pentium III]], these machines had only a hard disk onboard.  Any other drives were either external or available in the respective [[Docking Solutions]]. The successor of the 500 series is the [[#ThinkPad X series|X series]].&lt;br /&gt;
&lt;br /&gt;
==ThinkPad 600 series==&lt;br /&gt;
The 600 series ([[:Category:600|600]], [[:Category:600D|600D]], [[:Category:600E|600E]] and [[:Category:600X|600X]]) are the direct predecessors of the [[#ThinkPad T series|T series]], and are legendary for their portability and sturdy construction. Most 600 series models packed a 13.3 inch LCD, [[Intel Mobile Pentium II]] or [[Intel Mobile Pentium III]] processor and full sized keyboard into a package weighing roughly 2.3 kg (5 lb). The [[UltraBay|UltraSlimBay]] was introduced with the 600 series. IBM was able to create this light, fully featured machine by using lightweight but strong carbon fibre composite plastics.&lt;br /&gt;
&lt;br /&gt;
==ThinkPad 700 series==&lt;br /&gt;
The 700 series ([[:Category:700|700]], [[:Category:701C|701C]], [[:Category:730T|730T]], [[:Category:750|750]], [[:Category:755C|755C]], [[:Category:760E|760E]], [[:Category:765D|765D]], [[:Category:770|770]] and their various sub series) were the cutting edge Intel-based ThinkPads.  They featured the best screens, largest hard drives and fastest processors available at the time.&lt;br /&gt;
&lt;br /&gt;
==ThinkPad 800 series==&lt;br /&gt;
The PowerPC ThinkPad series, (800, [[:Category:820|820]], 821, 822, 823, [[:Category:850|850]], 851, [[:Category:860|860]]) were unique in that they ran on the PowerPC architecture, and not the x86 architecture.  They all used the [[IBM PowerPC 603|IBM PowerPC 603e]] CPU.  The 800 may have used a 603, and it is unclear if the 800 was experimental or not.  All units used SCSI 2 instead of IDE.  The units are believed to have all been extremely expensive, as the [[:Category:850|850]] cost upwards of $12,000 USD.  The 800 series can run Windows NT 3.5 (probably 4.0 as well), OS/2, AIX 4.14, Solaris Desktop 2.5.1 PowerPC Edition and Linux.&lt;br /&gt;
&lt;br /&gt;
==ThinkPad Transnote==&lt;br /&gt;
The IBM [[:Category:TransNote|TransNote]] was a pen based PC in a notebook.  Data could not only be entered through keyboard, TrackPoint and TouchScreen, but also through a unique paper notepad with integrated digitizer which was produced in cooperation with Cross AT.  This ThinkPad expanded on IBM's previous pen based notebooks ([[:Category:360P|360P]](E), [[:Category:730T|730T]](E), and 755(P).&lt;br /&gt;
&lt;br /&gt;
==ThinkPad A series==&lt;br /&gt;
The A series was developed as an allround productivity machine, equipped with hardware powerful enough to make it a desktop replacement. Hence it was the biggest and heaviest ThinkPad series at its time, but also had features not even found in a [[#ThinkPad T series|T series]] of the same age. The A series was dropped in favour of the [[#ThinkPad G series|G series]] and [[#ThinkPad R series|R series]].&lt;br /&gt;
&lt;br /&gt;
==ThinkPad G series==&lt;br /&gt;
The G series consists of only two models so far, the [[:Category:G40|G40]] and [[:Category:G41|G41]]. Being large and heavy machines, equipped with powerful desktop processors, this line of ThinkPads is consequently specialised in serving as a desktop replacement.&lt;br /&gt;
&lt;br /&gt;
==ThinkPad i series==&lt;br /&gt;
The i series introduced the [[ThinkLight]] and were also the first notebooks equipped with Wireless LAN.&lt;br /&gt;
&lt;br /&gt;
==ThinkPad S series==&lt;br /&gt;
A subnotebook series consisting of only two models: the [[:Category:S30|S30]] and [[:Category:S31|S31]].&lt;br /&gt;
[[Category:Models]]&lt;br /&gt;
&lt;br /&gt;
==ThinkPad Z series==&lt;br /&gt;
The widescreen ThinkPad build to offer the ultimate multimedia experience. Internal similar to the [[#ThinkPad T series|T series]], but they have a widescreen and are available with a Titanium Special Edition Cover on selected models. This was the first ThinkPad series completely developed by Lenovo. This series was discontinued as the [[#ThinkPad T series|T series]] are available with widescreen displays.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad Z60x Series===&lt;br /&gt;
The first widescreen ThinkPads, internal similar to the T4x series, but they are available with 14&amp;quot; ([[:Category:Z60t|Z60t]]) or 15.4&amp;quot; ([[:Category:Z60m|Z60m]]) widescreens (some with optional MaxBright-technology). Travel weight starting at 4.1 lb and they are less than 1.1&amp;quot; thin. They are the first ThinkPads completely developed by Lenovo.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad Z61x Series===&lt;br /&gt;
Second generation Z series, upgraded to the internal technology level of the T60 series ThinkPads.&lt;br /&gt;
&lt;br /&gt;
=Adding a new series=&lt;br /&gt;
&lt;br /&gt;
Please refer to [[Adding a new ThinkPad series or category to ThinkWiki]] for instructions on how to add a new ThinkPad series to ThinkWiki.&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Mini-PCI_Modem_card&amp;diff=34959</id>
		<title>Mini-PCI Modem card</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Mini-PCI_Modem_card&amp;diff=34959"/>
		<updated>2007-12-02T06:40:48Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: /* IBM Partnumbers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== Mini-PCI Modem card ===&lt;br /&gt;
This is a [[MiniPCI slot|Mini-PCI]] [[Modem Devices|Modem Adapter]] that is installed in a Mini-PCI slot.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: Ambit (formerly Lucent Microelectronics) [[Wikipedia:Softmodem|Softmodem]]&lt;br /&gt;
* PCI ID: 11c1:0449&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IBM Part numbers ===&lt;br /&gt;
IBM FRU PN: 08K3251, 08K3252, 08K3338, 08K3383, 08K3429, 08K4852, 08K4853, 08K4855, 91P7659&amp;lt;br&amp;gt;&lt;br /&gt;
IBM FRU PN (390X): 10L1296&amp;lt;br&amp;gt;&lt;br /&gt;
IBM FRU PN (570/E): 08K3412&lt;br /&gt;
&lt;br /&gt;
=== Also known (in IBM literature) as.... ===&lt;br /&gt;
* Mini PCI modem card (Ambit)&lt;br /&gt;
* Mini PCI modem card (IBM CR)&lt;br /&gt;
* Mini PCI modem card (M2) (IBM)&lt;br /&gt;
* modem card Ambit&lt;br /&gt;
* Mini PCI modem&lt;br /&gt;
&lt;br /&gt;
=== Linux driver ===&lt;br /&gt;
The Linux driver from [http://www.smlink.com/ SmartLink] may work.&amp;lt;br&amp;gt;&lt;br /&gt;
Latest version of this driver is 2.9.10 and supports both the 2.4 and 2.6 kernels.&lt;br /&gt;
&lt;br /&gt;
Otherwise try using the slightly dated [http://www.heby.de/ltmodem/ ltmodem driver for Linux].&amp;lt;br&amp;gt;&lt;br /&gt;
The latest version of this driver is 8.31a and supports the 2.4 kernels.&lt;br /&gt;
alk@tut.by has prepared a version of the driver for 2.6 kernels.&lt;br /&gt;
&lt;br /&gt;
Lastly, IBM supplies an outdated version (5.95) of the ltmodem driver, with only kernel 2.2 support [http://www-3.ibm.com/pc/support/site.wss/MIGR-4VFTT3.html here].&lt;br /&gt;
&lt;br /&gt;
The Fax is supported by hylafax only, as mgetty-fax requires a class 2 modem, which this one isn't.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this card may be found in ===&lt;br /&gt;
* {{390E}}, {{390X}}, {{570}}, {{570E}}, {{600X}}&lt;br /&gt;
* {{A20m}}, {{A20p}}, {{A21e}}, {{A21m}}, {{A21p}}, {{A22e}}, {{A22m}}, {{A22p}}&lt;br /&gt;
* {{T20}}, {{T21}}, {{T22}}, {{T23}}&lt;br /&gt;
* {{X20}}, {{X21}}, {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
* {{TransNote}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=TrackPoint&amp;diff=34958</id>
		<title>TrackPoint</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=TrackPoint&amp;diff=34958"/>
		<updated>2007-12-02T06:39:19Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: updated links&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;&amp;quot; | [[Image:Trackpoint.jpg|IBM TrackPoint]] __NOTOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== IBM TrackPoint ===&lt;br /&gt;
The TrackPoint is IBMs name for the stick that sits between the g, h and b keys of the keyboard. It is used as a pointing device and hence as an alternative to an external mouse or a touchpad. What sets it apart from devices found in notebooks of other manufacturers is that it has no moving parts. It works using a solid state strain gauge. Its tap-to-click feature, which means that you can tap the stick to do a left click instead of using the left mouse button, is also handy.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
The TrackPoint uses the PS/2 interface so it is supported by the standard psaux mouse input driver included in the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;IMPS/2&amp;quot; driver of the X server is incompatible with most TrackPoints. You'll have to use &amp;quot;PS/2&amp;quot; in the protocol option of your input section if your mouse pointer always jumps to the lower left corner of the screen. This seems to be solved with the T4x generation of ThinkPads.&lt;br /&gt;
&lt;br /&gt;
However, to make use of advanced features like configuring sensitivity or enabling &amp;quot;tap-to-click&amp;quot; there are different solutions available depending on the kernel you are using.&lt;br /&gt;
* For 2.4 type kernels it is recommended to use the [http://www.slac.stanford.edu/~strauman/pers/tp4utils/ Linux Trackpoint utilities].&lt;br /&gt;
* 2.6.14rc1 and newer has TrackPoint support as part of the regular PS/2 Mouse support&lt;br /&gt;
* For older 2.6 kernels, you can get the [[Patch to enable advanced trackpoint configuration]].&lt;br /&gt;
&lt;br /&gt;
If you are using GNOME with the 2.6 kernel TrackPoint support, you might want to use [http://tpctl.sourceforge.net/configure-trackpoint.html configure-trackpoint] as a graphical frontend to it.&lt;br /&gt;
&lt;br /&gt;
*Have a look at [[How to configure the TrackPoint]].&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
'''TrackPoint'''&lt;br /&gt;
*ThinkPad {{220}} &amp;lt;tt&amp;gt;(if that's what the original trackpoint is)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TrackPoint II'''&lt;br /&gt;
*{{350}}, {{350C}}, {{355}}, {{355Cs}}, {{355C}}&lt;br /&gt;
*{{360}}, {{360Cs}}, {{360C}}, {{360P}}, {{360CSE}}, {{360CE}}, {{360PE}}&lt;br /&gt;
*{{370C}}&lt;br /&gt;
*{{500}}, {{510Cs}}&lt;br /&gt;
*{{555BJ}}&lt;br /&gt;
*{{720}}, {{720C}}&lt;br /&gt;
*{{700}}, {{700C}}&lt;br /&gt;
*{{750}}, {{750Cs}}, {{750C}}, {{750P}}&lt;br /&gt;
*{{755Cs}}, {{755C}}&lt;br /&gt;
'''TrackPoint III'''&lt;br /&gt;
*{{310}}, {{310D}}, {{310E}}, {{310ED}}&lt;br /&gt;
*{{345CS}}, {{345C}}&lt;br /&gt;
*{{365CS}}, {{365C}}, {{365CSD}}, {{365CD}}, {{365E}}, {{365ED}}, {{365X}}, {{365XD}}&lt;br /&gt;
*{{380}}, {{380D}}, {{380E}}, {{380ED}}, {{380XD}}, {{385D}}, {{385ED}}, {{385XD}}&lt;br /&gt;
*{{535}}, {{535E}}, {{535X}}&lt;br /&gt;
*{{560}}, {{560E}}, {{560X}}&lt;br /&gt;
*{{701C}}, {{701CS}}&lt;br /&gt;
*{{755CSE}}, {{755CE}}, {{755CX}}, {{755CV}}, {{755CD}}, {{755CDV}}&lt;br /&gt;
*{{760L}}, {{760LD}}, {{760C}}, {{760CD}}, {{760EL}}, {{760ELD}}, {{760E}}, {{760ED}}, {{760XL}}, {{760XD}}, {{765L}}, {{765D}}&lt;br /&gt;
*{{820}}, {{850}}, {{860}}&lt;br /&gt;
'''TrackPoint IV'''&lt;br /&gt;
*{{240}}, {{240X}}&lt;br /&gt;
*{{380Z}}, {{390}}, {{390E}}, {{390X}}&lt;br /&gt;
*{{560Z}}, {{570}}, {{570E}}&lt;br /&gt;
*{{600}}, {{600E}}, {{600X}}&lt;br /&gt;
*{{770}}, {{770E}}, {{770ED}}, {{770X}}, {{770Z}}&lt;br /&gt;
*{{I Series}}&lt;br /&gt;
*{{A Series}}&lt;br /&gt;
*{{G Series}}&lt;br /&gt;
*{{R Series}}&lt;br /&gt;
*{{S30}}, {{S31}}&lt;br /&gt;
*{{T Series}}&lt;br /&gt;
*{{X Series}}&lt;br /&gt;
*{{Z Series}}&lt;br /&gt;
*{{TransNote}}&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://web.archive.org/web/20061010223935/http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51536 IBM's page on configuring the third TrackPoint button under Linux]  (Note -- link was dead on 2 Dec 2007, replaced with Wayback link)&lt;br /&gt;
&lt;br /&gt;
*[http://freshmeat.net/projects/tp-scroll/?topic_id=146 Thinkpad Scroll Daemon] Use the middle mouse button on a Trackpoint keyboard for scrolling in Linux. &lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]] [[Category:Components]]&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=TrackPoint&amp;diff=34957</id>
		<title>TrackPoint</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=TrackPoint&amp;diff=34957"/>
		<updated>2007-12-02T06:24:17Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: /* External Sources */&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;&amp;quot; | [[Image:Trackpoint.jpg|IBM TrackPoint]] __NOTOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== IBM TrackPoint ===&lt;br /&gt;
The TrackPoint is IBMs name for the stick that sits between the g, h and b keys of the keyboard. It is used as a pointing device and hence as an alternative to an external mouse or a touchpad. What sets it apart from devices found in notebooks of other manufacturers is that it has no moving parts. It works using a solid state strain gauge. Its tap-to-click feature, which means that you can tap the stick to do a left click instead of using the left mouse button, is also handy.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
The TrackPoint uses the PS/2 interface so it is supported by the standard psaux mouse input driver included in the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;IMPS/2&amp;quot; driver of the X server is incompatible with most TrackPoints. You'll have to use &amp;quot;PS/2&amp;quot; in the protocol option of your input section if your mouse pointer always jumps to the lower left corner of the screen. This seems to be solved with the T4x generation of ThinkPads.&lt;br /&gt;
&lt;br /&gt;
However, to make use of advanced features like configuring sensitivity or enabling &amp;quot;tap-to-click&amp;quot; there are different solutions available depending on the kernel you are using.&lt;br /&gt;
* For 2.4 type kernels it is recommended to use the [http://www.slac.stanford.edu/~strauman/pers/tp4utils/ Linux Trackpoint utilities].&lt;br /&gt;
* 2.6.14rc1 and newer has TrackPoint support as part of the regular PS/2 Mouse support&lt;br /&gt;
* For older 2.6 kernels, you can get the [[Patch to enable advanced trackpoint configuration]].&lt;br /&gt;
&lt;br /&gt;
If you are using GNOME with the 2.6 kernel TrackPoint support, you might want to use [http://tpctl.sourceforge.net/configure-trackpoint.html configure-trackpoint] as a graphical frontend to it.&lt;br /&gt;
&lt;br /&gt;
*Have a look at [[How to configure the TrackPoint]].&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
'''TrackPoint'''&lt;br /&gt;
*ThinkPad {{220}} &amp;lt;tt&amp;gt;(if that's what the original trackpoint is)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TrackPoint II'''&lt;br /&gt;
*{{350}}, {{350C}}, {{355}}, {{355Cs}}, {{355C}}&lt;br /&gt;
*{{360}}, {{360Cs}}, {{360C}}, {{360P}}, {{360CSE}}, {{360CE}}, {{360PE}}&lt;br /&gt;
*{{370C}}&lt;br /&gt;
*{{500}}, {{510Cs}}&lt;br /&gt;
*{{555BJ}}&lt;br /&gt;
*{{720}}, {{720C}}&lt;br /&gt;
*{{700}}, {{700C}}&lt;br /&gt;
*{{750}}, {{750Cs}}, {{750C}}, {{750P}}&lt;br /&gt;
*{{755Cs}}, {{755C}}&lt;br /&gt;
'''TrackPoint III'''&lt;br /&gt;
*{{310}}, {{310D}}, {{310E}}, {{310ED}}&lt;br /&gt;
*{{345CS}}, {{345C}}&lt;br /&gt;
*{{365CS}}, {{365C}}, {{365CSD}}, {{365CD}}, {{365E}}, {{365ED}}, {{365X}}, {{365XD}}&lt;br /&gt;
*{{380}}, {{380D}}, {{380E}}, {{380ED}}, {{380XD}}, {{385D}}, {{385ED}}, {{385XD}}&lt;br /&gt;
*{{535}}, {{535E}}, {{535X}}&lt;br /&gt;
*{{560}}, {{560E}}, {{560X}}&lt;br /&gt;
*{{701C}}, {{701CS}}&lt;br /&gt;
*{{755CSE}}, {{755CE}}, {{755CX}}, {{755CV}}, {{755CD}}, {{755CDV}}&lt;br /&gt;
*{{760L}}, {{760LD}}, {{760C}}, {{760CD}}, {{760EL}}, {{760ELD}}, {{760E}}, {{760ED}}, {{760XL}}, {{760XD}}, {{765L}}, {{765D}}&lt;br /&gt;
*{{820}}, {{850}}, {{860}}&lt;br /&gt;
'''TrackPoint IV'''&lt;br /&gt;
*{{240}}, {{240X}}&lt;br /&gt;
*{{380Z}}, {{390}}, {{390E}}, {{390X}}&lt;br /&gt;
*{{560Z}}, {{570}}, {{570E}}&lt;br /&gt;
*{{600}}, {{600E}}, {{600X}}&lt;br /&gt;
*{{770}}, {{770E}}, {{770ED}}, {{770X}}, {{770Z}}&lt;br /&gt;
*{{I Series}}&lt;br /&gt;
*{{A Series}}&lt;br /&gt;
*{{G Series}}&lt;br /&gt;
*{{R Series}}&lt;br /&gt;
*{{S30}}, {{S31}}&lt;br /&gt;
*{{T Series}}&lt;br /&gt;
*{{X Series}}&lt;br /&gt;
*{{Z Series}}&lt;br /&gt;
*{{TransNote}}&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51536 IBM's page on configuring the third TrackPoint button under Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]] [[Category:Components]]&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34956</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34956"/>
		<updated>2007-12-02T06:19:06Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power hungry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed ''enable'' them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power hungry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hpet=force&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to your kernel boot options (usualy in /boot/grub/menu.lst or lilo.conf). &lt;br /&gt;
Note that &amp;quot;hpet=force&amp;quot; is only available by default in 2.6.24-rc2 and above &lt;br /&gt;
(or as a separated patch for 2.6.22 and 2.6.23, see below).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totally avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same for PCMCIA/Cardbus. Some users experiences interrupts clouds (sometime up to &lt;br /&gt;
several thousands interrupts/second) causing CPU wakeups, thus totally preventing &lt;br /&gt;
the CPU to reach lower C-states. &lt;br /&gt;
If you don't use PCMCIA, you may disable it the same way (unloading seems insufficient&lt;br /&gt;
to restore the system properly, you have to boot without it):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist pcmcia&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
 echo &amp;quot;blacklist yenta_socket&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34955</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34955"/>
		<updated>2007-12-02T06:15:25Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power hungry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed ''enable'' them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power hungry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hpet=force&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to your kernel boot options (usualy in /boot/grub/menu.lst or lilo.conf). &lt;br /&gt;
Note that &amp;quot;hpet=force&amp;quot; is only available by default in 2.6.24-rc2 and above &lt;br /&gt;
(or as a separated patch for 2.6.22 and 2.6.23, see below).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same for PCMCIA/Cardbus. Some users experiences interrupts clouds (sometime up to &lt;br /&gt;
several thousands interrupts/second) causing CPU wakeups, thus totally preventing &lt;br /&gt;
the CPU to reach lower C-states. &lt;br /&gt;
If you don't use PCMCIA, you may disable it the same way (unloading seems unsuficient&lt;br /&gt;
to restore the system properly, you have to boot without it):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist pcmcia&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
 echo &amp;quot;blacklist yenta_socket&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34954</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34954"/>
		<updated>2007-12-02T06:13:16Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power hungry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed ''enable'' them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hpet=force&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to your kernel boot options (usualy in /boot/grub/menu.lst or lilo.conf). &lt;br /&gt;
Note that &amp;quot;hpet=force&amp;quot; is only available by default in 2.6.24-rc2 and above &lt;br /&gt;
(or as a separated patch for 2.6.22 and 2.6.23, see below).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same for PCMCIA/Cardbus. Some users experiences interrupts clouds (sometime up to &lt;br /&gt;
several thousands interrupts/second) causing CPU wakeups, thus totally preventing &lt;br /&gt;
the CPU to reach lower C-states. &lt;br /&gt;
If you don't use PCMCIA, you may disable it the same way (unloading seems unsuficient&lt;br /&gt;
to restore the system properly, you have to boot without it):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist pcmcia&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
 echo &amp;quot;blacklist yenta_socket&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installation_on_ThinkPads_without_CD-ROM_drive&amp;diff=34953</id>
		<title>Installation on ThinkPads without CD-ROM drive</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installation_on_ThinkPads_without_CD-ROM_drive&amp;diff=34953"/>
		<updated>2007-12-02T06:09:31Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: /* Installation from the internal harddrive */&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;
Some ThinkPads (e.g. the whole X series) come without a CD-ROM drive by default. Even though there are options to buy a solution like the UltraBase, a full dock or simply an external CD-ROM drive{{footnote|1}}, this is not the cheapest option and might not always be necessary. Also, with some external CD-ROMs the problem might arise that the ThinkPad is not able to boot from them. See our [[Supported Boot Devices|List of supported boot devices]] for various ThinkPads.&lt;br /&gt;
&lt;br /&gt;
So the question arises how to get your system of choice onto that precious piece of hardware. This page should tell you about the possible solutions.&lt;br /&gt;
&lt;br /&gt;
Since in most cases the installation base packages come on CD, you'll need a second computer, equipped with a CD-ROM drive, for all of those solutions.&lt;br /&gt;
&lt;br /&gt;
Many older ThinkPads came with only a floppy drive and cannot boot from any CD drive at all. For those machines, booting from floppy is the only option. Then one can install from CD, over a network, or from the hard drive.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation from USB drive==&lt;br /&gt;
{{NOTE|Not all ThinkPads have a BIOS that [[Supported_Boot_Devices|supports USB booting]].}}&lt;br /&gt;
&lt;br /&gt;
This is probably the easiest approach:&lt;br /&gt;
#Connect the USB drive{{footnote|2}} to the host and format it.&lt;br /&gt;
#Get a bootable system and all needed installation files onto the USB drive, i.e. by copying the complete filesystem from your installation CD-ROM to the USB drive. Of course if your USB drive is not big enough for that you'll have to make more sophisticated choices about what to copy and what to leave behind. Here are [http://wiki.debian.org/BootUsb some instructions] for converting a LiveCD ISO image onto a pen drive, and making it bootable.{{footnote|3}}&lt;br /&gt;
&lt;br /&gt;
#Insert the USB drive into the USB port of your ThinkPad.&lt;br /&gt;
#Power on the ThinkPad and press F12 to get to the boot menu. For some models (X24 comes to mind) you need to go into the BIOS and change the boot sequence before USB devices are shown in the boot menu.&lt;br /&gt;
#Select the USB drive as boot media and boot.&lt;br /&gt;
#Follow the normal installation process.&lt;br /&gt;
&lt;br /&gt;
It seems some ThinkPad BIOSes don't use the code on the master boot record (MBR), or at least skip it when it is blank.  These systems will need an [http://www.tsden.org/ryutaroh/extipl/ Extended-IPL boot loader]. Putting this Extended-IPL boot loader onto the disk (such as &amp;lt;tt&amp;gt;sda&amp;lt;/tt&amp;gt;) goes something like this:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/dev/sda bs=1 count=446&lt;br /&gt;
 dd if=/usr/lib/extipl/aldebaran.bin of=/dev/sda&lt;br /&gt;
&lt;br /&gt;
==Installation via network boot==&lt;br /&gt;
Thinkpads support PXE to boot off another system that is connected via [[Ethernet]]. In this case the ThinkPad acts as a network boot client, the other system as server. The idea is to boot a system on the server that the ThinkPad can boot into then by loading all required data directly from that server.&lt;br /&gt;
&lt;br /&gt;
For this to work you will have to either have both the server and the ThinkPad connected in the same subnet of your LAN, or have them connected directly via a crossed Ethernet cable.&lt;br /&gt;
&lt;br /&gt;
===Using Windows as a server===&lt;br /&gt;
To get your Thinkpad to boot over a network, you must set up a DHCP and a TFTP server.  For Windows, the freeware program [http://tftpd32.jounin.net TFTPD32] does both.  To set up TFTPD32, do the following:&lt;br /&gt;
#Create a directory that will contain the PXE boot code.&lt;br /&gt;
#Copy the boot code into that directory.  (For a Debian Sarge install, for example, you can find code to initiate a network install under &amp;lt;code&amp;gt;debian/dists/sarge/main/installer-i386/current/images/netboot/&amp;lt;/code&amp;gt; from a Debian mirror -- copy files to simulate symlinks for &amp;lt;code&amp;gt;pxelinux.0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pxelinux.cfg/&amp;lt;/code&amp;gt;)&lt;br /&gt;
#Launch the TFTPD32 program.&lt;br /&gt;
#&amp;quot;Browse&amp;quot; to set the current directory to the directory containing the PXE boot code (i.e. the directory you created in the first step, above).&lt;br /&gt;
#On the DHCP server tab, set:&lt;br /&gt;
##&amp;lt;code&amp;gt;IP pool starting address&amp;lt;/code&amp;gt; to something appropriate for your network&lt;br /&gt;
##&amp;lt;code&amp;gt;Size of pool&amp;lt;/code&amp;gt; to a non-zero value (all you really need is 1)&lt;br /&gt;
##&amp;lt;code&amp;gt;Boot file&amp;lt;/code&amp;gt; to the PXE boot image (for Debian, the filename is &amp;lt;code&amp;gt;pxelinux.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
##&amp;lt;code&amp;gt;WINS/DNS Server&amp;lt;/code&amp;gt; to the DNS server used by your network&lt;br /&gt;
##&amp;lt;code&amp;gt;Default router&amp;lt;/code&amp;gt; to the IP of your default gateway&lt;br /&gt;
##&amp;lt;code&amp;gt;Mask&amp;lt;/code&amp;gt; to your network's netmask&lt;br /&gt;
##&amp;lt;code&amp;gt;Domain Name&amp;lt;/code&amp;gt; to your network's domain&lt;br /&gt;
{{NOTE|Do &amp;lt;em&amp;gt;not&amp;lt;/em&amp;gt; under any circumstances run the DHCP server if there are other DHCP servers on your network.  There must be only one DHCP server on each network segment. You must either disable the other server or move to another network.}}&lt;br /&gt;
&lt;br /&gt;
On your ThinkPad, do the following:&lt;br /&gt;
#Boot your Thinkpad, and press {{key|F12}} to select an alternate boot device&lt;br /&gt;
#Use &amp;quot;&amp;lt;code&amp;gt;Intel(R) Boot Agent Version 4.0.17&amp;lt;/code&amp;gt;&amp;quot; (or similar -- on the Transnote used to make this guide, &amp;quot;&amp;lt;code&amp;gt;Network Boot&amp;lt;/code&amp;gt;&amp;quot; did not work while the &amp;quot;&amp;lt;code&amp;gt;Boot Agent&amp;lt;/code&amp;gt;&amp;quot; option did)&lt;br /&gt;
&lt;br /&gt;
The TFTPD32 server window should show activity as the ThinkPad downloads files. Once the first stage has installed and the ThinkPad is ready to boot from its own hard drive, shut down TFTPD32 and re-enable your permanent DHCP server.&lt;br /&gt;
&lt;br /&gt;
===Using [[:Category:Knoppix|Knoppix]] as a Terminal Server===&lt;br /&gt;
If a server system is available on the network, it can be used to set up a temporary Terminal Server.  Follow these steps to set up the Terminal Server using Knoppix:&lt;br /&gt;
#Insert the Knoppix CD into the server and boot it up.  Make sure to boot with the 2.6 kernel by giving the &amp;lt;code&amp;gt;kernel26&amp;lt;/code&amp;gt; boot option.&lt;br /&gt;
#Once your KDE desktop is loaded, look in the K-Menu hierarchy for the link to the terminal server setup.  Select this menu option.&lt;br /&gt;
#Launch the Terminal Server and make it use the appropriate network device.&lt;br /&gt;
Back at your ThinkPad, do the following:&lt;br /&gt;
#Power on your ThinkPad and press F12 to get to the boot menu.&lt;br /&gt;
#Select the ThinkPad's network adapter as the boot media.&lt;br /&gt;
#Reboot. The ThinkPad should now boot from the Knoppix Terminal Server directly.&lt;br /&gt;
&lt;br /&gt;
===Using any Linux on the server side===&lt;br /&gt;
{{Todo|needs better formating, maybe a list where to find the kernel/initrd images on other distros and a hint to speed up booting}}&lt;br /&gt;
&lt;br /&gt;
# TFTP Server&lt;br /&gt;
#* Download and install an tftp Server&lt;br /&gt;
#* Configure it to serve {{path|/tftpboot}}&lt;br /&gt;
# Get the kernel and initrd image from your distribution&lt;br /&gt;
#* For fedora-core they are in {{path|os/images/pxeboot}}&lt;br /&gt;
#* Copy both to {{path|/tftpboot/vmlinuz}} resp. {{path|/tftpboot/initrd.img}}&lt;br /&gt;
# [http://www.kernel.org/pub/linux/boot/syslinux/ Bootloader]&lt;br /&gt;
#* Download the current syslinux-X.YZ.tar.bz2 tarball&lt;br /&gt;
#* Copy the included pxelinux.0 to {{path|/tftpboot/pxelinux.0}}&lt;br /&gt;
#* Create a directory for the configuration with {{cmdroot|mkdir /tftpboot/pxelinux.cfg}}&lt;br /&gt;
#* Create the file {{path|/tftpboot/pxelinux.cfg/default}} with the following contents:&lt;br /&gt;
 DEFAULT install&lt;br /&gt;
 PROMPT 1&lt;br /&gt;
 TIMEOUT 0&lt;br /&gt;
 LABEL install&lt;br /&gt;
         kernel vmlinuz&lt;br /&gt;
         append initrd=initrd.img  --&lt;br /&gt;
# DHCP Server&lt;br /&gt;
#* Download and install an DHCP Server&lt;br /&gt;
#* Configure it to for your Thinkpad, the following configuration assumes that the MAC-address of your Thinkpad is DE:AD:BE:EF:00:00 and should use the IP 192.168.0.2 with namesever/router/tftpserver 192.168.0.1&lt;br /&gt;
 allow booting;&lt;br /&gt;
 allow bootp;&lt;br /&gt;
 host thinkpad {&lt;br /&gt;
    hardware ethernet DE:AD:BE:EF:00:00;&lt;br /&gt;
    fixed-address 192.168.0.2;&lt;br /&gt;
    option domain-name-servers 192.168.0.1;&lt;br /&gt;
    option routers 192.168.0.1;&lt;br /&gt;
    default-lease-time 28800;&lt;br /&gt;
    filename &amp;quot;pxelinux.0&amp;quot;;&lt;br /&gt;
    next-server 192.168.0.1;&lt;br /&gt;
 }&lt;br /&gt;
#* Now you can boot your thinkpad via lan&lt;br /&gt;
&lt;br /&gt;
==Installation from the internal harddrive==&lt;br /&gt;
The idea here is to have all required files already on the internal harddrive when you power up your ThinkPad for installation, including of course a minimal system to boot up and start the installation process.&lt;br /&gt;
&lt;br /&gt;
Convenient, but how do you get the files there?&lt;br /&gt;
*One option is to copy them via network boot (see above).&lt;br /&gt;
*Some Linux distributions offer ways to download the installation files from a FTP server and to choose this directory as installation source instead of a CD-ROM.&lt;br /&gt;
*A second way, if you already have a 'working' copy of DOS or MS Windows installed, is to start the installer from loadlin or GRUB. This is detailed [http://marc.herbert.free.fr/linux/win2linstall.html here].&lt;br /&gt;
*Another one is to remove the harddrive from the ThinkPad and connect it to the other machine. Again, this can be achieved in several ways:&lt;br /&gt;
**putting the harddrive into an UltraBay secondary HDD adapter of a second ThinkPad&lt;br /&gt;
**putting the harddrive into an external casing and connect it to the second machine via USB, PCMCIA or whatever&lt;br /&gt;
**connecting the harddrive via a 2.5&amp;quot; (laptop) to 3.5&amp;quot; (desktop) harddrive adapter&lt;br /&gt;
&lt;br /&gt;
Follow one of the following instructions.&lt;br /&gt;
&lt;br /&gt;
===Installing [[:Category:Windows|Windows]] 2000 or XP===&lt;br /&gt;
*Attach the harddrive to the host computer and install a minimal bootable DOS system i.e. by booting a Win98 Emergency Boot Disk and performing the command &amp;quot;SYS X:&amp;quot; (where X = the laptop's harddrive).&lt;br /&gt;
*Copy FDISK.EXE to the laptop harddrive.&lt;br /&gt;
*Return the harddrive to the laptop and boot to DOS. (If you have Win98 installed by default, you can skip the first two steps and simply reboot in Windows to DOS.)&lt;br /&gt;
*Run FDISK and set up your new Windows system partition on this laptop. (If you do not do this on the laptop, after reboot you will receive the infamous &amp;quot;NTLDR IS MISSING&amp;quot; error. This error may still occur if the partition is greater than 7.8gb in size)&lt;br /&gt;
*Then return the drive to the host and format the drive as FAT32. (DO NOT format as NTFS.)&lt;br /&gt;
*Repeat the &amp;quot;SYS X:&amp;quot; step to make the new partition bootable.&lt;br /&gt;
*Copy Himem.sys and Config.sys, too. Otherwise SMARTDRIVE.EXE won't run&lt;br /&gt;
*Get SMARTDRV.EXE from the internet and copy it to your Thinkpads harddrive.&lt;br /&gt;
*Also, from the Win2K or WinXP CD, copy the I386 folder to the harddrive.&lt;br /&gt;
*Return the laptop's harddrive to the Thinkpad one final time and boot to DOS.&lt;br /&gt;
*Run SMARTDRV.EXE first, then change directories to I386 and run WINNT.EXE, this will allow the installation to begin.&lt;br /&gt;
*During installation, choose NOT to format the destination partition, since it contains the installation files. If you want that filesystem to be NTFS you can convert it after installation from within Windows.&lt;br /&gt;
&lt;br /&gt;
==Installation from Diskette==&lt;br /&gt;
===Installing from CD===&lt;br /&gt;
Many distributions have software on CD that will make a boot floppy that will allow you to install from an unbootable CD drive.&lt;br /&gt;
&lt;br /&gt;
===Installing over a network===&lt;br /&gt;
Some distributions have a set of diskettes that will allow you to boot a machine, enable a network device and start installation over a network. For example, {{Slackware}} supports installing via an NFS mount. An unofficial add-on adds an option to install over FTP.&lt;br /&gt;
&lt;br /&gt;
===Installing from floppy===&lt;br /&gt;
Some distributions did allow for a complete installation from diskette. As the size of distributions and the number of required diskettes has grown, and the ubiquity of optical storage increased, support for floppy installation has diminished.&lt;br /&gt;
&lt;br /&gt;
However, there are still some Linux distributions that fit on as few as one diskette - with very limited functionality, of course.&lt;br /&gt;
&lt;br /&gt;
==Installation from an ISO image==&lt;br /&gt;
Some distributions offer a way of installing directly from the downloadable ISO image, residing on your harddisk. Examples are VectorLinux 5.1 and {{SUSE}} 10. The individual distributions installation manuals will guide you through the process.&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www.gentoo.org/doc/en/altinstall.xml Gentoo alternative installation method HOWTO]&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#External CD-ROM drives typically are connected through USB or [[PCMCIA]]. Be aware that not all of these drives are [[Supported Boot Devices|capable of booting]]. USB connected drives are more likely to be bootable on a ThinkPad than PCMCIA connected ones.&lt;br /&gt;
#USB drive here means any kind of USB connected bootable data storage device, including external harddisk drives, memory card readers or pendrives.&lt;br /&gt;
#Most USB keys are already bootable. If it won't work, use lilo to write to the USB key's MBR: See the section &amp;quot;Master Boot Record&amp;quot; [http://wiki.debian.org/BootUsb here].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:TransNote]] [[Category:560]] [[Category:560E]] [[Category:560X]] [[Category:560Z]] [[Category:570]] [[Category:570E]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:Knoppix]]&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installation_on_ThinkPads_without_CD-ROM_drive&amp;diff=34952</id>
		<title>Installation on ThinkPads without CD-ROM drive</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installation_on_ThinkPads_without_CD-ROM_drive&amp;diff=34952"/>
		<updated>2007-12-02T06:07:08Z</updated>

		<summary type="html">&lt;p&gt;AlanHK: spelling&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;
Some ThinkPads (e.g. the whole X series) come without a CD-ROM drive by default. Even though there are options to buy a solution like the UltraBase, a full dock or simply an external CD-ROM drive{{footnote|1}}, this is not the cheapest option and might not always be necessary. Also, with some external CD-ROMs the problem might arise that the ThinkPad is not able to boot from them. See our [[Supported Boot Devices|List of supported boot devices]] for various ThinkPads.&lt;br /&gt;
&lt;br /&gt;
So the question arises how to get your system of choice onto that precious piece of hardware. This page should tell you about the possible solutions.&lt;br /&gt;
&lt;br /&gt;
Since in most cases the installation base packages come on CD, you'll need a second computer, equipped with a CD-ROM drive, for all of those solutions.&lt;br /&gt;
&lt;br /&gt;
Many older ThinkPads came with only a floppy drive and cannot boot from any CD drive at all. For those machines, booting from floppy is the only option. Then one can install from CD, over a network, or from the hard drive.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation from USB drive==&lt;br /&gt;
{{NOTE|Not all ThinkPads have a BIOS that [[Supported_Boot_Devices|supports USB booting]].}}&lt;br /&gt;
&lt;br /&gt;
This is probably the easiest approach:&lt;br /&gt;
#Connect the USB drive{{footnote|2}} to the host and format it.&lt;br /&gt;
#Get a bootable system and all needed installation files onto the USB drive, i.e. by copying the complete filesystem from your installation CD-ROM to the USB drive. Of course if your USB drive is not big enough for that you'll have to make more sophisticated choices about what to copy and what to leave behind. Here are [http://wiki.debian.org/BootUsb some instructions] for converting a LiveCD ISO image onto a pen drive, and making it bootable.{{footnote|3}}&lt;br /&gt;
&lt;br /&gt;
#Insert the USB drive into the USB port of your ThinkPad.&lt;br /&gt;
#Power on the ThinkPad and press F12 to get to the boot menu. For some models (X24 comes to mind) you need to go into the BIOS and change the boot sequence before USB devices are shown in the boot menu.&lt;br /&gt;
#Select the USB drive as boot media and boot.&lt;br /&gt;
#Follow the normal installation process.&lt;br /&gt;
&lt;br /&gt;
It seems some ThinkPad BIOSes don't use the code on the master boot record (MBR), or at least skip it when it is blank.  These systems will need an [http://www.tsden.org/ryutaroh/extipl/ Extended-IPL boot loader]. Putting this Extended-IPL boot loader onto the disk (such as &amp;lt;tt&amp;gt;sda&amp;lt;/tt&amp;gt;) goes something like this:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/dev/sda bs=1 count=446&lt;br /&gt;
 dd if=/usr/lib/extipl/aldebaran.bin of=/dev/sda&lt;br /&gt;
&lt;br /&gt;
==Installation via network boot==&lt;br /&gt;
Thinkpads support PXE to boot off another system that is connected via [[Ethernet]]. In this case the ThinkPad acts as a network boot client, the other system as server. The idea is to boot a system on the server that the ThinkPad can boot into then by loading all required data directly from that server.&lt;br /&gt;
&lt;br /&gt;
For this to work you will have to either have both the server and the ThinkPad connected in the same subnet of your LAN, or have them connected directly via a crossed Ethernet cable.&lt;br /&gt;
&lt;br /&gt;
===Using Windows as a server===&lt;br /&gt;
To get your Thinkpad to boot over a network, you must set up a DHCP and a TFTP server.  For Windows, the freeware program [http://tftpd32.jounin.net TFTPD32] does both.  To set up TFTPD32, do the following:&lt;br /&gt;
#Create a directory that will contain the PXE boot code.&lt;br /&gt;
#Copy the boot code into that directory.  (For a Debian Sarge install, for example, you can find code to initiate a network install under &amp;lt;code&amp;gt;debian/dists/sarge/main/installer-i386/current/images/netboot/&amp;lt;/code&amp;gt; from a Debian mirror -- copy files to simulate symlinks for &amp;lt;code&amp;gt;pxelinux.0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pxelinux.cfg/&amp;lt;/code&amp;gt;)&lt;br /&gt;
#Launch the TFTPD32 program.&lt;br /&gt;
#&amp;quot;Browse&amp;quot; to set the current directory to the directory containing the PXE boot code (i.e. the directory you created in the first step, above).&lt;br /&gt;
#On the DHCP server tab, set:&lt;br /&gt;
##&amp;lt;code&amp;gt;IP pool starting address&amp;lt;/code&amp;gt; to something appropriate for your network&lt;br /&gt;
##&amp;lt;code&amp;gt;Size of pool&amp;lt;/code&amp;gt; to a non-zero value (all you really need is 1)&lt;br /&gt;
##&amp;lt;code&amp;gt;Boot file&amp;lt;/code&amp;gt; to the PXE boot image (for Debian, the filename is &amp;lt;code&amp;gt;pxelinux.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
##&amp;lt;code&amp;gt;WINS/DNS Server&amp;lt;/code&amp;gt; to the DNS server used by your network&lt;br /&gt;
##&amp;lt;code&amp;gt;Default router&amp;lt;/code&amp;gt; to the IP of your default gateway&lt;br /&gt;
##&amp;lt;code&amp;gt;Mask&amp;lt;/code&amp;gt; to your network's netmask&lt;br /&gt;
##&amp;lt;code&amp;gt;Domain Name&amp;lt;/code&amp;gt; to your network's domain&lt;br /&gt;
{{NOTE|Do &amp;lt;em&amp;gt;not&amp;lt;/em&amp;gt; under any circumstances run the DHCP server if there are other DHCP servers on your network.  There must be only one DHCP server on each network segment. You must either disable the other server or move to another network.}}&lt;br /&gt;
&lt;br /&gt;
On your ThinkPad, do the following:&lt;br /&gt;
#Boot your Thinkpad, and press {{key|F12}} to select an alternate boot device&lt;br /&gt;
#Use &amp;quot;&amp;lt;code&amp;gt;Intel(R) Boot Agent Version 4.0.17&amp;lt;/code&amp;gt;&amp;quot; (or similar -- on the Transnote used to make this guide, &amp;quot;&amp;lt;code&amp;gt;Network Boot&amp;lt;/code&amp;gt;&amp;quot; did not work while the &amp;quot;&amp;lt;code&amp;gt;Boot Agent&amp;lt;/code&amp;gt;&amp;quot; option did)&lt;br /&gt;
&lt;br /&gt;
The TFTPD32 server window should show activity as the ThinkPad downloads files. Once the first stage has installed and the ThinkPad is ready to boot from its own hard drive, shut down TFTPD32 and re-enable your permanent DHCP server.&lt;br /&gt;
&lt;br /&gt;
===Using [[:Category:Knoppix|Knoppix]] as a Terminal Server===&lt;br /&gt;
If a server system is available on the network, it can be used to set up a temporary Terminal Server.  Follow these steps to set up the Terminal Server using Knoppix:&lt;br /&gt;
#Insert the Knoppix CD into the server and boot it up.  Make sure to boot with the 2.6 kernel by giving the &amp;lt;code&amp;gt;kernel26&amp;lt;/code&amp;gt; boot option.&lt;br /&gt;
#Once your KDE desktop is loaded, look in the K-Menu hierarchy for the link to the terminal server setup.  Select this menu option.&lt;br /&gt;
#Launch the Terminal Server and make it use the appropriate network device.&lt;br /&gt;
Back at your ThinkPad, do the following:&lt;br /&gt;
#Power on your ThinkPad and press F12 to get to the boot menu.&lt;br /&gt;
#Select the ThinkPad's network adapter as the boot media.&lt;br /&gt;
#Reboot. The ThinkPad should now boot from the Knoppix Terminal Server directly.&lt;br /&gt;
&lt;br /&gt;
===Using any Linux on the server side===&lt;br /&gt;
{{Todo|needs better formating, maybe a list where to find the kernel/initrd images on other distros and a hint to speed up booting}}&lt;br /&gt;
&lt;br /&gt;
# TFTP Server&lt;br /&gt;
#* Download and install an tftp Server&lt;br /&gt;
#* Configure it to serve {{path|/tftpboot}}&lt;br /&gt;
# Get the kernel and initrd image from your distribution&lt;br /&gt;
#* For fedora-core they are in {{path|os/images/pxeboot}}&lt;br /&gt;
#* Copy both to {{path|/tftpboot/vmlinuz}} resp. {{path|/tftpboot/initrd.img}}&lt;br /&gt;
# [http://www.kernel.org/pub/linux/boot/syslinux/ Bootloader]&lt;br /&gt;
#* Download the current syslinux-X.YZ.tar.bz2 tarball&lt;br /&gt;
#* Copy the included pxelinux.0 to {{path|/tftpboot/pxelinux.0}}&lt;br /&gt;
#* Create a directory for the configuration with {{cmdroot|mkdir /tftpboot/pxelinux.cfg}}&lt;br /&gt;
#* Create the file {{path|/tftpboot/pxelinux.cfg/default}} with the following contents:&lt;br /&gt;
 DEFAULT install&lt;br /&gt;
 PROMPT 1&lt;br /&gt;
 TIMEOUT 0&lt;br /&gt;
 LABEL install&lt;br /&gt;
         kernel vmlinuz&lt;br /&gt;
         append initrd=initrd.img  --&lt;br /&gt;
# DHCP Server&lt;br /&gt;
#* Download and install an DHCP Server&lt;br /&gt;
#* Configure it to for your Thinkpad, the following configuration assumes that the MAC-address of your Thinkpad is DE:AD:BE:EF:00:00 and should use the IP 192.168.0.2 with namesever/router/tftpserver 192.168.0.1&lt;br /&gt;
 allow booting;&lt;br /&gt;
 allow bootp;&lt;br /&gt;
 host thinkpad {&lt;br /&gt;
    hardware ethernet DE:AD:BE:EF:00:00;&lt;br /&gt;
    fixed-address 192.168.0.2;&lt;br /&gt;
    option domain-name-servers 192.168.0.1;&lt;br /&gt;
    option routers 192.168.0.1;&lt;br /&gt;
    default-lease-time 28800;&lt;br /&gt;
    filename &amp;quot;pxelinux.0&amp;quot;;&lt;br /&gt;
    next-server 192.168.0.1;&lt;br /&gt;
 }&lt;br /&gt;
#* Now you can boot your thinkpad via lan&lt;br /&gt;
&lt;br /&gt;
==Installation from the internal harddrive==&lt;br /&gt;
The idea here is to have all required files allready on the internal harddrive when you power up your ThinkPad for installation, including of course a minimal system to boot up and start the installation process.&lt;br /&gt;
&lt;br /&gt;
Convenient, but how do you get the files there?&lt;br /&gt;
*One option is to copy them via network boot (see above).&lt;br /&gt;
*Some Linux distributions offer ways to download the installation files from a FTP server and to choose this directory as installation source instead of a CD-ROM.&lt;br /&gt;
*A second way, if you already have a 'working' copy of DOS or MS Windows installed, is to start the installer from loadlin or GRUB. This is detailed [http://marc.herbert.free.fr/linux/win2linstall.html here].&lt;br /&gt;
*Another one is to remove the harddrive from the ThinkPad and connect it to the other machine. Again, this can be achieved in several ways:&lt;br /&gt;
**putting the harddrive into an UltraBay secondary HDD adapter of a second ThinkPad&lt;br /&gt;
**putting the harddrive into an external casing and connect it to the second machine via USB, PCMCIA or whatever&lt;br /&gt;
**connecting the harddrive via a 2.5&amp;quot; (laptop) to 3.5&amp;quot; (desktop) harddrive adapter&lt;br /&gt;
&lt;br /&gt;
Follow one of the following instructions.&lt;br /&gt;
&lt;br /&gt;
===Installing [[:Category:Windows|Windows]] 2000 or XP===&lt;br /&gt;
*Attach the harddrive to the host computer and install a minimal bootable DOS system i.e. by booting a Win98 Emergency Boot Disk and performing the command &amp;quot;SYS X:&amp;quot; (where X = the laptop's harddrive).&lt;br /&gt;
*Copy FDISK.EXE to the laptop harddrive.&lt;br /&gt;
*Return the harddrive to the laptop and boot to DOS. (If you have Win98 installed by default, you can skip the first two steps and simply reboot in Windows to DOS.)&lt;br /&gt;
*Run FDISK and set up your new Windows system partition on this laptop. (If you do not do this on the laptop, after reboot you will receive the infamous &amp;quot;NTLDR IS MISSING&amp;quot; error. This error may still occur if the partition is greater than 7.8gb in size)&lt;br /&gt;
*Then return the drive to the host and format the drive as FAT32. (DO NOT format as NTFS.)&lt;br /&gt;
*Repeat the &amp;quot;SYS X:&amp;quot; step to make the new partition bootable.&lt;br /&gt;
*Copy Himem.sys and Config.sys, too. Otherwise SMARTDRIVE.EXE won't run&lt;br /&gt;
*Get SMARTDRV.EXE from the internet and copy it to your Thinkpads harddrive.&lt;br /&gt;
*Also, from the Win2K or WinXP CD, copy the I386 folder to the harddrive.&lt;br /&gt;
*Return the laptop's harddrive to the Thinkpad one final time and boot to DOS.&lt;br /&gt;
*Run SMARTDRV.EXE first, then change directories to I386 and run WINNT.EXE, this will allow the installation to begin.&lt;br /&gt;
*During installation, choose NOT to format the destination partition, since it contains the installation files. If you want that filesystem to be NTFS you can convert it after installation from within Windows.&lt;br /&gt;
&lt;br /&gt;
==Installation from Diskette==&lt;br /&gt;
===Installing from CD===&lt;br /&gt;
Many distributions have software on CD that will make a boot floppy that will allow you to install from an unbootable CD drive.&lt;br /&gt;
&lt;br /&gt;
===Installing over a network===&lt;br /&gt;
Some distributions have a set of diskettes that will allow you to boot a machine, enable a network device and start installation over a network. For example, {{Slackware}} supports installing via an NFS mount. An unofficial add-on adds an option to install over FTP.&lt;br /&gt;
&lt;br /&gt;
===Installing from floppy===&lt;br /&gt;
Some distributions did allow for a complete installation from diskette. As the size of distributions and the number of required diskettes has grown, and the ubiquity of optical storage increased, support for floppy installation has diminished.&lt;br /&gt;
&lt;br /&gt;
However, there are still some Linux distributions that fit on as few as one diskette - with very limited functionality, of course.&lt;br /&gt;
&lt;br /&gt;
==Installation from an ISO image==&lt;br /&gt;
Some distributions offer a way of installing directly from the downloadable ISO image, residing on your harddisk. Examples are VectorLinux 5.1 and {{SUSE}} 10. The individual distributions installation manuals will guide you through the process.&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www.gentoo.org/doc/en/altinstall.xml Gentoo alternative installation method HOWTO]&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#External CD-ROM drives typically are connected through USB or [[PCMCIA]]. Be aware that not all of these drives are [[Supported Boot Devices|capable of booting]]. USB connected drives are more likely to be bootable on a ThinkPad than PCMCIA connected ones.&lt;br /&gt;
#USB drive here means any kind of USB connected bootable data storage device, including external harddisk drives, memory card readers or pendrives.&lt;br /&gt;
#Most USB keys are already bootable. If it won't work, use lilo to write to the USB key's MBR: See the section &amp;quot;Master Boot Record&amp;quot; [http://wiki.debian.org/BootUsb here].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:TransNote]] [[Category:560]] [[Category:560E]] [[Category:560X]] [[Category:560Z]] [[Category:570]] [[Category:570E]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:Knoppix]]&lt;/div&gt;</summary>
		<author><name>AlanHK</name></author>
		
	</entry>
</feed>