<?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=Csawtell</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=Csawtell"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Csawtell"/>
	<updated>2026-05-01T13:56:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Embedded_Security_Subsystem&amp;diff=46101</id>
		<title>Embedded Security Subsystem</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Embedded_Security_Subsystem&amp;diff=46101"/>
		<updated>2010-02-18T19:38:31Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* 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:ESS.jpg|IBM Embedded Security Subsystem]] __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;
=== The Embedded Security Subsystem ===&lt;br /&gt;
The Embedded Security Subsystem is a chip on the ThinkPad's mainboard that can take care of certain security related tasks conforming to the TCPA standard. It was first introduced among the T23 models and is now under the name &amp;quot;Embedded Security Subsystem 2.0&amp;quot;. It is an integral part of most of the modern ThinkPads. The functions of the chip fall into three main groups:&lt;br /&gt;
* Public key functions&lt;br /&gt;
* Trusted boot functions&lt;br /&gt;
* Initialization and management functions&lt;br /&gt;
&lt;br /&gt;
The purpose of the Embedded Security Subsystem is to keep the user's sensitive data out of range from software based attacks (like viruses, Internet attacks etc.). One way the chip offers to achieve this is by providing storage for keys along with the necessary functions to handle them within itself, so that a for example a private key never has to leave the chip (can't be seen by any piece of software). Besides this, there are more complex topics covered by the functionality of the chip. If you want to find out more about it you can find good documents on the [http://www.research.ibm.com/gsal/tcpa/ IBM Research TCPA resources page].&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Some ThinkPads have the TPM chip integrated into the SuperIO chip, and in a not-so-distant future, the TPM will be integrated into the chipset. Don't let the picture fool you...}}&lt;br /&gt;
&lt;br /&gt;
{{WARN|There's a bug in the latest release of the security chip software.  You end up facing a security chip login, and you press Ctrl-alt-delete, and it just sits there.  '''Do not''' download the latest patch (Dated 13/06/2006 v 7.00.0017.00) &amp;lt;BR&amp;gt;&lt;br /&gt;
Actually, they appear to have removed that patch.&amp;lt;BR&amp;gt;&lt;br /&gt;
Ring IBM support (in Australia 131426, 1, 2) and they'll talk you through doing a system restore.}}&lt;br /&gt;
&lt;br /&gt;
==Trusted or Treacherous?==&lt;br /&gt;
&lt;br /&gt;
TC - Trusted Computing - will be the biggest change of the information landscape since decades. Besides positive features like a more secure hardware storage for cryptographic keys, an analysis of the proposed TCG-standards shows some problematic properties. &amp;lt;br /&amp;gt;&lt;br /&gt;
As ThinkPads of recent generations following the ThinkPad {{T23}} ([[Embedded Security Subsystem#Models featuring this Technology|see the complete list of models]]) are equipped with this disputed TCG-/TCPA-Technology, it can be interesting, which promises of the TCG are fulfilled inside your ThinkPad and which parts of the TCG-specifications still seem to be a privacy issue for every user of digital devices like a MP3-player or a ThinkPad - so please read [[TCPA/TCG - Trusted or Treacherous|this article]] for more details.&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
Two linux drivers are available, a [[tpm|classical one]] and a [[tpmdd|newer one]].&lt;br /&gt;
Coverage of functionality of the first is unknown so far, the second is part of a bigger project aiming to provide a usable security framework.&lt;br /&gt;
&lt;br /&gt;
David Stafford (one of the developers of the tpm code at IBM) on March 10, 2005 sent me the most recent version of the tpm-kml code. With his permission, I quote his email:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I am attaching our latest driver and library.&lt;br /&gt;
This version is in the process of kernel mailing list review, and&lt;br /&gt;
will hopefully be accepted into the official kernel. It works&lt;br /&gt;
much better across various 2.6 kernels. Note that this builds&lt;br /&gt;
three modules tpm, tpm_atmel, and tpm_nsc. You modprobe the&lt;br /&gt;
tpm_atmel (for all current shipping atmel based systems), or&lt;br /&gt;
tpm_nsc (for the coming national based systems).&lt;br /&gt;
&lt;br /&gt;
Also note that there is a conflict with the snd-intel8x0&lt;br /&gt;
kernel module (they each try to grab the LPC bus). You can&lt;br /&gt;
either: load the tpm modules first (such as in initrd or&lt;br /&gt;
rc.sysinit, before sound), or recompile the snd-intel8x0, turning&lt;br /&gt;
off the MIDI and JOYSTICK support. The latest 2.6.11 version&lt;br /&gt;
of snd-intel8x0 also reportedly fixes things.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Compiling this library was easy. Compiling the driver on my 2.6.8-686 (debian testing) laptop failed. But the library works with the driver I compiled from the tpm-2.0 package IBM made available on its pages (see the links below).&lt;br /&gt;
&lt;br /&gt;
Gijs&lt;br /&gt;
&lt;br /&gt;
The T43 requires a patch posted to the LKML by Kylene Jo Hall: [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111884603309146&amp;amp;w=2 LKML posting]. An updated patch for linux 2.6.12 is available [http://shamrock.dyndns.org/~ln/linux/tpm_2.6.12.diff here].&lt;br /&gt;
&lt;br /&gt;
The atmel driver comes with 2.6.12.&lt;br /&gt;
----&lt;br /&gt;
Now suported in 2.6.15.1 (and maybe others kernels under this number) in:&lt;br /&gt;
&lt;br /&gt;
/device drivers/caracter devices/tpm devices&lt;br /&gt;
&lt;br /&gt;
==Versions &amp;amp; Features==&lt;br /&gt;
=== Embedded Security Chip ===&lt;br /&gt;
IBM introduced it's TCPA/TCG features with some of the [[:Category:T23|T23]] models. The earlier of them didn't yet have the Embedded Security Subsystem, but a kind of pre 1.0 version called the Embedded Security Chip. This chip had the following capabilities:&lt;br /&gt;
*Data communications authentication and encryption&lt;br /&gt;
*Storage of encrypted passwords&lt;br /&gt;
&lt;br /&gt;
=== Embedded Security Subsystem (1.0) ===&lt;br /&gt;
The original Embedded Security Subsystem (in IBM documents there is no use of the additive version-number 1.0) claims to be compliant with TCG specs, but apparently did not fully implement any specific TCG spec.&lt;br /&gt;
&lt;br /&gt;
The Embedded Security Subsystem has the following features:&lt;br /&gt;
*hardware key storage&lt;br /&gt;
*multi-factor authentication&lt;br /&gt;
*local file encryption&lt;br /&gt;
*enhances VPN security&lt;br /&gt;
&lt;br /&gt;
=== Embedded Security Subsystem 2.0 ===&lt;br /&gt;
The Embedded Security Subsystem 2.0 conforms to the TCG TPM 1.1b specification, with a TPM manufactured by either Atmel or National Semiconductor, and TCG TPM PC client 1.1 BIOS extensions.&lt;br /&gt;
&lt;br /&gt;
The Embedded Security Subsystem 2.0 has the following features:&lt;br /&gt;
*hardware key storage&lt;br /&gt;
*multi-factor authentication&lt;br /&gt;
*local file encryption&lt;br /&gt;
*enhances VPN security&lt;br /&gt;
*TCG compliant&lt;br /&gt;
&lt;br /&gt;
National Semiconductor TPMs are likely part of the Winbond SuperIO chip (e.g. in a {{T43}}).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{NOTE|It is possible that second-generation T60s and the T61/X61/R61 have TPM chips conforming to TCG TPM 1.2.  If you own one, please verify if that's true, and update this page}}&lt;br /&gt;
{{NOTE|At least the T61p uses an ATMEL TCG TPM 1.2 chip}}&lt;br /&gt;
&lt;br /&gt;
==Clearing/Reseting the Embedded Security Subsystem==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Be sure that there are no active HDD passwords, and that you have uninstalled any IBM/Lenovo security software that might want information stored or encrypted with the help of the TPM chip '''before''' you clear the chip.  Any data that is encrypted using information inside the TPM chip will be useless after you clear the TPM chip.  It is unknown if clearing the TPM chip can mess with the BIOS HDD password support, but until someone tests it, it is best to play it safe.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT|A password-locked HDD can be made useful again by using a low-level utility capable of issuing the SECURE-ERASE command to it.  You will lose all data, but at least the HDD will be usable again, as that also unlocks the HDD.}}&lt;br /&gt;
&lt;br /&gt;
If there is a need to reset and clear the TPM chip, the IBM BIOS has a &amp;quot;Clear Security Chip&amp;quot; option that will work (as long as you did not issue one of the very few &amp;quot;permanently lock the TPM chip in a certain state for life&amp;quot; commands, so '''Do Not Do That!''').&lt;br /&gt;
&lt;br /&gt;
That option is not readily accessible. To unhide it and reset the TPM chip, you have to:&lt;br /&gt;
&lt;br /&gt;
=== Method 1 ===&lt;br /&gt;
#Power down the ThinkPad;&lt;br /&gt;
#Power up the ThinkPad, with the Fn key pressed (or CTRL in a ThinkCenter);&lt;br /&gt;
#When the BIOS screen shows up, release the Fn key;&lt;br /&gt;
#Press the required key to enter the BIOS configuration;&lt;br /&gt;
#Enter BIOS supervisor password if required;&lt;br /&gt;
#Go to the security menu, security chip submenu, and clear the TPM chip.&lt;br /&gt;
&lt;br /&gt;
=== Method 2 ===&lt;br /&gt;
&lt;br /&gt;
#Power down the ThinkPad;&lt;br /&gt;
#Power up the ThinkPad;&lt;br /&gt;
#Press the ThinkVantage/Access IBM button while the BIOS is still booting;&lt;br /&gt;
#Type in the supervisor password if the BIOS asks for it;&lt;br /&gt;
#Press ESC a number of times, which will cause the BIOS to switch to maintenance mode and display a number of text screens;&lt;br /&gt;
#Power down the ThinkPad as soon as it hits the boot loader of the Operating System (it doesn't matter which O.S.);&lt;br /&gt;
#Power on the ThinkPad;&lt;br /&gt;
#Enter the BIOS configuration screen (may require supervisor password);&lt;br /&gt;
#Go to the security menu, security chip submenu, and clear the TPM chip.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the Embedded Security Subsystem==&lt;br /&gt;
&lt;br /&gt;
=== TPM 1.1b basics ===&lt;br /&gt;
&lt;br /&gt;
The TPM chip is a &amp;quot;secure&amp;quot; brokerer of data signatures and keys, as well as a slow but very good hardware RNG.  It has some registers called PCRs that are used for trusted platform attestation.  It can sign data using 2048-bit RSA keys.  It is '''slow'''.  It is not easy to use, either :-)&lt;br /&gt;
&lt;br /&gt;
The current version of the TPM chips found on ThinkPads (TPM 1.1b) isn't secure at all against moderately sophisticated physical attacks, and it is also useless for DRM and other Treacherous Platform corporate ideas.&lt;br /&gt;
&lt;br /&gt;
A Trusted Platform in a context involving a TPM means that the PCRs contains values that they are expected to, because the TPM will allow data that is &amp;quot;sealed&amp;quot; (as opposed to &amp;quot;bound&amp;quot;) to it to be accessed (&amp;quot;unsealed&amp;quot;) only when the PCRs match the PCRs at sealing time.  The interesting magic is, therefore, in the process of updating the contents of the PCRs.&lt;br /&gt;
&lt;br /&gt;
The PCRs start zeroed at TPM reset.  As things load (BIOS, bootloader, OS, userspace), they are supposed to verify if the PCRs are at a state they can trust, and if so, to add the checksum of their own code, data, and configuration to the PCRs and load the next stage.  Alternatively, they can skip the PCR test and just extend it if they don't care that they are running in an untrusted state.&lt;br /&gt;
&lt;br /&gt;
PCRs cannot be set to a given value.  The TPM only allows one to &amp;quot;extend&amp;quot; a PCR, which is an operation where the result is a SHA-1 hash that depends on the previous value of the PCR and on the data you give the TPM to extend the PCR with.  It is non-trivial to get the PCR to a desired value based only on its previous contents and the desired target value.&lt;br /&gt;
&lt;br /&gt;
It is obviously a total nightmare to update the system in a trusted platform scenario, as the contents of the PCRs starting from the update point will change.  A changed PCR immediately makes any data that was sealed based on its old value impossible to access.  This is one of the reasons why nobody is doing remote trusted platform assurance, except in very controlled scenarios right now.  New versions of the specifications around the trusted platform support specifications (like TPM 1.2) are trying to address this problem.&lt;br /&gt;
&lt;br /&gt;
Trusted Platform assurance with a TPM 1.1b isn't easy to do, but it is possible (and it is not in any way unbreakable!, but it is a lot better than nothing for many uses).&lt;br /&gt;
&lt;br /&gt;
The ThinkPad BIOS measures the boot loader and stores the relevant data on PCR registers and the TPCA log, so if one adds a trusted boot loader to the system (like trusted-grub), one can load a trusted operating system and from there, trusted userspace applications, etc.&lt;br /&gt;
&lt;br /&gt;
Note that LPC-bus tricks using modchips to trap and modify the data flow to the TPM chip can effectively bust the Trusted Platform assurance completely on any ThinkPads up to the T61/R61/X61. To avoid that, a TPM inside the northbridge is needed.  Intel plans to add a TPM 1.2 to their chipsets in 2008, so it is likely that the T62/X62/R62 TPMs won't be as vulnerable to hardware hacks.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPad BIOS TPM basics ===&lt;br /&gt;
&lt;br /&gt;
The TCG TCPA specification also defines PC BIOS behaviour and extensions to deal with the TPM chip and Trusted Platform requirements.  The ThinkPad BIOS is compliant to the TCG PC Client specification v1.1 (and, in new ThinkPads, maybe v1.2).&lt;br /&gt;
&lt;br /&gt;
This means that:&lt;br /&gt;
*The BIOS can be used to reset the TPM using physical presence (see above for the reset procedure);&lt;br /&gt;
*Physical presence is only available to the BIOS (unless you hack the BIOS or the hardware, obviously);&lt;br /&gt;
*The BIOS can be configured to log or not (which also means calculate PCRs) the checksum of some of the platform data. If you don't want the ESCD or NVRAM contents to interfere in PCR calculations, you need to disable their logging in the BIOS for example;&lt;br /&gt;
*The BIOS touches PCRs 0 to 7, but leaves PCRs 8 to 15 alone (zeroed);&lt;br /&gt;
*You can disable the TPM chip in the BIOS, and not worry about someone using it behind your back.  But they will be able to know that there is a TPM in the system (the chip can still be found, and will report its version, manufacturer, and disabled state), unless you remove all the kernel TPM support, including tpm_bios;&lt;br /&gt;
*The BIOS might use the TPM, so watch out for trouble if you have HDD passwords enabled, etc;&lt;br /&gt;
&lt;br /&gt;
==== PCR registers extended by the BIOS ====&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{prettytable}}&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; width=&amp;quot;10%&amp;quot; | '''PCR #'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; | '''Description (TCG PC client spec v1.1)'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; | '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== T43 26xx BIOS 1.29 ====&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| CRTM, BIOS, and platform extensions&lt;br /&gt;
| The BIOS logs many BIOS POST PCR extensions, probably hardware and firmware-related&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Platform configuration:&lt;br /&gt;
*BIOS ROM strings (BIOS version and checksum)&lt;br /&gt;
*NVRAM (Asset tag data)&lt;br /&gt;
*CMOS configuration (basic, always logged)&lt;br /&gt;
*CMOS configuration (extended)&lt;br /&gt;
*ESCD platform configuration data (like size of memory modules, etc)&lt;br /&gt;
*SMBIOS data (?)&lt;br /&gt;
|&lt;br /&gt;
*Useful when BIOS ROM logging is enabled, since one has to trust the BIOS and it is best to not let someone update it behind your back.  Upgrading the BIOS invalidates data sealed to this PCR, though&lt;br /&gt;
*NVRAM logging is useful to seal data to a particular asset tag&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Option ROM code&lt;br /&gt;
| Can be used to detect the addition/subtraction/upgrade of Option ROMs (extra BIOS code from third parties)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Option ROM configuration and data&lt;br /&gt;
| Not modified except for the event separator on my current T43 config&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| IPL Code (system bootstrap)&lt;br /&gt;
* BIOS password used to authorize booting (if any)&lt;br /&gt;
* Boot device used&lt;br /&gt;
* MBR/boot sector checksum (LILO, Grub stage 1, etc)&lt;br /&gt;
|&lt;br /&gt;
* The password hash itself of the BIOS user or supervisor password is used to extend this PCR&lt;br /&gt;
* When you reboot, if the box doesn't ask for a password, the PCR will have different contents (work around: go into BIOS and exit saving changes, so that you are asked the password again)&lt;br /&gt;
* Lets one seal data to a particular boot password and to the fact that the password was typed in the keyboard&lt;br /&gt;
* Takes into account the device used to boot, and the bootstrap code checksum&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| IPL Code configuration and data&lt;br /&gt;
| This PCR is reserved for the boot loader to extend with its configuration and whatever else it loads&lt;br /&gt;
*trusted-grub extends it with stage 1.5 and stage 2 checksums, grub.conf checksum, and kernel and initrd checksum&lt;br /&gt;
*Not modified by the BIOS itself, except for the event separator&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| State transitions and wake events&lt;br /&gt;
| Logs a WAKE EVENT 0 hash on power up and simple reset (same event)&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Reserved&lt;br /&gt;
| Not modified except for the event separator.  Reserved by the TCG for future use.&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| User PCRs&lt;br /&gt;
|&lt;br /&gt;
*Not modified by BIOS or bootstrap&lt;br /&gt;
*Still zeroed at end of Linux boot&lt;br /&gt;
*Can be used for whatever the user wants&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Using the TPM in Windows ===&lt;br /&gt;
&lt;br /&gt;
Just install the full IBM Security solution, and let it use the TPM.  What good it will do to increase the security of your data is unknown.&lt;br /&gt;
&lt;br /&gt;
=== Using the TPM in Linux ===&lt;br /&gt;
&lt;br /&gt;
This section is very incomplete, but here are some pointers to get you started:&lt;br /&gt;
&lt;br /&gt;
*Compile a 2.6.23 or later kernel with the driver for the tpm chip in your ThinkPad model enabled;&lt;br /&gt;
**You need to enable CONFIG_SECURITY to get securityfs, and CONFIG_KEYS to use eCryptfs TPM support;&lt;br /&gt;
**You need to enable tpm_bios to access the TCPA log;&lt;br /&gt;
*Make sure to mount the securityfs filesystem on /sys/kernel/security to access tpm_bios data (the TCPA log);&lt;br /&gt;
*You should use dm-crypt to have an encrypted swap partition with an ephemeral key;&lt;br /&gt;
*The TCPA log can be found in the securityfs directory, and it might help you understand how the BIOS and boot loaders are using the PCRs.  The first number for each event in the log is the number PCR register that was extended by that event;&lt;br /&gt;
*You need an up-to-date version of the TrouSerS software stack to use the TPM for anything other than reading the TPCA log;&lt;br /&gt;
*You need an up-to-date eCryptfs userspace (with TPM support compiled in) to use the TPM to store filesystem keys;&lt;br /&gt;
*Using the TPM as a PKCS11 token is possible, but I have no idea how safe it is, since that requires a null (well-known) SRK;&lt;br /&gt;
*trusted-grub can be used to play with the PCRs before Linux loads, and to checksum the Linux kernel and extend a PCR with that data;&lt;br /&gt;
*The PCRs can be read through sysfs, under the /sys/bus/platform/devices/tpm*/pcrs file for the TPM driver for your TPM chip;&lt;br /&gt;
*TrouSerS 0.3.1 tpm_getpubek seems not to work too well, it gets the PUBEK attributes wrong from the NSC TPM chip in a T43 (but the key data itself is correct).  Compare to sys/bus/platform/devices/tpm*/pubek to check yours.&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
===IBM Embedded Security Chip===&lt;br /&gt;
*ThinkPad {{T23}}&lt;br /&gt;
===IBM Embedded Security Subsystem===&lt;br /&gt;
*ThinkPad {{A30p}}&lt;br /&gt;
*ThinkPad {{R31}}&lt;br /&gt;
*ThinkPad {{T23}}, {{T30}}&lt;br /&gt;
*ThinkPad {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
&lt;br /&gt;
===IBM Embedded Security Subsystem 2.0===&lt;br /&gt;
*ThinkPad {{R32}}, {{R40}}, {{R50}}, {{R50p}}, {{R51}}, {{R51e}}, {{R52}}, {{R60}}, {{R61}}&lt;br /&gt;
*ThinkPad {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}, {{T60p}}, {{T61}}, {{T61p}}&lt;br /&gt;
*ThinkPad {{X30}}, {{X31}}, {{X32}}, {{X40}}, {{X41}}, {{X41T}}, {{X60}}, {{X60s}}, {{X61s}}, {{X61_Tablet}}, {{X200}}&lt;br /&gt;
*ThinkPad {{Z60m}}, {{Z60t}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]] &lt;br /&gt;
[[Category:Trusted Computing]]&lt;br /&gt;
&lt;br /&gt;
==TCPA/TCG clean models==&lt;br /&gt;
*all models produced before 2000&lt;br /&gt;
*all i Series models&lt;br /&gt;
*ThinkPad [[:Category:240X|240X]]&lt;br /&gt;
*ThinkPad [[:Category:A20m|A20m]], [[:Category:A20p|A20p]], [[:Category:A21e|A21e]], [[:Category:A21m|A21m]], [[:Category:A21p|A21p]], [[:Category:A22e|A22e]], [[:Category:A22m|A22m]], [[:Category:A22p|A22p]], [[:Category:A30|A30]]&lt;br /&gt;
*ThinkPad [[:Category:R50e|R50e]]&lt;br /&gt;
*ThinkPad [[:Category:T20|T20]], [[:Category:T21|T21]], [[:Category:T22|T22]]&lt;br /&gt;
*ThinkPad [[:Category:X20|X20]], [[:Category:X21|X21]], [[:Category:X22|X22]]&lt;br /&gt;
*ThinkPad [[:Category:TransNote|TransNote]]&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www.pc.ibm.com/us/think/thinkvantagetech/security.html IBMs ThinkVantage&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Technologies Embedded Security Subsystem page]&lt;br /&gt;
*[http://www.pc.ibm.com/presentations/us/thinkvantage/56/index.html?shortcut=ess&amp;amp; IBMs ThinkVantage&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Technologies Flash presentation - Embedded Security Subsystem]&lt;br /&gt;
*[https://www.trustedcomputinggroup.org/specs/PCClient/ TCG PC Client specifications]&lt;br /&gt;
*[http://www.research.ibm.com/gsal/tcpa/ IBM Research TCPA resources page]&lt;br /&gt;
*[http://sourceforge.net/projects/trustedgrub/ Trusted Grub]&lt;br /&gt;
*[https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux User-friendly HOWTO on using TPM under Linux]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=PowerTOP&amp;diff=33205</id>
		<title>PowerTOP</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=PowerTOP&amp;diff=33205"/>
		<updated>2007-09-17T20:41:00Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Intel PowerTOP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intel PowerTOP ==&lt;br /&gt;
&lt;br /&gt;
PowerTOP is a Linux tool that finds the software component(s) that make your laptop use more power than necessary while it is idle. As of Linux kernel version 2.6.21, the kernel no longer has a fixed 1000Hz timer tick. This will (in theory) give a huge power savings because the CPU stays in low power mode for longer periods of time during system idle.&lt;br /&gt;
&lt;br /&gt;
 [[Image:powertop_small.png]]&lt;br /&gt;
 The PowerTOP curses based display&lt;br /&gt;
'''Requirements'''&lt;br /&gt;
&lt;br /&gt;
For PowerTOP to work best, use a Linux kernel with the tickless idle (NO_HZ) feature enabled (version 2.6.21 or later). Currently, only 32-bit kernels have support for tickless idle; 64-bit kernels are expected to gain this feature in version 2.6.23. &lt;br /&gt;
&lt;br /&gt;
PowerTOP works best on a laptop computer, or at least a computer with an Intel mobile processor (certain small non-laptop devices also contain a mobile processor). When using PowerTOP on a laptop, do so when running on battery.&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxpowertop.org/powertop.php Link to PowerTOP]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=PowerTOP&amp;diff=33204</id>
		<title>PowerTOP</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=PowerTOP&amp;diff=33204"/>
		<updated>2007-09-17T20:35:33Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: â†Created page with '== Intel PowerTOP ==  PowerTOP is a Linux tool that finds the software component(s) that make your laptop use more power than necessary while it is idle. As of Linux kerne...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intel PowerTOP ==&lt;br /&gt;
&lt;br /&gt;
PowerTOP is a Linux tool that finds the software component(s) that make your laptop use more power than necessary while it is idle. As of Linux kernel version 2.6.21, the kernel no longer has a fixed 1000Hz timer tick. This will (in theory) give a huge power savings because the CPU stays in low power mode for longer periods of time during system idle.&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxpowertop.org/powertop.php [[Image:powertop_small.png]]]&lt;br /&gt;
 The PowerTOP curses based display&lt;br /&gt;
'''Requirements'''&lt;br /&gt;
&lt;br /&gt;
For PowerTOP to work best, use a Linux kernel with the tickless idle (NO_HZ) feature enabled (version 2.6.21 or later). Currently, only 32-bit kernels have support for tickless idle; 64-bit kernels are expected to gain this feature in version 2.6.23. &lt;br /&gt;
&lt;br /&gt;
PowerTOP works best on a laptop computer, or at least a computer with an Intel mobile processor (certain small non-laptop devices also contain a mobile processor). When using PowerTOP on a laptop, do so when running on battery.&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=File:Powertop_small.png&amp;diff=33203</id>
		<title>File:Powertop small.png</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=File:Powertop_small.png&amp;diff=33203"/>
		<updated>2007-09-17T20:20:43Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: Screenshot of PowerTOP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of PowerTOP&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_configure_acpid&amp;diff=32872</id>
		<title>How to configure acpid</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_configure_acpid&amp;diff=32872"/>
		<updated>2007-09-02T19:28:07Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Event Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
==Introduction==&lt;br /&gt;
Basically, [[acpid]] just executes scripts residing in {{path|/etc/acpi/actions}}. Which script to launch at which event is configured in several files in {{path|/etc/acpi/events}}. All actions are documented in {{path|/var/log/acpid}}.&lt;br /&gt;
&lt;br /&gt;
==Sources of Information==&lt;br /&gt;
*{{cmduser|man acpid}} holds detailed information on how to configure acpid.&lt;br /&gt;
*The [[ibm-acpi]] package includes example scripts in the {{path|config}} folder inside the tarball. They are a good starting point to adjust them to your needs.&lt;br /&gt;
*You also might want to have a look at the [[Configs#ACPI | ACPI section of the Configs page]] or the [[:Category:Scripts|Scripts]] repository.&lt;br /&gt;
*And you can find information about the event strings [[ibm-acpi]] generates for certain keys at the [[How to get special keys to work#ibm-acpi_events | Special Keys HOWTO]].&lt;br /&gt;
&lt;br /&gt;
==Example: go to sleep on lid close==&lt;br /&gt;
To make the ThinkPad go to sleep when you close the lid, you need to add&lt;br /&gt;
an event handler for the lid event and an action script that takes care&lt;br /&gt;
of going to sleep and resuming.&lt;br /&gt;
&lt;br /&gt;
===Event Script===&lt;br /&gt;
The event script needs to be created within {{path|/etc/acpi/events}} and can have any name you like.&lt;br /&gt;
In this case we call it lid because it will trigger the lid event. Do {{cmdroot|vi /etc/acpi/events/lid}} and make it look like this:&lt;br /&gt;
 event=button/lid&lt;br /&gt;
 action=/etc/acpi/actions/sleep.sh %e&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;event&amp;quot; line is a regular expression specifying the events we're&lt;br /&gt;
interested in. You can determine what the event strings are from looking at&lt;br /&gt;
{{path|/var/log/acpid}} after trying to suspend, close the lid, etc. .&lt;br /&gt;
You can find information about the event strings [[ibm-acpi]] generates for certain keys at the [[How to get special keys to work#ibm-acpi_events | Special Keys HOWTO]].&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;action&amp;quot; line is the command to be executed when these events are&lt;br /&gt;
dispatched. In this example we call the {{path|sleep.sh}} script residing in {{path|/etc/acpi/actions}} and pass the event description text using the %e placeholder.&lt;br /&gt;
&lt;br /&gt;
For the script you can use the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script of [http://www.tuxonice.net/ Tux On Ice] (it is independent of the [[ www.suspend2.net | suspend-to-disk]] functionality), or any of many examples available on the web, such as the one below.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|To make your changes take effect after adding or modifying the events files you must do a &amp;lt;tt&amp;gt;kill -SIGHUP `pidof acpid`&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===Action Script===&lt;br /&gt;
Our example {{path|/etc/acpi/actions/sleep.sh}} script looks as follows:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # if launched through a lid event and lid is open, do nothing&lt;br /&gt;
 echo &amp;quot;$1&amp;quot; | grep &amp;quot;button/lid&amp;quot; &amp;amp;&amp;amp; grep -q open /proc/acpi/button/lid/LID/state &amp;amp;&amp;amp; exit 0&lt;br /&gt;
 &lt;br /&gt;
 # remove USB 1.1 driver&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
  &lt;br /&gt;
 # sync filesystem and clock&lt;br /&gt;
 sync&lt;br /&gt;
 /sbin/hwclock --systohc&lt;br /&gt;
 &lt;br /&gt;
 # switch to console&lt;br /&gt;
 FGCONSOLE=`fgconsole`&lt;br /&gt;
 chvt 6&lt;br /&gt;
 /usr/sbin/radeontool light off&lt;br /&gt;
 &lt;br /&gt;
 # go to sleep&lt;br /&gt;
 sleep 5 &amp;amp;&amp;amp; echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state&lt;br /&gt;
 &lt;br /&gt;
 # readjust the clock (it might be off a bit after suspend)&lt;br /&gt;
 /sbin/hwclock --adjust&lt;br /&gt;
 /sbin/hwclock --hctosys&lt;br /&gt;
 &lt;br /&gt;
 # reload USB 1.1 driver&lt;br /&gt;
 modprobe uhci_hcd&lt;br /&gt;
 &lt;br /&gt;
 # turn on the backlight and switch back to X&lt;br /&gt;
 radeontool light on&lt;br /&gt;
 chvt $FGCONSOLE&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This parts of this script are now part of some distributions, like Debian Etch and you probably don't need to add this script. Look into /etc/acpi/lid.sh, for example.}}&lt;br /&gt;
&lt;br /&gt;
====Explanations====&lt;br /&gt;
*The lid generates an event for both opening and closing thus requiring that we check its state and only act if it's closed.&lt;br /&gt;
*There have been problems encountered with the USB devices not working properly after a resume from suspend. To circumvent those we remove the USB driver prior to suspend and reload it afterwards.&lt;br /&gt;
*Note that the {{cmdroot|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} line does not return until we are revived. So there is only one event generated and there is no need to check the state of anything.&lt;br /&gt;
*The console switching code in this script is a special solution for [[Problem with LCD backlight remaining on during ACPI sleep|a problem where the backlight doesn't switch off]] on the {{T30}} and some other models. Before going to sleep, these models switch to console mode which causes the backlight to come back on. So we preemptively switch to console mode and turn off the backlight using [[radeontool]] before going to sleep.&lt;br /&gt;
&lt;br /&gt;
==Screen blanking script==&lt;br /&gt;
&lt;br /&gt;
You might want to be able to switch of the screen using Fn-f3.&lt;br /&gt;
This is not completely straightforward.&lt;br /&gt;
You will first  need to give permission to the script to muck around with your screen&lt;br /&gt;
&lt;br /&gt;
 xhost +local:root &lt;br /&gt;
&lt;br /&gt;
/etc/acpi/events/sleepbtn &lt;br /&gt;
contains&lt;br /&gt;
 event=(button[ /]sleep|ibm/hotkey HKEY 00000080 00001004)&lt;br /&gt;
 action=/etc/acpi/sleepbtn.sh&lt;br /&gt;
&lt;br /&gt;
And /etc/acpi/sleepbtn.sh is &lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # simple script to turn the display on or off      #&lt;br /&gt;
 # By Mahram Z.Foadi                                                           #&lt;br /&gt;
 # Oct 22 2005                                                                 # &lt;br /&gt;
 # thank you linuxquestions.org                                                #&lt;br /&gt;
 #                                                                             # &lt;br /&gt;
 # the following lines must be present in your &amp;quot;/etc/acpi/events/&amp;quot; files. Some #&lt;br /&gt;
 # systems already have a file called sample.conf in the mentioned directory   #&lt;br /&gt;
 # rename it to something more meaningful (i.e. acpid.conf) and these lines to #&lt;br /&gt;
 # the end of it  (you don't HAVE to rename it, you can even create a new file #&lt;br /&gt;
 # and call it /etc/acpi/events/lid.conf with the 2 lines in it. If you intend #&lt;br /&gt;
 # to put this file anywhere other than /sbin/lidevent, make sure you make the #&lt;br /&gt;
 # proper changes in the &amp;quot;action&amp;quot; line below. For example if you are going to  #&lt;br /&gt;
 # save this script as /usr/bin/mylid.sh then the action line should be:       #&lt;br /&gt;
 # action=/usr/bin/mylid.sh                                                    #&lt;br /&gt;
 # be sure both files are executable, writable, and owned by root ONLY because #&lt;br /&gt;
 # the acpid daemon is most likely running as root in your system              #&lt;br /&gt;
 #                                                                             #&lt;br /&gt;
 #     ---- insert the two lines below in /etc/acpi/events/acpid.conf ----     #&lt;br /&gt;
 # event=button/lid.*                                                          #&lt;br /&gt;
 # action=/sbin/lidevent                                                       #&lt;br /&gt;
 #-----------------------------------------------------------------------------#&lt;br /&gt;
 &lt;br /&gt;
 # default display on current host&lt;br /&gt;
 DISPLAY=:0.0&lt;br /&gt;
 &lt;br /&gt;
 # find out if DPMS is enabled&lt;br /&gt;
 STATUS=`xset -display $DISPLAY -q | grep -e 'DPMS is'`&lt;br /&gt;
 &lt;br /&gt;
 # enable DPMS if disabled&lt;br /&gt;
 if [ &amp;quot;$STATUS&amp;quot; == &amp;quot;  DPMS is Disabled&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 	echo &amp;quot;Enabling DPMS ...&amp;quot;&lt;br /&gt;
 	xset -display $DISPLAY +dpms&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
  # find out if monitor is on&lt;br /&gt;
 STATUS=`xset -display $DISPLAY -q | grep 'Monitor'`&lt;br /&gt;
 &lt;br /&gt;
 if [ &amp;quot;$STATUS&amp;quot; == &amp;quot;  Monitor is On&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 	echo &amp;quot;[`date`] Turning display OFF&amp;quot;&lt;br /&gt;
 	xset -display $DISPLAY dpms force off&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;[`date`] Turning display ON&amp;quot;		# shows up in log&lt;br /&gt;
 	xset -display $DISPLAY dpms force on		# turn monitor on&lt;br /&gt;
  	xset -display $DISPLAY s activate		# un-blank monitor&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #clean up&lt;br /&gt;
 unset STATUS&lt;br /&gt;
 &lt;br /&gt;
 # comment this line out if you're manually running this script from a shell (put a # in front of it)&lt;br /&gt;
 unset DISPLAY&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
 &lt;br /&gt;
An alternative is to call radeontool (if you have a radeon videocard only of course)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
*If something doesn't work, your first action should be a {{cmdroot|tail /var/log/acpid}}. It will tell you a lot about what is going on. If it has &amp;quot;Permission denied&amp;quot; errors, check the permissions of your {{path|/etc/acpi/actions}} scripts (especially make sure that the executable bit is set). Also check the permissions for other involved files like i.e. device nodes.&lt;br /&gt;
*For further problems look at the [[Problems with ACPI suspend-to-ram|Problems with ACPI suspend-to-ram page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:770X]] [[Category:770Z]] [[Category:A20m]] [[Category:A20p]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[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:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]]  [[Category:Z60t]] [[Category:Z60m]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_configure_acpid&amp;diff=32871</id>
		<title>How to configure acpid</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_configure_acpid&amp;diff=32871"/>
		<updated>2007-09-02T19:20:14Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Event Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
==Introduction==&lt;br /&gt;
Basically, [[acpid]] just executes scripts residing in {{path|/etc/acpi/actions}}. Which script to launch at which event is configured in several files in {{path|/etc/acpi/events}}. All actions are documented in {{path|/var/log/acpid}}.&lt;br /&gt;
&lt;br /&gt;
==Sources of Information==&lt;br /&gt;
*{{cmduser|man acpid}} holds detailed information on how to configure acpid.&lt;br /&gt;
*The [[ibm-acpi]] package includes example scripts in the {{path|config}} folder inside the tarball. They are a good starting point to adjust them to your needs.&lt;br /&gt;
*You also might want to have a look at the [[Configs#ACPI | ACPI section of the Configs page]] or the [[:Category:Scripts|Scripts]] repository.&lt;br /&gt;
*And you can find information about the event strings [[ibm-acpi]] generates for certain keys at the [[How to get special keys to work#ibm-acpi_events | Special Keys HOWTO]].&lt;br /&gt;
&lt;br /&gt;
==Example: go to sleep on lid close==&lt;br /&gt;
To make the ThinkPad go to sleep when you close the lid, you need to add&lt;br /&gt;
an event handler for the lid event and an action script that takes care&lt;br /&gt;
of going to sleep and resuming.&lt;br /&gt;
&lt;br /&gt;
===Event Script===&lt;br /&gt;
The event script needs to be created within {{path|/etc/acpi/events}} and can have any name you like.&lt;br /&gt;
In this case we call it lid because it will trigger the lid event. Do {{cmdroot|vi /etc/acpi/events/lid}} and make it look like this:&lt;br /&gt;
 event=button/lid&lt;br /&gt;
 action=/etc/acpi/actions/sleep.sh %e&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;event&amp;quot; line is a regular expression specifying the events we're&lt;br /&gt;
interested in. You can determine what the event strings are from looking at&lt;br /&gt;
{{path|/var/log/acpid}} after trying to suspend, close the lid, etc. .&lt;br /&gt;
You can find information about the event strings [[ibm-acpi]] generates for certain keys at the [[How to get special keys to work#ibm-acpi_events | Special Keys HOWTO]].&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;action&amp;quot; line is the command to be executed when these events are&lt;br /&gt;
dispatched. In this example we call the {{path|sleep.sh}} script residing in {{path|/etc/acpi/actions}} and pass the event description text using the %e placeholder.&lt;br /&gt;
&lt;br /&gt;
For the script you can use the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script of [http://www.tuxonice.net/ Tux On Ice] (it is independent of the [[Tux on Ice | suspend-to-disk]] functionality), or any of many examples available on the web, such as the one below.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|To make your changes take effect after adding or modifying the events files you must do a &amp;lt;tt&amp;gt;kill -SIGHUP `pidof acpid`&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===Action Script===&lt;br /&gt;
Our example {{path|/etc/acpi/actions/sleep.sh}} script looks as follows:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # if launched through a lid event and lid is open, do nothing&lt;br /&gt;
 echo &amp;quot;$1&amp;quot; | grep &amp;quot;button/lid&amp;quot; &amp;amp;&amp;amp; grep -q open /proc/acpi/button/lid/LID/state &amp;amp;&amp;amp; exit 0&lt;br /&gt;
 &lt;br /&gt;
 # remove USB 1.1 driver&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
  &lt;br /&gt;
 # sync filesystem and clock&lt;br /&gt;
 sync&lt;br /&gt;
 /sbin/hwclock --systohc&lt;br /&gt;
 &lt;br /&gt;
 # switch to console&lt;br /&gt;
 FGCONSOLE=`fgconsole`&lt;br /&gt;
 chvt 6&lt;br /&gt;
 /usr/sbin/radeontool light off&lt;br /&gt;
 &lt;br /&gt;
 # go to sleep&lt;br /&gt;
 sleep 5 &amp;amp;&amp;amp; echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state&lt;br /&gt;
 &lt;br /&gt;
 # readjust the clock (it might be off a bit after suspend)&lt;br /&gt;
 /sbin/hwclock --adjust&lt;br /&gt;
 /sbin/hwclock --hctosys&lt;br /&gt;
 &lt;br /&gt;
 # reload USB 1.1 driver&lt;br /&gt;
 modprobe uhci_hcd&lt;br /&gt;
 &lt;br /&gt;
 # turn on the backlight and switch back to X&lt;br /&gt;
 radeontool light on&lt;br /&gt;
 chvt $FGCONSOLE&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This parts of this script are now part of some distributions, like Debian Etch and you probably don't need to add this script. Look into /etc/acpi/lid.sh, for example.}}&lt;br /&gt;
&lt;br /&gt;
====Explanations====&lt;br /&gt;
*The lid generates an event for both opening and closing thus requiring that we check its state and only act if it's closed.&lt;br /&gt;
*There have been problems encountered with the USB devices not working properly after a resume from suspend. To circumvent those we remove the USB driver prior to suspend and reload it afterwards.&lt;br /&gt;
*Note that the {{cmdroot|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} line does not return until we are revived. So there is only one event generated and there is no need to check the state of anything.&lt;br /&gt;
*The console switching code in this script is a special solution for [[Problem with LCD backlight remaining on during ACPI sleep|a problem where the backlight doesn't switch off]] on the {{T30}} and some other models. Before going to sleep, these models switch to console mode which causes the backlight to come back on. So we preemptively switch to console mode and turn off the backlight using [[radeontool]] before going to sleep.&lt;br /&gt;
&lt;br /&gt;
==Screen blanking script==&lt;br /&gt;
&lt;br /&gt;
You might want to be able to switch of the screen using Fn-f3.&lt;br /&gt;
This is not completely straightforward.&lt;br /&gt;
You will first  need to give permission to the script to muck around with your screen&lt;br /&gt;
&lt;br /&gt;
 xhost +local:root &lt;br /&gt;
&lt;br /&gt;
/etc/acpi/events/sleepbtn &lt;br /&gt;
contains&lt;br /&gt;
 event=(button[ /]sleep|ibm/hotkey HKEY 00000080 00001004)&lt;br /&gt;
 action=/etc/acpi/sleepbtn.sh&lt;br /&gt;
&lt;br /&gt;
And /etc/acpi/sleepbtn.sh is &lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # simple script to turn the display on or off      #&lt;br /&gt;
 # By Mahram Z.Foadi                                                           #&lt;br /&gt;
 # Oct 22 2005                                                                 # &lt;br /&gt;
 # thank you linuxquestions.org                                                #&lt;br /&gt;
 #                                                                             # &lt;br /&gt;
 # the following lines must be present in your &amp;quot;/etc/acpi/events/&amp;quot; files. Some #&lt;br /&gt;
 # systems already have a file called sample.conf in the mentioned directory   #&lt;br /&gt;
 # rename it to something more meaningful (i.e. acpid.conf) and these lines to #&lt;br /&gt;
 # the end of it  (you don't HAVE to rename it, you can even create a new file #&lt;br /&gt;
 # and call it /etc/acpi/events/lid.conf with the 2 lines in it. If you intend #&lt;br /&gt;
 # to put this file anywhere other than /sbin/lidevent, make sure you make the #&lt;br /&gt;
 # proper changes in the &amp;quot;action&amp;quot; line below. For example if you are going to  #&lt;br /&gt;
 # save this script as /usr/bin/mylid.sh then the action line should be:       #&lt;br /&gt;
 # action=/usr/bin/mylid.sh                                                    #&lt;br /&gt;
 # be sure both files are executable, writable, and owned by root ONLY because #&lt;br /&gt;
 # the acpid daemon is most likely running as root in your system              #&lt;br /&gt;
 #                                                                             #&lt;br /&gt;
 #     ---- insert the two lines below in /etc/acpi/events/acpid.conf ----     #&lt;br /&gt;
 # event=button/lid.*                                                          #&lt;br /&gt;
 # action=/sbin/lidevent                                                       #&lt;br /&gt;
 #-----------------------------------------------------------------------------#&lt;br /&gt;
 &lt;br /&gt;
 # default display on current host&lt;br /&gt;
 DISPLAY=:0.0&lt;br /&gt;
 &lt;br /&gt;
 # find out if DPMS is enabled&lt;br /&gt;
 STATUS=`xset -display $DISPLAY -q | grep -e 'DPMS is'`&lt;br /&gt;
 &lt;br /&gt;
 # enable DPMS if disabled&lt;br /&gt;
 if [ &amp;quot;$STATUS&amp;quot; == &amp;quot;  DPMS is Disabled&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 	echo &amp;quot;Enabling DPMS ...&amp;quot;&lt;br /&gt;
 	xset -display $DISPLAY +dpms&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
  # find out if monitor is on&lt;br /&gt;
 STATUS=`xset -display $DISPLAY -q | grep 'Monitor'`&lt;br /&gt;
 &lt;br /&gt;
 if [ &amp;quot;$STATUS&amp;quot; == &amp;quot;  Monitor is On&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 	echo &amp;quot;[`date`] Turning display OFF&amp;quot;&lt;br /&gt;
 	xset -display $DISPLAY dpms force off&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;[`date`] Turning display ON&amp;quot;		# shows up in log&lt;br /&gt;
 	xset -display $DISPLAY dpms force on		# turn monitor on&lt;br /&gt;
  	xset -display $DISPLAY s activate		# un-blank monitor&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #clean up&lt;br /&gt;
 unset STATUS&lt;br /&gt;
 &lt;br /&gt;
 # comment this line out if you're manually running this script from a shell (put a # in front of it)&lt;br /&gt;
 unset DISPLAY&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
 &lt;br /&gt;
An alternative is to call radeontool (if you have a radeon videocard only of course)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
*If something doesn't work, your first action should be a {{cmdroot|tail /var/log/acpid}}. It will tell you a lot about what is going on. If it has &amp;quot;Permission denied&amp;quot; errors, check the permissions of your {{path|/etc/acpi/actions}} scripts (especially make sure that the executable bit is set). Also check the permissions for other involved files like i.e. device nodes.&lt;br /&gt;
*For further problems look at the [[Problems with ACPI suspend-to-ram|Problems with ACPI suspend-to-ram page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:770X]] [[Category:770Z]] [[Category:A20m]] [[Category:A20p]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[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:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]]  [[Category:Z60t]] [[Category:Z60m]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32860</id>
		<title>TuxOnIce</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32860"/>
		<updated>2007-09-02T09:12:57Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Availability / Project Homepage */&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;
===TuxOnIce (formerly &amp;quot;Software Suspend 2&amp;quot;)===&lt;br /&gt;
TuxOnIce, formerly called as &amp;quot;Software Suspend 2&amp;quot;, &amp;quot;suspend2&amp;quot; or &amp;quot;swsusp2&amp;quot;, is an implementation of suspend-to-disk functionality in the form of a Linux kernel patch and several userspace utilities. It is an alternative to both the BIOS-driven hibernation feature found on most ThinkPad models, and the [[swsusp]] &amp;quot;software suspend&amp;quot; functionality built into recent Linux kernels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Compared to the alternatives, TuxOnIce has some unique [http://www.tuxonice.net/features  features]:&lt;br /&gt;
* Saving the memory image into a swap file, a swap partition or a normal file on any filesystem.&lt;br /&gt;
* Cancelling a suspend in progress.&lt;br /&gt;
* Different bugs -- if the alternatives don't work, try this one!&lt;br /&gt;
&lt;br /&gt;
It also have the following advantages over [[swsusp]] (these features are also provided, in principle, by the not-yet-stable [[uswsusp]]):&lt;br /&gt;
* The ability to compress the memory image as it is written to disk, thereby reducing suspend and resume times.	 &lt;br /&gt;
* Control over amount of RAM written to disk -- can (optionally) discard cached disk blocks to reduce suspend and resume times.&lt;br /&gt;
* Textual and graphical UI (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since it is implemented purely in software, TuxOnIce is in principle machine-independent and should work on all modern ThinkPad models. However, in some cases problematic drivers need to be unloaded before suspension. This is handled by the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (see below).&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
* [http://www.tuxonice.net/ Project home page]&lt;br /&gt;
&lt;br /&gt;
==Model-specific Status==&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;| Thinkpad Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Kernel Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Suspend2 Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Note&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| {{240}}&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| Zenwalk 4.2&lt;br /&gt;
| 2.6.18.6&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60p}}&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 2.6.18.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf, SATA mode set to compatibility in BIOS and the DMA fix from [[Problems with SATA and Linux]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60}}&lt;br /&gt;
| 2007-77G&lt;br /&gt;
|&lt;br /&gt;
| 2.6.17.14&lt;br /&gt;
| 2.2.7.4&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| {{T42}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Might require &amp;quot;ProcSetting full_pageset2 1&amp;quot; in hibernate.conf. Fixed in 2.2.9.3&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T43}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| need to unload the sound module (&amp;lt;tt&amp;gt;snd-cs46xx&amp;lt;/tt&amp;gt;) on suspend. May want to enable UseDummyXServer if running X&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| 2647-4BG &lt;br /&gt;
| Ubuntu 6.10 Edgy Eft&lt;br /&gt;
| 2.6.17.10&lt;br /&gt;
| 2.2.7.6&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| I used experimental [http://3v1n0.tuxfamily.org/dists/edgy/suspend2/ Trevino's kernel packages]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
| {{X41T}}&lt;br /&gt;
| &lt;br /&gt;
| Fedore Core 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| requires SATA resume patch and the SATA drivers compiled as built-in or in initrd (see [[Problems with SATA and Linux]]) and a {{path|hibernate.conf}} fix (see [[Installing Fedora Core 4 on a ThinkPad X41 Tablet]])&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{X22}}&lt;br /&gt;
| &lt;br /&gt;
| Ubuntu Breezy&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Ubuntu (Breezy) on a ThinkPad X22]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{G41}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Debian on a ThinkPad G41]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51}}&lt;br /&gt;
| 1829&lt;br /&gt;
|&lt;br /&gt;
| 2.6.19.1-suspend2-2.2.9&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.6.16-suspend2-r8&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 8000&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R52}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.6.17.1&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| FC5 with kernel [http://mhensler.de/swsusp/download_en.php 2.6.17-1.2145_1.rhfc5.cubbi_suspend2]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T23}}&lt;br /&gt;
| 2647-9KU &lt;br /&gt;
| Debian Etch&lt;br /&gt;
| 2.6.17.4&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-55G &lt;br /&gt;
| Arch Linux&lt;br /&gt;
| 2.6.17.13&lt;br /&gt;
| 2.2.8&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|I use the [http://iphitus.loudas.com/beyond.html beyond] patchset&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-E8G &lt;br /&gt;
| Gentoo GNU/Linux&lt;br /&gt;
| 2.6.20.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| gentoo-sources-2.6.20-r8 with swsusp2 2.2.9 and some other patches. Suspend to disk worked ootb (also I tried 2.6.16 / swsusp2 2.2.5 and 2.6.19 / swsusp 2.2.9), but suspend to ram does not (a resume from hibernate-ram results in a fucked up X - console works). Workaround: Use acpi for suspend to ram: echo mem &amp;gt; /sys/power/state&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{Z61m}}&lt;br /&gt;
| 9452-CTO&lt;br /&gt;
| Kubuntu Edgy&lt;br /&gt;
| 2.6.17.10-generic &lt;br /&gt;
| 2.2.9 from experimental repository from http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| I have blacklisted these modules: tg3, tp_smapi, hdaps, uhci_hcd (fingerprintreader would not go into suspend), sdhci. More options in the hibernate scripts are &amp;quot;IbmAcpi&amp;quot; and &amp;quot;ProcSetting extra_pages_allowance 15000&amp;quot;. SATA mode set to compatibility in BIOS&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation Instructions==&lt;br /&gt;
The [http://www.tuxonice.net/ project home page] has a detailed HOWTO and FAQ. The following are just a few highlights.&lt;br /&gt;
&lt;br /&gt;
===Modifying the initrd generation scripts, and recreate initrd===&lt;br /&gt;
If your systems uses an &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file (most do), you'll need to patch or replace your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt;-creation script.&lt;br /&gt;
&lt;br /&gt;
*{{Fedora}} 4: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 echo &amp;quot;echo Mounted /proc filesystem&amp;quot; &amp;gt;&amp;gt; $RCFILE&lt;br /&gt;
and add the following immediately afterwards:&lt;br /&gt;
 echo &amp;quot;echo &amp;gt; /sys/power/suspend2/do_resume&amp;quot; &amp;gt;&amp;gt;$RCFILE&lt;br /&gt;
*{{Fedora}} 5: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 if [ -z &amp;quot;$noresume&amp;quot; -a -n &amp;quot;$swsuspdev&amp;quot; ]; then&lt;br /&gt;
and add the following immediately ''before'' the above:&lt;br /&gt;
 emit &amp;quot;echo 1 &amp;gt; /sys/power/suspend2/do_resume&amp;quot;&lt;br /&gt;
You can also use the [http://atrpms.net/dist/fc5/mkinitrd-suspend2/ mkinitrd-suspend2] package from atrpms.&lt;br /&gt;
*{{Debian}}: If your system uses mkinitrd to create the initrd, copy [http://dagobah.ucc.asn.au/swsusp/2.0.0.102/swsusp-initrd.sh swsusp-initrd.sh] script to your {{path|/etc/mkinitrd/scripts}} directory before creating initrd image. If you use initramfs-tools, put a similar script into {{path|/etc/initramfs-tools/scripts/local-top/}} (the manpage of initramfs has templates of example &amp;quot;boot scripts&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
In any case, make sure you regenerate your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file by reinstalling the kernel package or explicitly with mkinitrd or mkinitramfs commands.&lt;br /&gt;
&lt;br /&gt;
===Hibernate script===&lt;br /&gt;
TuxOnIce works best with the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (available from the project home page), which takes care of auxiliary tasks needed on many systems (e.g., unloading problematic modules and restoring video modes).&lt;br /&gt;
&lt;br /&gt;
====Availability====&lt;br /&gt;
*{{Gentoo}}: emerge hibernate-script&lt;br /&gt;
*{{Fedora}}: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&lt;br /&gt;
*{{Ubuntu}}: packages for Ubuntu Dapper Drake (kernel, hibernate, suspend2ui-userui): http://dagobah.ucc.asn.au/dapper-kernels/&lt;br /&gt;
*{{Ubuntu}}: experimental packages for Ubuntu Edgy Eft (kernel, hibernate, suspend2ui-userui): http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
*PLD: poldek -iv hibernate&lt;br /&gt;
*Other: check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://www.tuxonice.net&lt;br /&gt;
&lt;br /&gt;
==Configuration tips==&lt;br /&gt;
=== Crash fix ===&lt;br /&gt;
To avoid pages being resaved during suspend use kernel 2.6.19.2 and suspend2 2.2.9.1 (not stable yet)&lt;br /&gt;
OR add the following to&lt;br /&gt;
{{path|/etc/hibernate/suspend2.conf:}}&lt;br /&gt;
 ProcSetting full_pageset2 1&lt;br /&gt;
===RediSafe-like functionality===&lt;br /&gt;
The hibernate functionality on some ThinkPad BIOSes offers the useful &amp;quot;RediSafe&amp;quot; feature, which suspends to both RAM and disk. This way you get quick resumes (directly from RAM), plus the safey of suspend-to-disk in case the battery runs out.&lt;br /&gt;
&lt;br /&gt;
TuxOnIce provides this feature too; simply add the following to {{path|/etc/hibernate/suspend2.conf}}:&lt;br /&gt;
 PowerdownMethod 3&lt;br /&gt;
&lt;br /&gt;
===Be aware of possible filesystem corruption scenarios===&lt;br /&gt;
Certain usage scenarios can cause filesystem corruption with suspend2. Some details on this are in [http://www.tuxonice.net/HOWTO-4.html#ss4 the project's HOWTO]. None of the workaround configurations fix the problem satisfactorily, so be warned. In particular, with an ext3 root filesystem, if you suspend to swap partition, and then use sysrescCD/Knoppix/some other way to mount the root filesystem read-only, you risk data corruption when you try to resume from the suspended image.&lt;br /&gt;
&lt;br /&gt;
As far as possible, after suspending the system, don't touch the root filesystem unless you are resuming from it :)&lt;br /&gt;
[[Category:Patches]] [[Category:Drivers]]&lt;br /&gt;
&lt;br /&gt;
===ACPI Problem===&lt;br /&gt;
Also see [[Problems with ACPI suspend-to-ram]]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32859</id>
		<title>TuxOnIce</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32859"/>
		<updated>2007-09-02T09:09:43Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Be aware of possible filesystem corruption scenarios */&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;
===TuxOnIce (formerly &amp;quot;Software Suspend 2&amp;quot;)===&lt;br /&gt;
TuxOnIce, formerly called as &amp;quot;Software Suspend 2&amp;quot;, &amp;quot;suspend2&amp;quot; or &amp;quot;swsusp2&amp;quot;, is an implementation of suspend-to-disk functionality in the form of a Linux kernel patch and several userspace utilities. It is an alternative to both the BIOS-driven hibernation feature found on most ThinkPad models, and the [[swsusp]] &amp;quot;software suspend&amp;quot; functionality built into recent Linux kernels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Compared to the alternatives, TuxOnIce has some unique [http://www.tuxonice.net/features  features]:&lt;br /&gt;
* Saving the memory image into a swap file, a swap partition or a normal file on any filesystem.&lt;br /&gt;
* Cancelling a suspend in progress.&lt;br /&gt;
* Different bugs -- if the alternatives don't work, try this one!&lt;br /&gt;
&lt;br /&gt;
It also have the following advantages over [[swsusp]] (these features are also provided, in principle, by the not-yet-stable [[uswsusp]]):&lt;br /&gt;
* The ability to compress the memory image as it is written to disk, thereby reducing suspend and resume times.	 &lt;br /&gt;
* Control over amount of RAM written to disk -- can (optionally) discard cached disk blocks to reduce suspend and resume times.&lt;br /&gt;
* Textual and graphical UI (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since it is implemented purely in software, TuxOnIce is in principle machine-independent and should work on all modern ThinkPad models. However, in some cases problematic drivers need to be unloaded before suspension. This is handled by the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (see below).&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
* [http://tuxonice.net/ Project home page]&lt;br /&gt;
&lt;br /&gt;
==Model-specific Status==&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;| Thinkpad Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Kernel Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Suspend2 Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Note&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| {{240}}&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| Zenwalk 4.2&lt;br /&gt;
| 2.6.18.6&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60p}}&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 2.6.18.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf, SATA mode set to compatibility in BIOS and the DMA fix from [[Problems with SATA and Linux]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60}}&lt;br /&gt;
| 2007-77G&lt;br /&gt;
|&lt;br /&gt;
| 2.6.17.14&lt;br /&gt;
| 2.2.7.4&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| {{T42}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Might require &amp;quot;ProcSetting full_pageset2 1&amp;quot; in hibernate.conf. Fixed in 2.2.9.3&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T43}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| need to unload the sound module (&amp;lt;tt&amp;gt;snd-cs46xx&amp;lt;/tt&amp;gt;) on suspend. May want to enable UseDummyXServer if running X&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| 2647-4BG &lt;br /&gt;
| Ubuntu 6.10 Edgy Eft&lt;br /&gt;
| 2.6.17.10&lt;br /&gt;
| 2.2.7.6&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| I used experimental [http://3v1n0.tuxfamily.org/dists/edgy/suspend2/ Trevino's kernel packages]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
| {{X41T}}&lt;br /&gt;
| &lt;br /&gt;
| Fedore Core 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| requires SATA resume patch and the SATA drivers compiled as built-in or in initrd (see [[Problems with SATA and Linux]]) and a {{path|hibernate.conf}} fix (see [[Installing Fedora Core 4 on a ThinkPad X41 Tablet]])&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{X22}}&lt;br /&gt;
| &lt;br /&gt;
| Ubuntu Breezy&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Ubuntu (Breezy) on a ThinkPad X22]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{G41}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Debian on a ThinkPad G41]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51}}&lt;br /&gt;
| 1829&lt;br /&gt;
|&lt;br /&gt;
| 2.6.19.1-suspend2-2.2.9&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.6.16-suspend2-r8&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 8000&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R52}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.6.17.1&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| FC5 with kernel [http://mhensler.de/swsusp/download_en.php 2.6.17-1.2145_1.rhfc5.cubbi_suspend2]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T23}}&lt;br /&gt;
| 2647-9KU &lt;br /&gt;
| Debian Etch&lt;br /&gt;
| 2.6.17.4&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-55G &lt;br /&gt;
| Arch Linux&lt;br /&gt;
| 2.6.17.13&lt;br /&gt;
| 2.2.8&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|I use the [http://iphitus.loudas.com/beyond.html beyond] patchset&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-E8G &lt;br /&gt;
| Gentoo GNU/Linux&lt;br /&gt;
| 2.6.20.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| gentoo-sources-2.6.20-r8 with swsusp2 2.2.9 and some other patches. Suspend to disk worked ootb (also I tried 2.6.16 / swsusp2 2.2.5 and 2.6.19 / swsusp 2.2.9), but suspend to ram does not (a resume from hibernate-ram results in a fucked up X - console works). Workaround: Use acpi for suspend to ram: echo mem &amp;gt; /sys/power/state&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{Z61m}}&lt;br /&gt;
| 9452-CTO&lt;br /&gt;
| Kubuntu Edgy&lt;br /&gt;
| 2.6.17.10-generic &lt;br /&gt;
| 2.2.9 from experimental repository from http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| I have blacklisted these modules: tg3, tp_smapi, hdaps, uhci_hcd (fingerprintreader would not go into suspend), sdhci. More options in the hibernate scripts are &amp;quot;IbmAcpi&amp;quot; and &amp;quot;ProcSetting extra_pages_allowance 15000&amp;quot;. SATA mode set to compatibility in BIOS&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation Instructions==&lt;br /&gt;
The [http://www.tuxonice.net/ project home page] has a detailed HOWTO and FAQ. The following are just a few highlights.&lt;br /&gt;
&lt;br /&gt;
===Modifying the initrd generation scripts, and recreate initrd===&lt;br /&gt;
If your systems uses an &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file (most do), you'll need to patch or replace your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt;-creation script.&lt;br /&gt;
&lt;br /&gt;
*{{Fedora}} 4: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 echo &amp;quot;echo Mounted /proc filesystem&amp;quot; &amp;gt;&amp;gt; $RCFILE&lt;br /&gt;
and add the following immediately afterwards:&lt;br /&gt;
 echo &amp;quot;echo &amp;gt; /sys/power/suspend2/do_resume&amp;quot; &amp;gt;&amp;gt;$RCFILE&lt;br /&gt;
*{{Fedora}} 5: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 if [ -z &amp;quot;$noresume&amp;quot; -a -n &amp;quot;$swsuspdev&amp;quot; ]; then&lt;br /&gt;
and add the following immediately ''before'' the above:&lt;br /&gt;
 emit &amp;quot;echo 1 &amp;gt; /sys/power/suspend2/do_resume&amp;quot;&lt;br /&gt;
You can also use the [http://atrpms.net/dist/fc5/mkinitrd-suspend2/ mkinitrd-suspend2] package from atrpms.&lt;br /&gt;
*{{Debian}}: If your system uses mkinitrd to create the initrd, copy [http://dagobah.ucc.asn.au/swsusp/2.0.0.102/swsusp-initrd.sh swsusp-initrd.sh] script to your {{path|/etc/mkinitrd/scripts}} directory before creating initrd image. If you use initramfs-tools, put a similar script into {{path|/etc/initramfs-tools/scripts/local-top/}} (the manpage of initramfs has templates of example &amp;quot;boot scripts&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
In any case, make sure you regenerate your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file by reinstalling the kernel package or explicitly with mkinitrd or mkinitramfs commands.&lt;br /&gt;
&lt;br /&gt;
===Hibernate script===&lt;br /&gt;
TuxOnIce works best with the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (available from the project home page), which takes care of auxiliary tasks needed on many systems (e.g., unloading problematic modules and restoring video modes).&lt;br /&gt;
&lt;br /&gt;
====Availability====&lt;br /&gt;
*{{Gentoo}}: emerge hibernate-script&lt;br /&gt;
*{{Fedora}}: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&lt;br /&gt;
*{{Ubuntu}}: packages for Ubuntu Dapper Drake (kernel, hibernate, suspend2ui-userui): http://dagobah.ucc.asn.au/dapper-kernels/&lt;br /&gt;
*{{Ubuntu}}: experimental packages for Ubuntu Edgy Eft (kernel, hibernate, suspend2ui-userui): http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
*PLD: poldek -iv hibernate&lt;br /&gt;
*Other: check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://www.tuxonice.net&lt;br /&gt;
&lt;br /&gt;
==Configuration tips==&lt;br /&gt;
=== Crash fix ===&lt;br /&gt;
To avoid pages being resaved during suspend use kernel 2.6.19.2 and suspend2 2.2.9.1 (not stable yet)&lt;br /&gt;
OR add the following to&lt;br /&gt;
{{path|/etc/hibernate/suspend2.conf:}}&lt;br /&gt;
 ProcSetting full_pageset2 1&lt;br /&gt;
===RediSafe-like functionality===&lt;br /&gt;
The hibernate functionality on some ThinkPad BIOSes offers the useful &amp;quot;RediSafe&amp;quot; feature, which suspends to both RAM and disk. This way you get quick resumes (directly from RAM), plus the safey of suspend-to-disk in case the battery runs out.&lt;br /&gt;
&lt;br /&gt;
TuxOnIce provides this feature too; simply add the following to {{path|/etc/hibernate/suspend2.conf}}:&lt;br /&gt;
 PowerdownMethod 3&lt;br /&gt;
&lt;br /&gt;
===Be aware of possible filesystem corruption scenarios===&lt;br /&gt;
Certain usage scenarios can cause filesystem corruption with suspend2. Some details on this are in [http://www.tuxonice.net/HOWTO-4.html#ss4 the project's HOWTO]. None of the workaround configurations fix the problem satisfactorily, so be warned. In particular, with an ext3 root filesystem, if you suspend to swap partition, and then use sysrescCD/Knoppix/some other way to mount the root filesystem read-only, you risk data corruption when you try to resume from the suspended image.&lt;br /&gt;
&lt;br /&gt;
As far as possible, after suspending the system, don't touch the root filesystem unless you are resuming from it :)&lt;br /&gt;
[[Category:Patches]] [[Category:Drivers]]&lt;br /&gt;
&lt;br /&gt;
===ACPI Problem===&lt;br /&gt;
Also see [[Problems with ACPI suspend-to-ram]]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32858</id>
		<title>TuxOnIce</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32858"/>
		<updated>2007-09-02T09:07:43Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Availability */&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;
===TuxOnIce (formerly &amp;quot;Software Suspend 2&amp;quot;)===&lt;br /&gt;
TuxOnIce, formerly called as &amp;quot;Software Suspend 2&amp;quot;, &amp;quot;suspend2&amp;quot; or &amp;quot;swsusp2&amp;quot;, is an implementation of suspend-to-disk functionality in the form of a Linux kernel patch and several userspace utilities. It is an alternative to both the BIOS-driven hibernation feature found on most ThinkPad models, and the [[swsusp]] &amp;quot;software suspend&amp;quot; functionality built into recent Linux kernels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Compared to the alternatives, TuxOnIce has some unique [http://www.tuxonice.net/features  features]:&lt;br /&gt;
* Saving the memory image into a swap file, a swap partition or a normal file on any filesystem.&lt;br /&gt;
* Cancelling a suspend in progress.&lt;br /&gt;
* Different bugs -- if the alternatives don't work, try this one!&lt;br /&gt;
&lt;br /&gt;
It also have the following advantages over [[swsusp]] (these features are also provided, in principle, by the not-yet-stable [[uswsusp]]):&lt;br /&gt;
* The ability to compress the memory image as it is written to disk, thereby reducing suspend and resume times.	 &lt;br /&gt;
* Control over amount of RAM written to disk -- can (optionally) discard cached disk blocks to reduce suspend and resume times.&lt;br /&gt;
* Textual and graphical UI (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since it is implemented purely in software, TuxOnIce is in principle machine-independent and should work on all modern ThinkPad models. However, in some cases problematic drivers need to be unloaded before suspension. This is handled by the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (see below).&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
* [http://tuxonice.net/ Project home page]&lt;br /&gt;
&lt;br /&gt;
==Model-specific Status==&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;| Thinkpad Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Kernel Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Suspend2 Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Note&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| {{240}}&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| Zenwalk 4.2&lt;br /&gt;
| 2.6.18.6&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60p}}&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 2.6.18.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf, SATA mode set to compatibility in BIOS and the DMA fix from [[Problems with SATA and Linux]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60}}&lt;br /&gt;
| 2007-77G&lt;br /&gt;
|&lt;br /&gt;
| 2.6.17.14&lt;br /&gt;
| 2.2.7.4&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| {{T42}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Might require &amp;quot;ProcSetting full_pageset2 1&amp;quot; in hibernate.conf. Fixed in 2.2.9.3&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T43}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| need to unload the sound module (&amp;lt;tt&amp;gt;snd-cs46xx&amp;lt;/tt&amp;gt;) on suspend. May want to enable UseDummyXServer if running X&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| 2647-4BG &lt;br /&gt;
| Ubuntu 6.10 Edgy Eft&lt;br /&gt;
| 2.6.17.10&lt;br /&gt;
| 2.2.7.6&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| I used experimental [http://3v1n0.tuxfamily.org/dists/edgy/suspend2/ Trevino's kernel packages]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
| {{X41T}}&lt;br /&gt;
| &lt;br /&gt;
| Fedore Core 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| requires SATA resume patch and the SATA drivers compiled as built-in or in initrd (see [[Problems with SATA and Linux]]) and a {{path|hibernate.conf}} fix (see [[Installing Fedora Core 4 on a ThinkPad X41 Tablet]])&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{X22}}&lt;br /&gt;
| &lt;br /&gt;
| Ubuntu Breezy&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Ubuntu (Breezy) on a ThinkPad X22]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{G41}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Debian on a ThinkPad G41]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51}}&lt;br /&gt;
| 1829&lt;br /&gt;
|&lt;br /&gt;
| 2.6.19.1-suspend2-2.2.9&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.6.16-suspend2-r8&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 8000&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R52}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.6.17.1&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| FC5 with kernel [http://mhensler.de/swsusp/download_en.php 2.6.17-1.2145_1.rhfc5.cubbi_suspend2]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T23}}&lt;br /&gt;
| 2647-9KU &lt;br /&gt;
| Debian Etch&lt;br /&gt;
| 2.6.17.4&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-55G &lt;br /&gt;
| Arch Linux&lt;br /&gt;
| 2.6.17.13&lt;br /&gt;
| 2.2.8&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|I use the [http://iphitus.loudas.com/beyond.html beyond] patchset&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-E8G &lt;br /&gt;
| Gentoo GNU/Linux&lt;br /&gt;
| 2.6.20.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| gentoo-sources-2.6.20-r8 with swsusp2 2.2.9 and some other patches. Suspend to disk worked ootb (also I tried 2.6.16 / swsusp2 2.2.5 and 2.6.19 / swsusp 2.2.9), but suspend to ram does not (a resume from hibernate-ram results in a fucked up X - console works). Workaround: Use acpi for suspend to ram: echo mem &amp;gt; /sys/power/state&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{Z61m}}&lt;br /&gt;
| 9452-CTO&lt;br /&gt;
| Kubuntu Edgy&lt;br /&gt;
| 2.6.17.10-generic &lt;br /&gt;
| 2.2.9 from experimental repository from http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| I have blacklisted these modules: tg3, tp_smapi, hdaps, uhci_hcd (fingerprintreader would not go into suspend), sdhci. More options in the hibernate scripts are &amp;quot;IbmAcpi&amp;quot; and &amp;quot;ProcSetting extra_pages_allowance 15000&amp;quot;. SATA mode set to compatibility in BIOS&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation Instructions==&lt;br /&gt;
The [http://www.tuxonice.net/ project home page] has a detailed HOWTO and FAQ. The following are just a few highlights.&lt;br /&gt;
&lt;br /&gt;
===Modifying the initrd generation scripts, and recreate initrd===&lt;br /&gt;
If your systems uses an &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file (most do), you'll need to patch or replace your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt;-creation script.&lt;br /&gt;
&lt;br /&gt;
*{{Fedora}} 4: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 echo &amp;quot;echo Mounted /proc filesystem&amp;quot; &amp;gt;&amp;gt; $RCFILE&lt;br /&gt;
and add the following immediately afterwards:&lt;br /&gt;
 echo &amp;quot;echo &amp;gt; /sys/power/suspend2/do_resume&amp;quot; &amp;gt;&amp;gt;$RCFILE&lt;br /&gt;
*{{Fedora}} 5: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 if [ -z &amp;quot;$noresume&amp;quot; -a -n &amp;quot;$swsuspdev&amp;quot; ]; then&lt;br /&gt;
and add the following immediately ''before'' the above:&lt;br /&gt;
 emit &amp;quot;echo 1 &amp;gt; /sys/power/suspend2/do_resume&amp;quot;&lt;br /&gt;
You can also use the [http://atrpms.net/dist/fc5/mkinitrd-suspend2/ mkinitrd-suspend2] package from atrpms.&lt;br /&gt;
*{{Debian}}: If your system uses mkinitrd to create the initrd, copy [http://dagobah.ucc.asn.au/swsusp/2.0.0.102/swsusp-initrd.sh swsusp-initrd.sh] script to your {{path|/etc/mkinitrd/scripts}} directory before creating initrd image. If you use initramfs-tools, put a similar script into {{path|/etc/initramfs-tools/scripts/local-top/}} (the manpage of initramfs has templates of example &amp;quot;boot scripts&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
In any case, make sure you regenerate your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file by reinstalling the kernel package or explicitly with mkinitrd or mkinitramfs commands.&lt;br /&gt;
&lt;br /&gt;
===Hibernate script===&lt;br /&gt;
TuxOnIce works best with the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (available from the project home page), which takes care of auxiliary tasks needed on many systems (e.g., unloading problematic modules and restoring video modes).&lt;br /&gt;
&lt;br /&gt;
====Availability====&lt;br /&gt;
*{{Gentoo}}: emerge hibernate-script&lt;br /&gt;
*{{Fedora}}: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&lt;br /&gt;
*{{Ubuntu}}: packages for Ubuntu Dapper Drake (kernel, hibernate, suspend2ui-userui): http://dagobah.ucc.asn.au/dapper-kernels/&lt;br /&gt;
*{{Ubuntu}}: experimental packages for Ubuntu Edgy Eft (kernel, hibernate, suspend2ui-userui): http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
*PLD: poldek -iv hibernate&lt;br /&gt;
*Other: check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://www.tuxonice.net&lt;br /&gt;
&lt;br /&gt;
==Configuration tips==&lt;br /&gt;
=== Crash fix ===&lt;br /&gt;
To avoid pages being resaved during suspend use kernel 2.6.19.2 and suspend2 2.2.9.1 (not stable yet)&lt;br /&gt;
OR add the following to&lt;br /&gt;
{{path|/etc/hibernate/suspend2.conf:}}&lt;br /&gt;
 ProcSetting full_pageset2 1&lt;br /&gt;
===RediSafe-like functionality===&lt;br /&gt;
The hibernate functionality on some ThinkPad BIOSes offers the useful &amp;quot;RediSafe&amp;quot; feature, which suspends to both RAM and disk. This way you get quick resumes (directly from RAM), plus the safey of suspend-to-disk in case the battery runs out.&lt;br /&gt;
&lt;br /&gt;
TuxOnIce provides this feature too; simply add the following to {{path|/etc/hibernate/suspend2.conf}}:&lt;br /&gt;
 PowerdownMethod 3&lt;br /&gt;
&lt;br /&gt;
===Be aware of possible filesystem corruption scenarios===&lt;br /&gt;
Certain usage scenarios can cause filesystem corruption with suspend2. Some details on this are in [http://www.suspend2.net/HOWTO-4.html#ss4 the project's HOWTO]. None of the workaround configurations fix the problem satisfactorily, so be warned. In particular, with an ext3 root filesystem, if you suspend to swap partition, and then use sysrescCD/Knoppix/some other way to mount the root filesystem read-only, you risk data corruption when you try to resume from the suspended image.&lt;br /&gt;
&lt;br /&gt;
As far as possible, after suspending the system, don't touch the root filesystem unless you are resuming from it :)&lt;br /&gt;
[[Category:Patches]] [[Category:Drivers]]&lt;br /&gt;
&lt;br /&gt;
===ACPI Problem===&lt;br /&gt;
Also see [[Problems with ACPI suspend-to-ram]]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32857</id>
		<title>TuxOnIce</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32857"/>
		<updated>2007-09-02T09:06:00Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Installation Instructions */&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;
===TuxOnIce (formerly &amp;quot;Software Suspend 2&amp;quot;)===&lt;br /&gt;
TuxOnIce, formerly called as &amp;quot;Software Suspend 2&amp;quot;, &amp;quot;suspend2&amp;quot; or &amp;quot;swsusp2&amp;quot;, is an implementation of suspend-to-disk functionality in the form of a Linux kernel patch and several userspace utilities. It is an alternative to both the BIOS-driven hibernation feature found on most ThinkPad models, and the [[swsusp]] &amp;quot;software suspend&amp;quot; functionality built into recent Linux kernels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Compared to the alternatives, TuxOnIce has some unique [http://www.tuxonice.net/features  features]:&lt;br /&gt;
* Saving the memory image into a swap file, a swap partition or a normal file on any filesystem.&lt;br /&gt;
* Cancelling a suspend in progress.&lt;br /&gt;
* Different bugs -- if the alternatives don't work, try this one!&lt;br /&gt;
&lt;br /&gt;
It also have the following advantages over [[swsusp]] (these features are also provided, in principle, by the not-yet-stable [[uswsusp]]):&lt;br /&gt;
* The ability to compress the memory image as it is written to disk, thereby reducing suspend and resume times.	 &lt;br /&gt;
* Control over amount of RAM written to disk -- can (optionally) discard cached disk blocks to reduce suspend and resume times.&lt;br /&gt;
* Textual and graphical UI (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since it is implemented purely in software, TuxOnIce is in principle machine-independent and should work on all modern ThinkPad models. However, in some cases problematic drivers need to be unloaded before suspension. This is handled by the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (see below).&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
* [http://tuxonice.net/ Project home page]&lt;br /&gt;
&lt;br /&gt;
==Model-specific Status==&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;| Thinkpad Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Kernel Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Suspend2 Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Note&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| {{240}}&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| Zenwalk 4.2&lt;br /&gt;
| 2.6.18.6&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60p}}&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 2.6.18.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf, SATA mode set to compatibility in BIOS and the DMA fix from [[Problems with SATA and Linux]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60}}&lt;br /&gt;
| 2007-77G&lt;br /&gt;
|&lt;br /&gt;
| 2.6.17.14&lt;br /&gt;
| 2.2.7.4&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| {{T42}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Might require &amp;quot;ProcSetting full_pageset2 1&amp;quot; in hibernate.conf. Fixed in 2.2.9.3&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T43}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| need to unload the sound module (&amp;lt;tt&amp;gt;snd-cs46xx&amp;lt;/tt&amp;gt;) on suspend. May want to enable UseDummyXServer if running X&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| 2647-4BG &lt;br /&gt;
| Ubuntu 6.10 Edgy Eft&lt;br /&gt;
| 2.6.17.10&lt;br /&gt;
| 2.2.7.6&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| I used experimental [http://3v1n0.tuxfamily.org/dists/edgy/suspend2/ Trevino's kernel packages]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
| {{X41T}}&lt;br /&gt;
| &lt;br /&gt;
| Fedore Core 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| requires SATA resume patch and the SATA drivers compiled as built-in or in initrd (see [[Problems with SATA and Linux]]) and a {{path|hibernate.conf}} fix (see [[Installing Fedora Core 4 on a ThinkPad X41 Tablet]])&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{X22}}&lt;br /&gt;
| &lt;br /&gt;
| Ubuntu Breezy&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Ubuntu (Breezy) on a ThinkPad X22]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{G41}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Debian on a ThinkPad G41]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51}}&lt;br /&gt;
| 1829&lt;br /&gt;
|&lt;br /&gt;
| 2.6.19.1-suspend2-2.2.9&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.6.16-suspend2-r8&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 8000&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R52}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.6.17.1&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| FC5 with kernel [http://mhensler.de/swsusp/download_en.php 2.6.17-1.2145_1.rhfc5.cubbi_suspend2]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T23}}&lt;br /&gt;
| 2647-9KU &lt;br /&gt;
| Debian Etch&lt;br /&gt;
| 2.6.17.4&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-55G &lt;br /&gt;
| Arch Linux&lt;br /&gt;
| 2.6.17.13&lt;br /&gt;
| 2.2.8&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|I use the [http://iphitus.loudas.com/beyond.html beyond] patchset&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-E8G &lt;br /&gt;
| Gentoo GNU/Linux&lt;br /&gt;
| 2.6.20.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| gentoo-sources-2.6.20-r8 with swsusp2 2.2.9 and some other patches. Suspend to disk worked ootb (also I tried 2.6.16 / swsusp2 2.2.5 and 2.6.19 / swsusp 2.2.9), but suspend to ram does not (a resume from hibernate-ram results in a fucked up X - console works). Workaround: Use acpi for suspend to ram: echo mem &amp;gt; /sys/power/state&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{Z61m}}&lt;br /&gt;
| 9452-CTO&lt;br /&gt;
| Kubuntu Edgy&lt;br /&gt;
| 2.6.17.10-generic &lt;br /&gt;
| 2.2.9 from experimental repository from http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| I have blacklisted these modules: tg3, tp_smapi, hdaps, uhci_hcd (fingerprintreader would not go into suspend), sdhci. More options in the hibernate scripts are &amp;quot;IbmAcpi&amp;quot; and &amp;quot;ProcSetting extra_pages_allowance 15000&amp;quot;. SATA mode set to compatibility in BIOS&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation Instructions==&lt;br /&gt;
The [http://www.tuxonice.net/ project home page] has a detailed HOWTO and FAQ. The following are just a few highlights.&lt;br /&gt;
&lt;br /&gt;
===Modifying the initrd generation scripts, and recreate initrd===&lt;br /&gt;
If your systems uses an &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file (most do), you'll need to patch or replace your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt;-creation script.&lt;br /&gt;
&lt;br /&gt;
*{{Fedora}} 4: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 echo &amp;quot;echo Mounted /proc filesystem&amp;quot; &amp;gt;&amp;gt; $RCFILE&lt;br /&gt;
and add the following immediately afterwards:&lt;br /&gt;
 echo &amp;quot;echo &amp;gt; /sys/power/suspend2/do_resume&amp;quot; &amp;gt;&amp;gt;$RCFILE&lt;br /&gt;
*{{Fedora}} 5: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 if [ -z &amp;quot;$noresume&amp;quot; -a -n &amp;quot;$swsuspdev&amp;quot; ]; then&lt;br /&gt;
and add the following immediately ''before'' the above:&lt;br /&gt;
 emit &amp;quot;echo 1 &amp;gt; /sys/power/suspend2/do_resume&amp;quot;&lt;br /&gt;
You can also use the [http://atrpms.net/dist/fc5/mkinitrd-suspend2/ mkinitrd-suspend2] package from atrpms.&lt;br /&gt;
*{{Debian}}: If your system uses mkinitrd to create the initrd, copy [http://dagobah.ucc.asn.au/swsusp/2.0.0.102/swsusp-initrd.sh swsusp-initrd.sh] script to your {{path|/etc/mkinitrd/scripts}} directory before creating initrd image. If you use initramfs-tools, put a similar script into {{path|/etc/initramfs-tools/scripts/local-top/}} (the manpage of initramfs has templates of example &amp;quot;boot scripts&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
In any case, make sure you regenerate your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file by reinstalling the kernel package or explicitly with mkinitrd or mkinitramfs commands.&lt;br /&gt;
&lt;br /&gt;
===Hibernate script===&lt;br /&gt;
TuxOnIce works best with the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (available from the project home page), which takes care of auxiliary tasks needed on many systems (e.g., unloading problematic modules and restoring video modes).&lt;br /&gt;
&lt;br /&gt;
====Availability====&lt;br /&gt;
*{{Gentoo}}: emerge hibernate-script&lt;br /&gt;
*{{Fedora}}: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&lt;br /&gt;
*{{Ubuntu}}: packages for Ubuntu Dapper Drake (kernel, hibernate, suspend2ui-userui): http://dagobah.ucc.asn.au/dapper-kernels/&lt;br /&gt;
*{{Ubuntu}}: experimental packages for Ubuntu Edgy Eft (kernel, hibernate, suspend2ui-userui): http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
*PLD: poldek -iv hibernate&lt;br /&gt;
*Other: check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://www.suspend2.net&lt;br /&gt;
&lt;br /&gt;
==Configuration tips==&lt;br /&gt;
=== Crash fix ===&lt;br /&gt;
To avoid pages being resaved during suspend use kernel 2.6.19.2 and suspend2 2.2.9.1 (not stable yet)&lt;br /&gt;
OR add the following to&lt;br /&gt;
{{path|/etc/hibernate/suspend2.conf:}}&lt;br /&gt;
 ProcSetting full_pageset2 1&lt;br /&gt;
===RediSafe-like functionality===&lt;br /&gt;
The hibernate functionality on some ThinkPad BIOSes offers the useful &amp;quot;RediSafe&amp;quot; feature, which suspends to both RAM and disk. This way you get quick resumes (directly from RAM), plus the safey of suspend-to-disk in case the battery runs out.&lt;br /&gt;
&lt;br /&gt;
TuxOnIce provides this feature too; simply add the following to {{path|/etc/hibernate/suspend2.conf}}:&lt;br /&gt;
 PowerdownMethod 3&lt;br /&gt;
&lt;br /&gt;
===Be aware of possible filesystem corruption scenarios===&lt;br /&gt;
Certain usage scenarios can cause filesystem corruption with suspend2. Some details on this are in [http://www.suspend2.net/HOWTO-4.html#ss4 the project's HOWTO]. None of the workaround configurations fix the problem satisfactorily, so be warned. In particular, with an ext3 root filesystem, if you suspend to swap partition, and then use sysrescCD/Knoppix/some other way to mount the root filesystem read-only, you risk data corruption when you try to resume from the suspended image.&lt;br /&gt;
&lt;br /&gt;
As far as possible, after suspending the system, don't touch the root filesystem unless you are resuming from it :)&lt;br /&gt;
[[Category:Patches]] [[Category:Drivers]]&lt;br /&gt;
&lt;br /&gt;
===ACPI Problem===&lt;br /&gt;
Also see [[Problems with ACPI suspend-to-ram]]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32856</id>
		<title>TuxOnIce</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32856"/>
		<updated>2007-09-02T09:03:51Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Installation Instructions */&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;
===TuxOnIce (formerly &amp;quot;Software Suspend 2&amp;quot;)===&lt;br /&gt;
TuxOnIce, formerly called as &amp;quot;Software Suspend 2&amp;quot;, &amp;quot;suspend2&amp;quot; or &amp;quot;swsusp2&amp;quot;, is an implementation of suspend-to-disk functionality in the form of a Linux kernel patch and several userspace utilities. It is an alternative to both the BIOS-driven hibernation feature found on most ThinkPad models, and the [[swsusp]] &amp;quot;software suspend&amp;quot; functionality built into recent Linux kernels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Compared to the alternatives, TuxOnIce has some unique [http://www.tuxonice.net/features  features]:&lt;br /&gt;
* Saving the memory image into a swap file, a swap partition or a normal file on any filesystem.&lt;br /&gt;
* Cancelling a suspend in progress.&lt;br /&gt;
* Different bugs -- if the alternatives don't work, try this one!&lt;br /&gt;
&lt;br /&gt;
It also have the following advantages over [[swsusp]] (these features are also provided, in principle, by the not-yet-stable [[uswsusp]]):&lt;br /&gt;
* The ability to compress the memory image as it is written to disk, thereby reducing suspend and resume times.	 &lt;br /&gt;
* Control over amount of RAM written to disk -- can (optionally) discard cached disk blocks to reduce suspend and resume times.&lt;br /&gt;
* Textual and graphical UI (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since it is implemented purely in software, TuxOnIce is in principle machine-independent and should work on all modern ThinkPad models. However, in some cases problematic drivers need to be unloaded before suspension. This is handled by the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (see below).&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
* [http://tuxonice.net/ Project home page]&lt;br /&gt;
&lt;br /&gt;
==Model-specific Status==&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;| Thinkpad Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Kernel Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Suspend2 Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Note&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| {{240}}&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| Zenwalk 4.2&lt;br /&gt;
| 2.6.18.6&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60p}}&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 2.6.18.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf, SATA mode set to compatibility in BIOS and the DMA fix from [[Problems with SATA and Linux]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60}}&lt;br /&gt;
| 2007-77G&lt;br /&gt;
|&lt;br /&gt;
| 2.6.17.14&lt;br /&gt;
| 2.2.7.4&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| {{T42}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Might require &amp;quot;ProcSetting full_pageset2 1&amp;quot; in hibernate.conf. Fixed in 2.2.9.3&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T43}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| need to unload the sound module (&amp;lt;tt&amp;gt;snd-cs46xx&amp;lt;/tt&amp;gt;) on suspend. May want to enable UseDummyXServer if running X&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| 2647-4BG &lt;br /&gt;
| Ubuntu 6.10 Edgy Eft&lt;br /&gt;
| 2.6.17.10&lt;br /&gt;
| 2.2.7.6&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| I used experimental [http://3v1n0.tuxfamily.org/dists/edgy/suspend2/ Trevino's kernel packages]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
| {{X41T}}&lt;br /&gt;
| &lt;br /&gt;
| Fedore Core 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| requires SATA resume patch and the SATA drivers compiled as built-in or in initrd (see [[Problems with SATA and Linux]]) and a {{path|hibernate.conf}} fix (see [[Installing Fedora Core 4 on a ThinkPad X41 Tablet]])&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{X22}}&lt;br /&gt;
| &lt;br /&gt;
| Ubuntu Breezy&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Ubuntu (Breezy) on a ThinkPad X22]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{G41}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Debian on a ThinkPad G41]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51}}&lt;br /&gt;
| 1829&lt;br /&gt;
|&lt;br /&gt;
| 2.6.19.1-suspend2-2.2.9&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.6.16-suspend2-r8&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 8000&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R52}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.6.17.1&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| FC5 with kernel [http://mhensler.de/swsusp/download_en.php 2.6.17-1.2145_1.rhfc5.cubbi_suspend2]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T23}}&lt;br /&gt;
| 2647-9KU &lt;br /&gt;
| Debian Etch&lt;br /&gt;
| 2.6.17.4&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-55G &lt;br /&gt;
| Arch Linux&lt;br /&gt;
| 2.6.17.13&lt;br /&gt;
| 2.2.8&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|I use the [http://iphitus.loudas.com/beyond.html beyond] patchset&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-E8G &lt;br /&gt;
| Gentoo GNU/Linux&lt;br /&gt;
| 2.6.20.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| gentoo-sources-2.6.20-r8 with swsusp2 2.2.9 and some other patches. Suspend to disk worked ootb (also I tried 2.6.16 / swsusp2 2.2.5 and 2.6.19 / swsusp 2.2.9), but suspend to ram does not (a resume from hibernate-ram results in a fucked up X - console works). Workaround: Use acpi for suspend to ram: echo mem &amp;gt; /sys/power/state&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{Z61m}}&lt;br /&gt;
| 9452-CTO&lt;br /&gt;
| Kubuntu Edgy&lt;br /&gt;
| 2.6.17.10-generic &lt;br /&gt;
| 2.2.9 from experimental repository from http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| I have blacklisted these modules: tg3, tp_smapi, hdaps, uhci_hcd (fingerprintreader would not go into suspend), sdhci. More options in the hibernate scripts are &amp;quot;IbmAcpi&amp;quot; and &amp;quot;ProcSetting extra_pages_allowance 15000&amp;quot;. SATA mode set to compatibility in BIOS&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation Instructions==&lt;br /&gt;
The [http://tuxonice.net/ project home page] has a detailed HOWTO and FAQ. The following are just a few highlights.&lt;br /&gt;
&lt;br /&gt;
===Modifying the initrd generation scripts, and recreate initrd===&lt;br /&gt;
If your systems uses an &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file (most do), you'll need to patch or replace your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt;-creation script.&lt;br /&gt;
&lt;br /&gt;
*{{Fedora}} 4: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 echo &amp;quot;echo Mounted /proc filesystem&amp;quot; &amp;gt;&amp;gt; $RCFILE&lt;br /&gt;
and add the following immediately afterwards:&lt;br /&gt;
 echo &amp;quot;echo &amp;gt; /sys/power/suspend2/do_resume&amp;quot; &amp;gt;&amp;gt;$RCFILE&lt;br /&gt;
*{{Fedora}} 5: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 if [ -z &amp;quot;$noresume&amp;quot; -a -n &amp;quot;$swsuspdev&amp;quot; ]; then&lt;br /&gt;
and add the following immediately ''before'' the above:&lt;br /&gt;
 emit &amp;quot;echo 1 &amp;gt; /sys/power/suspend2/do_resume&amp;quot;&lt;br /&gt;
You can also use the [http://atrpms.net/dist/fc5/mkinitrd-suspend2/ mkinitrd-suspend2] package from atrpms.&lt;br /&gt;
*{{Debian}}: If your system uses mkinitrd to create the initrd, copy [http://dagobah.ucc.asn.au/swsusp/2.0.0.102/swsusp-initrd.sh swsusp-initrd.sh] script to your {{path|/etc/mkinitrd/scripts}} directory before creating initrd image. If you use initramfs-tools, put a similar script into {{path|/etc/initramfs-tools/scripts/local-top/}} (the manpage of initramfs has templates of example &amp;quot;boot scripts&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
In any case, make sure you regenerate your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file by reinstalling the kernel package or explicitly with mkinitrd or mkinitramfs commands.&lt;br /&gt;
&lt;br /&gt;
===Hibernate script===&lt;br /&gt;
TuxOnIce works best with the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (available from the project home page), which takes care of auxiliary tasks needed on many systems (e.g., unloading problematic modules and restoring video modes).&lt;br /&gt;
&lt;br /&gt;
====Availability====&lt;br /&gt;
*{{Gentoo}}: emerge hibernate-script&lt;br /&gt;
*{{Fedora}}: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&lt;br /&gt;
*{{Ubuntu}}: packages for Ubuntu Dapper Drake (kernel, hibernate, suspend2ui-userui): http://dagobah.ucc.asn.au/dapper-kernels/&lt;br /&gt;
*{{Ubuntu}}: experimental packages for Ubuntu Edgy Eft (kernel, hibernate, suspend2ui-userui): http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
*PLD: poldek -iv hibernate&lt;br /&gt;
*Other: check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://www.suspend2.net&lt;br /&gt;
&lt;br /&gt;
==Configuration tips==&lt;br /&gt;
=== Crash fix ===&lt;br /&gt;
To avoid pages being resaved during suspend use kernel 2.6.19.2 and suspend2 2.2.9.1 (not stable yet)&lt;br /&gt;
OR add the following to&lt;br /&gt;
{{path|/etc/hibernate/suspend2.conf:}}&lt;br /&gt;
 ProcSetting full_pageset2 1&lt;br /&gt;
===RediSafe-like functionality===&lt;br /&gt;
The hibernate functionality on some ThinkPad BIOSes offers the useful &amp;quot;RediSafe&amp;quot; feature, which suspends to both RAM and disk. This way you get quick resumes (directly from RAM), plus the safey of suspend-to-disk in case the battery runs out.&lt;br /&gt;
&lt;br /&gt;
TuxOnIce provides this feature too; simply add the following to {{path|/etc/hibernate/suspend2.conf}}:&lt;br /&gt;
 PowerdownMethod 3&lt;br /&gt;
&lt;br /&gt;
===Be aware of possible filesystem corruption scenarios===&lt;br /&gt;
Certain usage scenarios can cause filesystem corruption with suspend2. Some details on this are in [http://www.suspend2.net/HOWTO-4.html#ss4 the project's HOWTO]. None of the workaround configurations fix the problem satisfactorily, so be warned. In particular, with an ext3 root filesystem, if you suspend to swap partition, and then use sysrescCD/Knoppix/some other way to mount the root filesystem read-only, you risk data corruption when you try to resume from the suspended image.&lt;br /&gt;
&lt;br /&gt;
As far as possible, after suspending the system, don't touch the root filesystem unless you are resuming from it :)&lt;br /&gt;
[[Category:Patches]] [[Category:Drivers]]&lt;br /&gt;
&lt;br /&gt;
===ACPI Problem===&lt;br /&gt;
Also see [[Problems with ACPI suspend-to-ram]]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32855</id>
		<title>TuxOnIce</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=TuxOnIce&amp;diff=32855"/>
		<updated>2007-09-02T09:02:01Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* Features */&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;
===TuxOnIce (formerly &amp;quot;Software Suspend 2&amp;quot;)===&lt;br /&gt;
TuxOnIce, formerly called as &amp;quot;Software Suspend 2&amp;quot;, &amp;quot;suspend2&amp;quot; or &amp;quot;swsusp2&amp;quot;, is an implementation of suspend-to-disk functionality in the form of a Linux kernel patch and several userspace utilities. It is an alternative to both the BIOS-driven hibernation feature found on most ThinkPad models, and the [[swsusp]] &amp;quot;software suspend&amp;quot; functionality built into recent Linux kernels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Compared to the alternatives, TuxOnIce has some unique [http://www.tuxonice.net/features  features]:&lt;br /&gt;
* Saving the memory image into a swap file, a swap partition or a normal file on any filesystem.&lt;br /&gt;
* Cancelling a suspend in progress.&lt;br /&gt;
* Different bugs -- if the alternatives don't work, try this one!&lt;br /&gt;
&lt;br /&gt;
It also have the following advantages over [[swsusp]] (these features are also provided, in principle, by the not-yet-stable [[uswsusp]]):&lt;br /&gt;
* The ability to compress the memory image as it is written to disk, thereby reducing suspend and resume times.	 &lt;br /&gt;
* Control over amount of RAM written to disk -- can (optionally) discard cached disk blocks to reduce suspend and resume times.&lt;br /&gt;
* Textual and graphical UI (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since it is implemented purely in software, TuxOnIce is in principle machine-independent and should work on all modern ThinkPad models. However, in some cases problematic drivers need to be unloaded before suspension. This is handled by the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (see below).&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
* [http://tuxonice.net/ Project home page]&lt;br /&gt;
&lt;br /&gt;
==Model-specific Status==&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;| Thinkpad Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Kernel Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Suspend2 Version&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Note&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| {{240}}&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| Zenwalk 4.2&lt;br /&gt;
| 2.6.18.6&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60p}}&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 2.6.18.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf, SATA mode set to compatibility in BIOS and the DMA fix from [[Problems with SATA and Linux]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T60}}&lt;br /&gt;
| 2007-77G&lt;br /&gt;
|&lt;br /&gt;
| 2.6.17.14&lt;br /&gt;
| 2.2.7.4&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 7500&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| {{T42}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Might require &amp;quot;ProcSetting full_pageset2 1&amp;quot; in hibernate.conf. Fixed in 2.2.9.3&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T43}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| need to unload the sound module (&amp;lt;tt&amp;gt;snd-cs46xx&amp;lt;/tt&amp;gt;) on suspend. May want to enable UseDummyXServer if running X&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| 2647-4BG &lt;br /&gt;
| Ubuntu 6.10 Edgy Eft&lt;br /&gt;
| 2.6.17.10&lt;br /&gt;
| 2.2.7.6&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| I used experimental [http://3v1n0.tuxfamily.org/dists/edgy/suspend2/ Trevino's kernel packages]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
| {{X41T}}&lt;br /&gt;
| &lt;br /&gt;
| Fedore Core 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| requires SATA resume patch and the SATA drivers compiled as built-in or in initrd (see [[Problems with SATA and Linux]]) and a {{path|hibernate.conf}} fix (see [[Installing Fedora Core 4 on a ThinkPad X41 Tablet]])&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{X22}}&lt;br /&gt;
| &lt;br /&gt;
| Ubuntu Breezy&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Ubuntu (Breezy) on a ThinkPad X22]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{G41}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| see [[Installing Debian on a ThinkPad G41]]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51}}&lt;br /&gt;
| 1829&lt;br /&gt;
|&lt;br /&gt;
| 2.6.19.1-suspend2-2.2.9&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R51e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.6.16-suspend2-r8&lt;br /&gt;
|&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| Requires &amp;quot;ProcSetting extra_pages_allowance 8000&amp;quot; in hibernate.conf&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{R52}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2.6.17.1&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
| FC5 with kernel [http://mhensler.de/swsusp/download_en.php 2.6.17-1.2145_1.rhfc5.cubbi_suspend2]&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| {{T23}}&lt;br /&gt;
| 2647-9KU &lt;br /&gt;
| Debian Etch&lt;br /&gt;
| 2.6.17.4&lt;br /&gt;
| 2.2.7&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-55G &lt;br /&gt;
| Arch Linux&lt;br /&gt;
| 2.6.17.13&lt;br /&gt;
| 2.2.8&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|I use the [http://iphitus.loudas.com/beyond.html beyond] patchset&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{X60s}}&lt;br /&gt;
| 1702-E8G &lt;br /&gt;
| Gentoo GNU/Linux&lt;br /&gt;
| 2.6.20.1&lt;br /&gt;
| 2.2.9&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| gentoo-sources-2.6.20-r8 with swsusp2 2.2.9 and some other patches. Suspend to disk worked ootb (also I tried 2.6.16 / swsusp2 2.2.5 and 2.6.19 / swsusp 2.2.9), but suspend to ram does not (a resume from hibernate-ram results in a fucked up X - console works). Workaround: Use acpi for suspend to ram: echo mem &amp;gt; /sys/power/state&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|{{Z61m}}&lt;br /&gt;
| 9452-CTO&lt;br /&gt;
| Kubuntu Edgy&lt;br /&gt;
| 2.6.17.10-generic &lt;br /&gt;
| 2.2.9 from experimental repository from http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
| I have blacklisted these modules: tg3, tp_smapi, hdaps, uhci_hcd (fingerprintreader would not go into suspend), sdhci. More options in the hibernate scripts are &amp;quot;IbmAcpi&amp;quot; and &amp;quot;ProcSetting extra_pages_allowance 15000&amp;quot;. SATA mode set to compatibility in BIOS&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation Instructions==&lt;br /&gt;
The [http://suspend2.net/ project home page] has a detailed HOWTO and FAQ. The following are just a few highlights.&lt;br /&gt;
&lt;br /&gt;
===Modifying the initrd generation scripts, and recreate initrd===&lt;br /&gt;
If your systems uses an &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file (most do), you'll need to patch or replace your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt;-creation script.&lt;br /&gt;
&lt;br /&gt;
*{{Fedora}} 4: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 echo &amp;quot;echo Mounted /proc filesystem&amp;quot; &amp;gt;&amp;gt; $RCFILE&lt;br /&gt;
and add the following immediately afterwards:&lt;br /&gt;
 echo &amp;quot;echo &amp;gt; /sys/power/suspend2/do_resume&amp;quot; &amp;gt;&amp;gt;$RCFILE&lt;br /&gt;
*{{Fedora}} 5: in {{path|/sbin/mkinitrd}}, find this line:&lt;br /&gt;
 if [ -z &amp;quot;$noresume&amp;quot; -a -n &amp;quot;$swsuspdev&amp;quot; ]; then&lt;br /&gt;
and add the following immediately ''before'' the above:&lt;br /&gt;
 emit &amp;quot;echo 1 &amp;gt; /sys/power/suspend2/do_resume&amp;quot;&lt;br /&gt;
You can also use the [http://atrpms.net/dist/fc5/mkinitrd-suspend2/ mkinitrd-suspend2] package from atrpms.&lt;br /&gt;
*{{Debian}}: If your system uses mkinitrd to create the initrd, copy [http://dagobah.ucc.asn.au/swsusp/2.0.0.102/swsusp-initrd.sh swsusp-initrd.sh] script to your {{path|/etc/mkinitrd/scripts}} directory before creating initrd image. If you use initramfs-tools, put a similar script into {{path|/etc/initramfs-tools/scripts/local-top/}} (the manpage of initramfs has templates of example &amp;quot;boot scripts&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
In any case, make sure you regenerate your &amp;lt;tt&amp;gt;initrd&amp;lt;/tt&amp;gt; file by reinstalling the kernel package or explicitly with mkinitrd or mkinitramfs commands.&lt;br /&gt;
&lt;br /&gt;
===Hibernate script===&lt;br /&gt;
TuxOnIce works best with the &amp;lt;tt&amp;gt;hibernate&amp;lt;/tt&amp;gt; script (available from the project home page), which takes care of auxiliary tasks needed on many systems (e.g., unloading problematic modules and restoring video modes).&lt;br /&gt;
&lt;br /&gt;
====Availability====&lt;br /&gt;
*{{Gentoo}}: emerge hibernate-script&lt;br /&gt;
*{{Fedora}}: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&lt;br /&gt;
*{{Ubuntu}}: packages for Ubuntu Dapper Drake (kernel, hibernate, suspend2ui-userui): http://dagobah.ucc.asn.au/dapper-kernels/&lt;br /&gt;
*{{Ubuntu}}: experimental packages for Ubuntu Edgy Eft (kernel, hibernate, suspend2ui-userui): http://3v1n0.tuxfamily.org/dists/edgy/suspend2/&lt;br /&gt;
*PLD: poldek -iv hibernate&lt;br /&gt;
*Other: check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://www.suspend2.net&lt;br /&gt;
&lt;br /&gt;
==Configuration tips==&lt;br /&gt;
=== Crash fix ===&lt;br /&gt;
To avoid pages being resaved during suspend use kernel 2.6.19.2 and suspend2 2.2.9.1 (not stable yet)&lt;br /&gt;
OR add the following to&lt;br /&gt;
{{path|/etc/hibernate/suspend2.conf:}}&lt;br /&gt;
 ProcSetting full_pageset2 1&lt;br /&gt;
===RediSafe-like functionality===&lt;br /&gt;
The hibernate functionality on some ThinkPad BIOSes offers the useful &amp;quot;RediSafe&amp;quot; feature, which suspends to both RAM and disk. This way you get quick resumes (directly from RAM), plus the safey of suspend-to-disk in case the battery runs out.&lt;br /&gt;
&lt;br /&gt;
TuxOnIce provides this feature too; simply add the following to {{path|/etc/hibernate/suspend2.conf}}:&lt;br /&gt;
 PowerdownMethod 3&lt;br /&gt;
&lt;br /&gt;
===Be aware of possible filesystem corruption scenarios===&lt;br /&gt;
Certain usage scenarios can cause filesystem corruption with suspend2. Some details on this are in [http://www.suspend2.net/HOWTO-4.html#ss4 the project's HOWTO]. None of the workaround configurations fix the problem satisfactorily, so be warned. In particular, with an ext3 root filesystem, if you suspend to swap partition, and then use sysrescCD/Knoppix/some other way to mount the root filesystem read-only, you risk data corruption when you try to resume from the suspended image.&lt;br /&gt;
&lt;br /&gt;
As far as possible, after suspending the system, don't touch the root filesystem unless you are resuming from it :)&lt;br /&gt;
[[Category:Patches]] [[Category:Drivers]]&lt;br /&gt;
&lt;br /&gt;
===ACPI Problem===&lt;br /&gt;
Also see [[Problems with ACPI suspend-to-ram]]&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_IrDA&amp;diff=29010</id>
		<title>How to make use of IrDA</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_IrDA&amp;diff=29010"/>
		<updated>2007-03-31T11:29:27Z</updated>

		<summary type="html">&lt;p&gt;Csawtell: /* {{Gentoo}} kernel config */&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;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#efefef; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
The purpose of this document is to get the [[IrDA]] hardware in your ThinkPad operational, setting up communication to other devices is not covered. However, the external links section can prove useful for this.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Serial IR (SIR) ==&lt;br /&gt;
SIR is limited to serial datarates up to 115.2Kb/s&lt;br /&gt;
&lt;br /&gt;
To use it, run {{cmdroot|irattach /dev/ttyS1 -s; modprobe ircomm-tty}}  (on {{Fedora}} 5 just run {{cmdroot|service irda start}}). Then turn on your IrDA-capable device and put it within range, and point your software (e.g., &amp;lt;tt&amp;gt;minicom&amp;lt;/tt&amp;gt;) to {{path|/dev/irda0}}.&lt;br /&gt;
&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
&lt;br /&gt;
Some distributions (e.g., {{Fedora}} 5) already include the equvialent of the following.&lt;br /&gt;
&lt;br /&gt;
==== Linux 2.4 kernel config ====&lt;br /&gt;
Edit {{path|/etc/modules.conf}} and add the following lines&lt;br /&gt;
 alias tty-ldisc-11 irtty&lt;br /&gt;
 alias char-major-161 ircomm-tty&lt;br /&gt;
&lt;br /&gt;
==== Linux 2.6 kernel config ====&lt;br /&gt;
Edit {{path|/etc/modprobe.conf}} and add the following lines&lt;br /&gt;
 alias tty-ldisc-11 irtty-sir&lt;br /&gt;
 alias char-major-161 ircomm-tty&lt;br /&gt;
&lt;br /&gt;
== Fast IR (FIR) ==&lt;br /&gt;
FIR is the preferred mode of IrDA operation and operates at a bandwidth of 4 Mbps&lt;br /&gt;
&lt;br /&gt;
The chips FIR mode first needs to be activated using the ISA PnP or BIOS method.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Regardless of which method you use, you will still have to set the dongle_id and run setserial as shown further below}}&lt;br /&gt;
=== ISA PnP support for nsc-ircc ===&lt;br /&gt;
&lt;br /&gt;
ISA PnP support is '''necessary''' in some cases, as without it the kernel doesn't manage to enable the device by itself in many ThinkPads.&lt;br /&gt;
&lt;br /&gt;
Starting with the 2.6.17-rc1 kernel, the nsc-ircc driver has ISA PnP support.  For older kernels you will need patches to allow the loading of the driver without the below BIOS change.&lt;br /&gt;
&lt;br /&gt;
* [http://steffenpingel.de/patches/nsc-ircc-pnp.diff 2.6.10 patch]&lt;br /&gt;
* [http://shamrock.dyndns.org/~ln/linux/nsc-ircc-pnp.2.6.12-rc6.diff 2.6.12-rc6 patch] &lt;br /&gt;
* [http://shamrock.dyndns.org/~ln/linux/nsc-ircc-pnp.2.6.12.diff 2.6.12 patch (applies cleanly to 2.6.12 through 2.6.15)]&lt;br /&gt;
&lt;br /&gt;
=== NS PC8394T support ===&lt;br /&gt;
&lt;br /&gt;
Thinkpads {{T43}}, {{T43p}} and {{R52}} [http://bugzilla.kernel.org/attachment.cgi?id=8247 needed an extra patch] to detect their [[NS PC8394T]]-based FIR device on kernels before 2.6.18.  They also require ISA PnP support in the driver to work, which is available since 2.6.17 (and can be added to 2.6.16 with the patches above).&lt;br /&gt;
&lt;br /&gt;
=== Changing BIOS settings ===&lt;br /&gt;
For older kernels (prior to 2.6.17-rc1), the easiest way to activate FIR mode is by entering BIOS setup during boot-up by pressing {{key|F1}} when prompted.&lt;br /&gt;
Then, selecting 'Config' followed by 'Infrared' will allow you to control the IrDA operation. Here you will need to select the option to Enable the infra-red port, and ensure the proper resources are set (typically: IO 0x2f8 and IRQ 3). Be sure to save the changes, and then Exit.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Changing these BIOS settings does not affect Windows 2000 or XP operating systems, but may cause resource issues in older windows versions, or other legacy operating systems.}}&lt;br /&gt;
&lt;br /&gt;
{{WARN|If you change the BIOS settings for IO, IRQ or DMA of the IrDA port, remember to do so accordingly on all examples in this page when applying them to your ThinkPad.}}&lt;br /&gt;
&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
==== Linux 2.4 kernel config ====&lt;br /&gt;
Edit {{path|/etc/modules.conf}} and add the following lines&lt;br /&gt;
&lt;br /&gt;
 alias irda0 nsc-ircc&lt;br /&gt;
 options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=3&lt;br /&gt;
 pre-install nsc-ircc setserial /dev/ttyS1 uart none port 0 irq 0&lt;br /&gt;
&lt;br /&gt;
==== Linux 2.6 kernel config ====&lt;br /&gt;
Edit {{path|/etc/modprobe.conf}} and add the following lines&lt;br /&gt;
&lt;br /&gt;
 alias irda0 nsc-ircc&lt;br /&gt;
 options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=3&lt;br /&gt;
 install nsc-ircc /bin/setserial /dev/ttyS1 uart none port 0 irq 0; /sbin/modprobe --ignore-install nsc-ircc&lt;br /&gt;
&lt;br /&gt;
The install line is a work-around for the 8250 serial driver taking over the device, and may not be needed in certain distributions.&lt;br /&gt;
Another way to do this is to set this kernel config option:&lt;br /&gt;
&lt;br /&gt;
1. {{kernelconf|CONFIG_SERIAL_8250_RUNTIME_UARTS|(1)|Number of 8250/16550 serial ports to register at runtime|Serial drivers|Character devices|Device Drivers|}}&lt;br /&gt;
&lt;br /&gt;
2. {{kernelconf|CONFIG_SERIAL_8250_NR_UARTS|(4)|Maximum number of 8250/16550 serial ports|Serial drivers|Character devices|Device Drivers|}}&lt;br /&gt;
&lt;br /&gt;
This will prevent the 8250 driver from grabbing any other than the first serial port at boot time or when the module is loaded. You can still add more ports later for example from PC-Card modems, up to CONFIG_SERIAL_8250_NR_UARTS.&lt;br /&gt;
&lt;br /&gt;
==== {{Gentoo}} kernel config ====&lt;br /&gt;
Edit / Create {{path|/etc/modules.d/nsc-irrc}} and add the following lines&lt;br /&gt;
&lt;br /&gt;
 alias irda0 nsc-ircc&lt;br /&gt;
 options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=3&lt;br /&gt;
&lt;br /&gt;
and then run modules-update&lt;br /&gt;
&lt;br /&gt;
Edit {{path|/etc/modules.autoload.d/kernel-2.6}} and add the following lines&lt;br /&gt;
&lt;br /&gt;
 nsc-ircc&lt;br /&gt;
&lt;br /&gt;
If you have serial support build in the kernel, switch it to a module and add it after nsc-ircc to advoid io base and irq conflict. For kernel 2.4, same as 2.6 changing the path to modules.autoload.d/kernel-2.4.&lt;br /&gt;
&lt;br /&gt;
==== {{Debian}} Sarge/Etch kernel config ====&lt;br /&gt;
Install irda-utils and set it up for serial port emulation. Edit {{path|/etc/modprobe.d/irda-utils}} and add/change the following lines:&lt;br /&gt;
&lt;br /&gt;
 alias irda0 nsc-ircc&lt;br /&gt;
 options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=3&lt;br /&gt;
&lt;br /&gt;
Edit / create {{path|/etc/modules.conf}} and add the following line before any references to 8250*, if any:&lt;br /&gt;
&lt;br /&gt;
 nsc-ircc&lt;br /&gt;
&lt;br /&gt;
Make sure that module-init-tools has a chance to iterate over {{path|/etc/modules.conf}} before udev does the initial pci hotplug (this is a problem at least in Debian Sarge, when using backported udev packages):&lt;br /&gt;
&lt;br /&gt;
 {{cmdroot|cp /etc/rcS.d/S20module-init-tools /etc/rcS.d/S03module-init-tools}}&lt;br /&gt;
&lt;br /&gt;
Note that at S03, module-init-tools cannot run depmod for you, so either do it manually before you reboot into a new kernel, or reboot twice to get it to work right.  This is also the reason for using cp instead of mv.&lt;br /&gt;
&lt;br /&gt;
If you have the regular serial port drivers as modules, that's it.  Otherwise, try adding the install line described in the Linux 2.6 kernel config section, above, or compile them as modules instead of built-in.&lt;br /&gt;
&lt;br /&gt;
== Known problems ==&lt;br /&gt;
* If the FIR mode is not activated, attempts to load the &amp;lt;tt&amp;gt;nsc-ircc&amp;lt;/tt&amp;gt; module will result in an error in syslog of &amp;quot;Wrong chip version ff&amp;quot;.&lt;br /&gt;
* After suspend the &amp;lt;tt&amp;gt;nsc-ircc&amp;lt;/tt&amp;gt; module needs to be manually reloaded&lt;br /&gt;
* If module reloading does not work after a suspend, try reactivating the IrDA port as well:&lt;br /&gt;
 rmmod nsc_ircc&lt;br /&gt;
 echo disable &amp;gt; /sys/devices/pnp0/00\:0d/resources&lt;br /&gt;
 echo activate &amp;gt; /sys/devices/pnp0/00\:0d/resources&lt;br /&gt;
 modprobe nsc_ircc&lt;br /&gt;
:The value &amp;lt;tt&amp;gt;pnp0/00\:0d&amp;lt;/tt&amp;gt; can vary - look for a id file containing IBM0071 or PNP0511, or for a resources file containing the appropriate irq/dma/io values, e.g., using {{cmdroot|grep 0x2f8 /sys/devices/pnp*/*/resources}} .&lt;br /&gt;
{{NOTE|The power management issues should be resolved starting with the 2.6.17-rc1 kernel.}}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Don't understand after inserting modules use irattach irda0 -s and after this you can use eg. minicom over /dev/ircomm0 and test link with irdadump  with this I get working FIR on A21m with 2.6.18}}&lt;br /&gt;
* If you read something like &amp;quot;ttyS1: LSR safety check engaged!&amp;quot; and &amp;quot;irattach: tcgetattr: Input/output error&amp;quot; in the system log, try limiting the FIR max baud rate (echo 57600 &amp;gt; /proc/sys/net/irda/max_baud_rate). This did the trick for me when I was trying to synchronize my Ericsson T39m with my Thinkpad R51 (multisync, evolution-2.8, KDE 3.5.5, openSUSE 10.2). &lt;br /&gt;
&lt;br /&gt;
== Some other things you might want to do with IrDA ==&lt;br /&gt;
* add fast PPP support:&lt;br /&gt;
:{{cmdroot|modprobe irnet}}&lt;br /&gt;
* if needed, limit further the size of the transmit window&lt;br /&gt;
:{{cmdroot|echo 1 &amp;gt; /proc/sys/net/irda/max_tx_window}}&lt;br /&gt;
* set the connection speed to 4Mbit in FIR mode:&lt;br /&gt;
:{{cmdroot|echo 4000000 &amp;gt; /proc/sys/net/irda/max_baud_rate}}&lt;br /&gt;
&lt;br /&gt;
==LIRC and IrDA==&lt;br /&gt;
Usually, IrDA ports are not compatible with LIRC, but you may have luck using lirc_sir.&lt;br /&gt;
&lt;br /&gt;
If loading the &amp;lt;tt&amp;gt;lirc_sir&amp;lt;/tt&amp;gt; module shows something like the following in {{cmdroot|dmesg}} output, you are lucky and can use LIRC with the IrDA port to remote control your ThinkPad.&lt;br /&gt;
 lirc_sir: I/O port 0x02f8, IRQ 3.&lt;br /&gt;
 lirc_sir: Installed.&lt;br /&gt;
&lt;br /&gt;
You might need to force the io and irq settings. For instance, if in your BIOS your Infrared IO is 0x03f8 and IRQ is 4, do the following when inserting the module:&lt;br /&gt;
&lt;br /&gt;
 modprobe lirc_sir io=0x03f8 irq=4&lt;br /&gt;
&lt;br /&gt;
If it fails with &amp;quot;Device or resource busy&amp;quot;, you may want to install the setserial tool and run it with {{cmdroot|setserial /dev/ttyS0 uart none}} or {{cmdroot|setserial /dev/ttyS1 uart none}}. After that lirc_sir should be loadable.&lt;br /&gt;
&lt;br /&gt;
You might also need to {{cmdroot|modprobe actisys-sir}},   {{cmdroot|modprobe tekram-sir}}, and {{cmdroot|modprobe lirc-sir}} if you are using the SIR on the thinkpad (modules are from kernel 2.6).&lt;br /&gt;
&lt;br /&gt;
Also, do not forget to start the lirc daemon, otherwise no output will be given (you better try running it not as a daemon first, so you can see the output).&lt;br /&gt;
  lircd -d /dev/lirc0 /etc/lircd.conf --nodaemon&lt;br /&gt;
You should see:&lt;br /&gt;
  lircd: lircd(serial) ready&lt;br /&gt;
This means you are good to start {{cmdroot|irrecord}} or {{cmdroot|xmode2}} and check for input.&lt;br /&gt;
&lt;br /&gt;
Once that shows a good output you can configure your remote control.&lt;br /&gt;
then use it in applications like mplayer, xine, or KDE's remote controls server.&lt;br /&gt;
&lt;br /&gt;
== External Sources ==&lt;br /&gt;
*[http://irda.sourceforge.net/ Linux-IrDA Project] (External)&lt;br /&gt;
*[http://pcmcia-cs.sourceforge.net/ Linux PCMCIA Project] (External)&lt;br /&gt;
*[http://tpctl.sourceforge.net/ tpctl homepage] (External)&lt;br /&gt;
*[http://www.lirc.org/ Linux Infrared Remote Control] (External)&lt;/div&gt;</summary>
		<author><name>Csawtell</name></author>
		
	</entry>
</feed>