<?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=84.191.161.178</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=84.191.161.178"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/84.191.161.178"/>
	<updated>2026-04-05T17:45:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Graphics_Chips_Power_Management_features&amp;diff=10933</id>
		<title>How to make use of Graphics Chips Power Management features</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Graphics_Chips_Power_Management_features&amp;diff=10933"/>
		<updated>2005-07-24T16:14:20Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: /* DynamicClocks in the Radeon Xorg driver */  not so severe actually&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Power Saving With A Framebuffer Console==&lt;br /&gt;
In order to use the dynamic GPU clock-scaling similar to what X.org has, you need to use the radeonfb kernel module. You'll need to enable the '''CONFIG_FB_RADEON''' in your kernel configuration. If setup correctly you should see something like the following in your kernel log:&lt;br /&gt;
 radeonfb: Dynamic Clock Power Management enabled&lt;br /&gt;
&lt;br /&gt;
==DynamicClocks in the Radeon Xorg driver==&lt;br /&gt;
The xorg X server has support for a power saving feature from ATI called PowerPlay. Xorg calls this feature DynamicClocks. It can be enabled in the server by adding '''Option  &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;''' in the '''Device''' section in {{path|/etc/X11/xorg.conf}}&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier  &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
        Driver      &amp;quot;radeon&amp;quot;&lt;br /&gt;
        VendorName  &amp;quot;IBM Thinkpad&amp;quot;&lt;br /&gt;
        BoardName   &amp;quot;ATI Radeon Mobility M9&amp;quot;&lt;br /&gt;
        '''Option      &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;'''&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
With this option enabled, the X11 server should print ({{path|/var/log/Xorg.0.log}}):&lt;br /&gt;
&lt;br /&gt;
 (**) RADEON(0): Option &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
 (II) RADEON(0): Dynamic Clock Scaling Enabled&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Enabling DynamicClocks crashes some models. If the CPU is entering one of the lower power states (C3 or lower) during Xorg startup the display may stay black. As a workaround disable DynamicClocks in Xorg and use [http://www.hasw.net/linux/ rovclock] instead. But it does not scale the clocks to match the workload.}}&lt;br /&gt;
&lt;br /&gt;
==How to use it==&lt;br /&gt;
After enabling it, my first question was how do I control it?  After reading about it, the answer is: you don't have to, it manages the power consumption for you.\&lt;br /&gt;
&lt;br /&gt;
==X.org on Debian==&lt;br /&gt;
Because debian doesn't have X.org yet - [http://incubator.vislab.usyd.edu.au/roller/page/Steve/20040909 Installing a non-intrusive X.org server on Debian].&lt;br /&gt;
&lt;br /&gt;
'''Update:''' X.org has made it into Debian.  See: [http://packages.debian.org/unstable/x11/xserver-xorg]&lt;br /&gt;
&lt;br /&gt;
There are also sarge backports available [http://www.backports.org/ here] or [http://people.debian.org/~nobse/xorg-x11/ here].&lt;br /&gt;
&lt;br /&gt;
Add the following line to your repository list:&lt;br /&gt;
 deb http://people.debian.org/~nobse/xorg-x11/ sarge main&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www.ati.com/products/pdf/powerplaywp2.pdf Marketing information from ATI]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:G40]] [[Category:G41]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Active_Protection_System&amp;diff=8420</id>
		<title>Active Protection System</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Active_Protection_System&amp;diff=8420"/>
		<updated>2005-07-24T16:13:26Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: &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:APS.jpg|IBM Active Protection System]] __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 Active Protection System ===&lt;br /&gt;
With the new series of Thinkpads IBM introduced the Active Protection System (APS) in 2003. The APS is a protection system for the Thinkpad's internal harddrive. A sensor inside the Thinkpad recognizes when the notebook is accelerated. A software applet then is triggered to park the harddisk. This way the risk of data loss in case of when the notebook is dropped is significantly reduced since the read/write head of the harddrive is parked and hence can't crash onto the platter when the notebook drops onto the floor.&lt;br /&gt;
&lt;br /&gt;
The whole concept of the technology seems very advanced. For the first part, the hardware sensor is capable of not only recognizing acceleration of the notebook, but also (to a certain degree) of its whole orientation in space, relative to gravity's axis. Furthermore, having the actual control put into software, its functionality is extendable and it gives chance to implement features like the &amp;quot;ignore minor shocks&amp;quot; feature which is present in the Windows based control applet. (This feature prevents the harddrive from parking in case of minor regular shocks such as occur when in a train or car.)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
Linux support is in early development.&lt;br /&gt;
&lt;br /&gt;
This feature definitely depends on software and there is no hardware or BIOS only way of making it work. A statement from IBM clearifies this:&lt;br /&gt;
&amp;quot;The APS system will require APS software to be installed on the &lt;br /&gt;
computer before it activates the harddrive parking . This means it will &lt;br /&gt;
not work on systems preloaded with Linux.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IBM made contradictory statements about their willingness to release the specifications of the hardware sensor and its API to the linux community or some developers. Although a lot of developers and other interested people from the OpenSource community actively contacted IBM to get the specs, in fact they never got them.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, some independent projects are making progress:&lt;br /&gt;
* Quoted from NewScientist.com: The latest Apple PowerBook laptops can be controlled with a gentle shake. Programmer Amit Singh has written code that lets him use the sensor to control software on the computer. The code is published at [http://www.kernelthread.com/software/ams/ www.kernelthread.com/software/ams/].&lt;br /&gt;
&lt;br /&gt;
*There is a fairly detailed article about [http://www.almaden.ibm.com/cs/people/marksmith/tpaps.html reverse engineering the APS accelerometer interface] by Mark Smith from IBM Research. Apparently they even have a prototype Linux driver working, but cannot release the full source yet.&lt;br /&gt;
&lt;br /&gt;
* The [http://hdaps.sourceforge.net/ HDAPS project] is dedicated to developing &amp;amp; testing a kernel module and a user space application. More info on this can also be optained from the [https://lists.sourceforge.net/lists/listinfo/hdaps-devel HDAPS mailinglist and its archive]. You can also find some of the coders working on this module in the #hdaps channel on irc.freenode.org.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
*[http://www.pc.ibm.com/presentations/us/thinkvantage/56/index.html?shortcut=aps&amp;amp; IBMs ThinkVantage&amp;amp;trade; Technologies Flash presentation - Active Protection System]&lt;br /&gt;
*[http://hdaps.sourceforge.net HDAPS project page]&lt;br /&gt;
*[http://sourceforge.net/mailarchive/forum.php?forum=hdaps-devel HDAPS-devel list archive]&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
*ThinkPad {{R50}}, {{R50p}}, {{R51}}, {{R52}}&lt;br /&gt;
*ThinkPad {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}&lt;br /&gt;
*ThinkPad {{X40}}, {{X41}}, {{X41T}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Active_Protection_System&amp;diff=6808</id>
		<title>Active Protection System</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Active_Protection_System&amp;diff=6808"/>
		<updated>2005-07-24T16:13:11Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: &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:APS.jpg|IBM Active Protection System]] __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 Active Protection System ===&lt;br /&gt;
With the new series of Thinkpads IBM introduced the Active Protection System (APS) in 2003. The APS is a protection system for the Thinkpad's internal harddrive. A sensor inside the Thinkpad recognizes when the notebook is accelerated. A software applet then is triggered to park the harddisk. This way the risk of data loss in case of when the notebook is dropped is significantly reduced since the read/write head of the harddrive is parked and hence can't crash onto the platter when the notebook drops onto the floor.&lt;br /&gt;
&lt;br /&gt;
The whole concept of the technology seems very advanced. For the first part, the hardware sensor is capable of not only recognizing acceleration of the notebook, but also (to a certain degree) of its whole orientation in space, relative to gravity's axis. Furthermore, having the actual control put into software, its functionality is extendable and it gives chance to implement features like the &amp;quot;ignore minor shocks&amp;quot; feature which is present in the Windows based control applet. (This feature prevents the harddrive from parking in case of minor regular shocks such as occur when in a train or car.)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
Linux support is in early development.&lt;br /&gt;
&lt;br /&gt;
This feature definitely depends on software and there is no hardware or BIOS only way of making it work. A statement from IBM clearifies this:&lt;br /&gt;
&amp;quot;The APS system will require APS software to be installed on the &lt;br /&gt;
computer before it activates the harddrive parking . This means it will &lt;br /&gt;
not work on systems preloaded with Linux.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IBM made contradictory statements about their willingness to release the specifications of the hardware sensor and its API to the linux community or some developers. Although a lot of developers and other interested people from the OpenSource community actively contacted IBM to get the specs, in fact they never got them.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, some independent projects are making progress:&lt;br /&gt;
* Quoted from NewScientist.com: The latest Apple PowerBook laptops can be controlled with a gentle shake. Programmer Amit Singh has written code that lets him use the sensor to control software on the computer. The code is published at [http://www.kernelthread.com/software/ams/ www.kernelthread.com/software/ams/].&lt;br /&gt;
&lt;br /&gt;
*There is a fairly detailed article about [http://www.almaden.ibm.com/cs/people/marksmith/tpaps.html reverse engineering the APS accelerometer interface] by Mark Smith from IBM Research. Apparently they even have a prototype Linux driver working, but cannot release the full source yet.&lt;br /&gt;
&lt;br /&gt;
* The [http://hdaps.sourceforge.net/ HDAPS project] is dedicated to developing &amp;amp; testing a kernel module and a user space application. More info on this can also be optained from the [https://lists.sourceforge.net/lists/listinfo/hdaps-devel HDAPS mailinglist and its archive]. You can also find some of the coders working on this module in the #hdaps channel on irc.freenode.org.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
*[http://www.pc.ibm.com/presentations/us/thinkvantage/56/index.html?shortcut=aps&amp;amp; IBMs ThinkVantage&amp;amp;trade; Technologies Flash presentation - Active Protection System]&lt;br /&gt;
*[http://hdaps.sourceforge.net HDAPS project page]&lt;br /&gt;
*[http://sourceforge.net/mailarchive/forum.php?forum=hdaps-devel HDAPS-devel list archive]&lt;br /&gt;
*[http://lemonshop.dk/ibm_hpaps/ Temporary location of current HDAPS driver]&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
*ThinkPad {{R50}}, {{R50p}}, {{R51}}, {{R52}}&lt;br /&gt;
*ThinkPad {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}&lt;br /&gt;
*ThinkPad {{X40}}, {{X41}}, {{X41T}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Graphics_Chips_Power_Management_features&amp;diff=6809</id>
		<title>How to make use of Graphics Chips Power Management features</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Graphics_Chips_Power_Management_features&amp;diff=6809"/>
		<updated>2005-07-24T16:10:02Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Power Saving With A Framebuffer Console==&lt;br /&gt;
In order to use the dynamic GPU clock-scaling similar to what X.org has, you need to use the radeonfb kernel module. You'll need to enable the '''CONFIG_FB_RADEON''' in your kernel configuration. If setup correctly you should see something like the following in your kernel log:&lt;br /&gt;
 radeonfb: Dynamic Clock Power Management enabled&lt;br /&gt;
&lt;br /&gt;
==DynamicClocks in the Radeon Xorg driver==&lt;br /&gt;
The xorg X server has support for a power saving feature from ATI called PowerPlay. Xorg calls this feature DynamicClocks. It can be enabled in the server by adding '''Option  &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;''' in the '''Device''' section in {{path|/etc/X11/xorg.conf}}&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier  &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
        Driver      &amp;quot;radeon&amp;quot;&lt;br /&gt;
        VendorName  &amp;quot;IBM Thinkpad&amp;quot;&lt;br /&gt;
        BoardName   &amp;quot;ATI Radeon Mobility M9&amp;quot;&lt;br /&gt;
        '''Option      &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;'''&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
With this option enabled, the X11 server should print ({{path|/var/log/Xorg.0.log}}):&lt;br /&gt;
&lt;br /&gt;
 (**) RADEON(0): Option &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
 (II) RADEON(0): Dynamic Clock Scaling Enabled&lt;br /&gt;
&lt;br /&gt;
{{WARN|Enabling DynamicClocks crashes some models. If the CPU is entering one of the lower power states (C3 or lower) during Xorg startup the display may stay black. As a workaround disable DynamicClocks in Xorg and use [http://www.hasw.net/linux/ rovclock] instead. But it does not scale the clocks to match the workload.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How to use it==&lt;br /&gt;
After enabling it, my first question was how do I control it?  After reading about it, the answer is: you don't have to, it manages the power consumption for you.\&lt;br /&gt;
&lt;br /&gt;
==X.org on Debian==&lt;br /&gt;
Because debian doesn't have X.org yet - [http://incubator.vislab.usyd.edu.au/roller/page/Steve/20040909 Installing a non-intrusive X.org server on Debian].&lt;br /&gt;
&lt;br /&gt;
'''Update:''' X.org has made it into Debian.  See: [http://packages.debian.org/unstable/x11/xserver-xorg]&lt;br /&gt;
&lt;br /&gt;
There are also sarge backports available [http://www.backports.org/ here] or [http://people.debian.org/~nobse/xorg-x11/ here].&lt;br /&gt;
&lt;br /&gt;
Add the following line to your repository list:&lt;br /&gt;
 deb http://people.debian.org/~nobse/xorg-x11/ sarge main&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www.ati.com/products/pdf/powerplaywp2.pdf Marketing information from ATI]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:G40]] [[Category:G41]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6829</id>
		<title>How to make ACPI work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6829"/>
		<updated>2005-07-24T12:06:48Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: /* using SoftwareSuspend2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==general==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
First of all you'll have to enable ACPI support in your kernel (if your distro doesn't already have an ACPI enabled kernel).&lt;br /&gt;
To do this open your kernel config, go to &amp;lt;code&amp;gt;Power management options&amp;lt;/code&amp;gt;, enable &amp;lt;code&amp;gt;Power Management support&amp;lt;/code&amp;gt;, go to &amp;lt;code&amp;gt;ACPI&amp;lt;/code&amp;gt; and enable the needed options. You'd most likely want to enable &amp;lt;code&amp;gt;Sleep States&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AC Adapter&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Battery&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Processor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Thermal Zone&amp;lt;/code&amp;gt;. Then recompile your kernel.&lt;br /&gt;
&lt;br /&gt;
If you prefer editing your {{path|.config}} file directly, you should set at least the following variables:&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_ACPI_BOOT=y&lt;br /&gt;
 CONFIG_ACPI_INTERPRETER=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP_PROC_FS=y&lt;br /&gt;
 CONFIG_ACPI_AC=y&lt;br /&gt;
 CONFIG_ACPI_BATTERY=y&lt;br /&gt;
 CONFIG_ACPI_BUTTON=y&lt;br /&gt;
 CONFIG_ACPI_FAN=y&lt;br /&gt;
 CONFIG_ACPI_PROCESSOR=y&lt;br /&gt;
 CONFIG_ACPI_THERMAL=y&lt;br /&gt;
 CONFIG_ACPI_BUS=y&lt;br /&gt;
 CONFIG_ACPI_EC=y&lt;br /&gt;
 CONFIG_ACPI_POWER=y&lt;br /&gt;
 CONFIG_ACPI_PCI=y&lt;br /&gt;
 CONFIG_ACPI_SYSTEM=y&lt;br /&gt;
&lt;br /&gt;
===IBM specific ACPI driver===&lt;br /&gt;
Unfortunately, special drivers for ACPI on ThinkPads were not included with kernels prior 2.6.10. So you'll have to compile one yourself or get it as precompiled module for your kernel.&lt;br /&gt;
&lt;br /&gt;
You have the choice between [[thinkpad-acpi]] and [[ibm-acpi]], with the latter being the recommended one.&lt;br /&gt;
&lt;br /&gt;
If you use a post-2.6.10 kernel and you want to use [[ibm-acpi]], it is recommended to look on its projects page for a possibly newer version.&lt;br /&gt;
&lt;br /&gt;
{{HINT|In general it is a good idea to read the README included with the driver.}}&lt;br /&gt;
&lt;br /&gt;
===ACPI daemon===&lt;br /&gt;
Also you'll need to install [[acpid]], if it isn't present on your system. [[acpid]] is a daemon that handles the ACPI events generated by the system. Read [[How to configure acpid]].&lt;br /&gt;
&lt;br /&gt;
==Screen blanking (Standby)==&lt;br /&gt;
Make sure you have &lt;br /&gt;
 Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
in the Monitor section of your {{path|/etc/X11/XF86Config}} or {{path|/etc/X11/xorg.conf}}.&lt;br /&gt;
&lt;br /&gt;
Running {{cmd|xset +dpms}} and then {{cmd|xset dpms force off}} will turn off the backlight on a laptop screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this may not work in combination with {{cmd|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} because switching to console causes the backlight to come back on before sleeping.&lt;br /&gt;
&lt;br /&gt;
==Suspend to RAM (Sleep)==&lt;br /&gt;
ACPI Sleep/suspend-to-ram with recent 2.6.x kernels usually works fine. Have a look at the [[How to configure acpid|acpid configuration HOWTO]]. It includes a specific example for going to sleep on lid close.&lt;br /&gt;
&lt;br /&gt;
The following glitches may or may not occur in relation to suspending to RAM:&lt;br /&gt;
* With a 2.6.9 or 2.6.10 kernel, when resuming from a suspend-to-ram the display might remain black (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). This can be fixed by adding &amp;lt;tt&amp;gt;acpi_sleep=s3_bios&amp;lt;/tt&amp;gt; to the kernel boot parameters. It seems this problem is solved in 2.6.11-rc1.&lt;br /&gt;
* When your system is equiped with a Radeon Mobility graphic controller your [[Problem with LCD backlight remaining on during ACPI sleep|LCD backlight may not turn off automatically]]. Use [[radeontool]] to switch off your backlight prior suspend in your sleep action script.&lt;br /&gt;
* Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]].&lt;br /&gt;
* You may experience problems when using {{cmdroot|echo standby &amp;gt; /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 &amp;gt;/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running.&lt;br /&gt;
* Problems with the serial port of the port replicator after the wake up from ram have also been experienced.&lt;br /&gt;
* Crash on resume&lt;br /&gt;
** ...when using ATI proprietary drivers can be solved by using [http://freshmeat.net/projects/vbetool/ vbetool].&lt;br /&gt;
** ...might be solved by disabling ''APIC'' (@Processor type and features) in the kernel configuration&lt;br /&gt;
* If your suspend is failing, and a tail of {{path|/var/log/acpid}} shows &amp;quot;Permission denied&amp;quot; errors, be sure that your new ACPI event and action scripts have the appropriate permissions&lt;br /&gt;
* Due to the fact that Sonoma chipset based laptops (T43, T43p) utilize the SATA layer for disk access and SATA does not have power-management support yet Suspend to RAM does not work on these machines. However, Jens Axboe's patch ([http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111504542402455&amp;amp;w=2] LKML posting) provides SATA power-management support and makes Suspend to RAM work on the T43 at least. (Tested on 2.6.12rc6 which the patch applies to with some offsets. T43p not tested but should work as well. X41: reboot after wake up.)&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12-rc6.diff 2.6.12-rc6 patch]&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12.diff 2.6.12 patch]&lt;br /&gt;
&lt;br /&gt;
==Suspend to disk (Hibernate)==&lt;br /&gt;
There are two drivers for this available:&lt;br /&gt;
* swsusp, which is in the kernel and&lt;br /&gt;
* [http://developer.berlios.de/projects/softwaresuspend/ SoftwareSuspend2] which is more feature rich, but not yet in the kernel, so you have to patch it in yourself&lt;br /&gt;
Both are reported to work fine as long as you use open-source graphic drivers. A comparison of the features can be found on [http://softwaresuspend.berlios.de/features.html this page].&lt;br /&gt;
&lt;br /&gt;
Just in case you are in doubt...yes, it is safe in both cases to use the same swap partition as active swap and as suspend partition.&lt;br /&gt;
&lt;br /&gt;
===using swsusp===&lt;br /&gt;
Software Suspend (swsusp) is included in the 2.6 kernel series. It seems like no patches for 2.4 kernels are available.&lt;br /&gt;
&lt;br /&gt;
To enable it, go to &amp;lt;tt&amp;gt;Power management options&amp;lt;/tt&amp;gt; and enable &amp;lt;tt&amp;gt;Power management support&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Software Suspend&amp;lt;/tt&amp;gt; in the kernel config menu. You'll also want to give the swap partition to suspend to in &amp;lt;tt&amp;gt;Default resume partition&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In case you prefer to edit your config file directly, you should have the following three entries look like here...&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND=y&lt;br /&gt;
 CONFIG_PM_STD_PARTITION=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
...where &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; needs to be replaced by the swap partition you want to use for suspending. (Use {{cmdroot|fdisk -l /dev/hda}} if unsure.)&lt;br /&gt;
&lt;br /&gt;
You can override the default resume partition anytime by giving &amp;lt;tt&amp;gt;resume=/dev/resume_partition&amp;lt;/tt&amp;gt; as kernel boot parameter.&lt;br /&gt;
Also, in case you suspended, but want to boot up normally (without resuming from the saved image - loosing all data that was unsaved at suspend time), you can give the &amp;lt;tt&amp;gt;noresume&amp;lt;/tt&amp;gt; kernel boot parameter.&lt;br /&gt;
&lt;br /&gt;
To suspend you can either do a simple {{cmdroot|echo -n 4 &amp;gt; /proc/acpi/sleep}} (recommended) or use the [http://softwaresuspend.berlios.de/old-site/swsusp/sysvinit-2.76-v2-for_swsusp-v5.tar.gz patched SysVInit] and call {{cmdroot|swsusp}} or {{cmdroot|shutdown -z now}}.&lt;br /&gt;
&lt;br /&gt;
Ideally you would do this from a script like {{path|/etc/acpi/actions/hibernate.sh}}. It has proven to be a good idea to shutdown the following processes/drivers within the script before you do the actual suspend.&lt;br /&gt;
*any running mysql server&lt;br /&gt;
*the linuxant driver may require stopping in a acpi script as well. {{cmdroot|dldrstop}} does the trick.&lt;br /&gt;
&lt;br /&gt;
Afterwards you might want to enable them again, as well as run a script that does necessary configurations according to the ac power state.&lt;br /&gt;
Furthermore, the system clock is not readjusted automatically, so you will probably also want the do that from that script (i.e. by restarting your systemclock bootup script).&lt;br /&gt;
&lt;br /&gt;
If the sound output is silent after resume, these commands might help to get sound to work again without reloading any modules:&lt;br /&gt;
&lt;br /&gt;
 amixer set Master mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set Master unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Finally you should take note that swsusp does not set the ACPI S4 state. Instead it goes to S5. This means that the machine itself doesn't know that it was suspend rather than shutdown. Hence you can i.e. boot a parallel installed other operating system and resume your linux session later, as long as you don't touch the swap partition the image was saved to.&lt;br /&gt;
&lt;br /&gt;
===using SoftwareSuspend2===&lt;br /&gt;
First apply Software Suspend 2 patches from http://softwaresuspend.berlios.de/ if they are not already in your kernel.&lt;br /&gt;
&lt;br /&gt;
Be sure to also read the http://softwaresuspend.berlios.de/HOWTO.html&lt;br /&gt;
&lt;br /&gt;
These are the options for the kernel. Make sure to change the &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; to your swap partition, i.e. &amp;lt;tt&amp;gt;/dev/hda5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 # Software Suspend 2&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_KEEP_IMAGE is not set&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE=y&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEBUG is not set&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEVELOPER is not set&lt;br /&gt;
&lt;br /&gt;
Next, compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
In the meantime, add the following to the kernel parameters: &amp;lt;tt&amp;gt;resume2=swap:/dev/resume_partition&amp;lt;/tt&amp;gt;. Again change &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; to your swap partition.&lt;br /&gt;
&lt;br /&gt;
Install the hibernation script:&lt;br /&gt;
*For {{Gentoo}} users: emerge hibernate-script&amp;lt;br /&amp;gt;&lt;br /&gt;
*For {{Fedora}} users: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&amp;lt;br /&amp;gt;&lt;br /&gt;
*For all other users, check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://softwaresuspend.berlios.de/&lt;br /&gt;
*{{Debian}} users using initrd image, make sure you 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.&lt;br /&gt;
&lt;br /&gt;
Restart using the new kernel and run the script to test it: {{cmdroot|/usr/sbin/hibernate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6798</id>
		<title>How to make ACPI work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6798"/>
		<updated>2005-07-24T12:06:23Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: /* using SoftwareSuspend2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==general==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
First of all you'll have to enable ACPI support in your kernel (if your distro doesn't already have an ACPI enabled kernel).&lt;br /&gt;
To do this open your kernel config, go to &amp;lt;code&amp;gt;Power management options&amp;lt;/code&amp;gt;, enable &amp;lt;code&amp;gt;Power Management support&amp;lt;/code&amp;gt;, go to &amp;lt;code&amp;gt;ACPI&amp;lt;/code&amp;gt; and enable the needed options. You'd most likely want to enable &amp;lt;code&amp;gt;Sleep States&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AC Adapter&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Battery&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Processor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Thermal Zone&amp;lt;/code&amp;gt;. Then recompile your kernel.&lt;br /&gt;
&lt;br /&gt;
If you prefer editing your {{path|.config}} file directly, you should set at least the following variables:&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_ACPI_BOOT=y&lt;br /&gt;
 CONFIG_ACPI_INTERPRETER=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP_PROC_FS=y&lt;br /&gt;
 CONFIG_ACPI_AC=y&lt;br /&gt;
 CONFIG_ACPI_BATTERY=y&lt;br /&gt;
 CONFIG_ACPI_BUTTON=y&lt;br /&gt;
 CONFIG_ACPI_FAN=y&lt;br /&gt;
 CONFIG_ACPI_PROCESSOR=y&lt;br /&gt;
 CONFIG_ACPI_THERMAL=y&lt;br /&gt;
 CONFIG_ACPI_BUS=y&lt;br /&gt;
 CONFIG_ACPI_EC=y&lt;br /&gt;
 CONFIG_ACPI_POWER=y&lt;br /&gt;
 CONFIG_ACPI_PCI=y&lt;br /&gt;
 CONFIG_ACPI_SYSTEM=y&lt;br /&gt;
&lt;br /&gt;
===IBM specific ACPI driver===&lt;br /&gt;
Unfortunately, special drivers for ACPI on ThinkPads were not included with kernels prior 2.6.10. So you'll have to compile one yourself or get it as precompiled module for your kernel.&lt;br /&gt;
&lt;br /&gt;
You have the choice between [[thinkpad-acpi]] and [[ibm-acpi]], with the latter being the recommended one.&lt;br /&gt;
&lt;br /&gt;
If you use a post-2.6.10 kernel and you want to use [[ibm-acpi]], it is recommended to look on its projects page for a possibly newer version.&lt;br /&gt;
&lt;br /&gt;
{{HINT|In general it is a good idea to read the README included with the driver.}}&lt;br /&gt;
&lt;br /&gt;
===ACPI daemon===&lt;br /&gt;
Also you'll need to install [[acpid]], if it isn't present on your system. [[acpid]] is a daemon that handles the ACPI events generated by the system. Read [[How to configure acpid]].&lt;br /&gt;
&lt;br /&gt;
==Screen blanking (Standby)==&lt;br /&gt;
Make sure you have &lt;br /&gt;
 Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
in the Monitor section of your {{path|/etc/X11/XF86Config}} or {{path|/etc/X11/xorg.conf}}.&lt;br /&gt;
&lt;br /&gt;
Running {{cmd|xset +dpms}} and then {{cmd|xset dpms force off}} will turn off the backlight on a laptop screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this may not work in combination with {{cmd|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} because switching to console causes the backlight to come back on before sleeping.&lt;br /&gt;
&lt;br /&gt;
==Suspend to RAM (Sleep)==&lt;br /&gt;
ACPI Sleep/suspend-to-ram with recent 2.6.x kernels usually works fine. Have a look at the [[How to configure acpid|acpid configuration HOWTO]]. It includes a specific example for going to sleep on lid close.&lt;br /&gt;
&lt;br /&gt;
The following glitches may or may not occur in relation to suspending to RAM:&lt;br /&gt;
* With a 2.6.9 or 2.6.10 kernel, when resuming from a suspend-to-ram the display might remain black (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). This can be fixed by adding &amp;lt;tt&amp;gt;acpi_sleep=s3_bios&amp;lt;/tt&amp;gt; to the kernel boot parameters. It seems this problem is solved in 2.6.11-rc1.&lt;br /&gt;
* When your system is equiped with a Radeon Mobility graphic controller your [[Problem with LCD backlight remaining on during ACPI sleep|LCD backlight may not turn off automatically]]. Use [[radeontool]] to switch off your backlight prior suspend in your sleep action script.&lt;br /&gt;
* Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]].&lt;br /&gt;
* You may experience problems when using {{cmdroot|echo standby &amp;gt; /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 &amp;gt;/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running.&lt;br /&gt;
* Problems with the serial port of the port replicator after the wake up from ram have also been experienced.&lt;br /&gt;
* Crash on resume&lt;br /&gt;
** ...when using ATI proprietary drivers can be solved by using [http://freshmeat.net/projects/vbetool/ vbetool].&lt;br /&gt;
** ...might be solved by disabling ''APIC'' (@Processor type and features) in the kernel configuration&lt;br /&gt;
* If your suspend is failing, and a tail of {{path|/var/log/acpid}} shows &amp;quot;Permission denied&amp;quot; errors, be sure that your new ACPI event and action scripts have the appropriate permissions&lt;br /&gt;
* Due to the fact that Sonoma chipset based laptops (T43, T43p) utilize the SATA layer for disk access and SATA does not have power-management support yet Suspend to RAM does not work on these machines. However, Jens Axboe's patch ([http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111504542402455&amp;amp;w=2] LKML posting) provides SATA power-management support and makes Suspend to RAM work on the T43 at least. (Tested on 2.6.12rc6 which the patch applies to with some offsets. T43p not tested but should work as well. X41: reboot after wake up.)&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12-rc6.diff 2.6.12-rc6 patch]&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12.diff 2.6.12 patch]&lt;br /&gt;
&lt;br /&gt;
==Suspend to disk (Hibernate)==&lt;br /&gt;
There are two drivers for this available:&lt;br /&gt;
* swsusp, which is in the kernel and&lt;br /&gt;
* [http://developer.berlios.de/projects/softwaresuspend/ SoftwareSuspend2] which is more feature rich, but not yet in the kernel, so you have to patch it in yourself&lt;br /&gt;
Both are reported to work fine as long as you use open-source graphic drivers. A comparison of the features can be found on [http://softwaresuspend.berlios.de/features.html this page].&lt;br /&gt;
&lt;br /&gt;
Just in case you are in doubt...yes, it is safe in both cases to use the same swap partition as active swap and as suspend partition.&lt;br /&gt;
&lt;br /&gt;
===using swsusp===&lt;br /&gt;
Software Suspend (swsusp) is included in the 2.6 kernel series. It seems like no patches for 2.4 kernels are available.&lt;br /&gt;
&lt;br /&gt;
To enable it, go to &amp;lt;tt&amp;gt;Power management options&amp;lt;/tt&amp;gt; and enable &amp;lt;tt&amp;gt;Power management support&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Software Suspend&amp;lt;/tt&amp;gt; in the kernel config menu. You'll also want to give the swap partition to suspend to in &amp;lt;tt&amp;gt;Default resume partition&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In case you prefer to edit your config file directly, you should have the following three entries look like here...&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND=y&lt;br /&gt;
 CONFIG_PM_STD_PARTITION=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
...where &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; needs to be replaced by the swap partition you want to use for suspending. (Use {{cmdroot|fdisk -l /dev/hda}} if unsure.)&lt;br /&gt;
&lt;br /&gt;
You can override the default resume partition anytime by giving &amp;lt;tt&amp;gt;resume=/dev/resume_partition&amp;lt;/tt&amp;gt; as kernel boot parameter.&lt;br /&gt;
Also, in case you suspended, but want to boot up normally (without resuming from the saved image - loosing all data that was unsaved at suspend time), you can give the &amp;lt;tt&amp;gt;noresume&amp;lt;/tt&amp;gt; kernel boot parameter.&lt;br /&gt;
&lt;br /&gt;
To suspend you can either do a simple {{cmdroot|echo -n 4 &amp;gt; /proc/acpi/sleep}} (recommended) or use the [http://softwaresuspend.berlios.de/old-site/swsusp/sysvinit-2.76-v2-for_swsusp-v5.tar.gz patched SysVInit] and call {{cmdroot|swsusp}} or {{cmdroot|shutdown -z now}}.&lt;br /&gt;
&lt;br /&gt;
Ideally you would do this from a script like {{path|/etc/acpi/actions/hibernate.sh}}. It has proven to be a good idea to shutdown the following processes/drivers within the script before you do the actual suspend.&lt;br /&gt;
*any running mysql server&lt;br /&gt;
*the linuxant driver may require stopping in a acpi script as well. {{cmdroot|dldrstop}} does the trick.&lt;br /&gt;
&lt;br /&gt;
Afterwards you might want to enable them again, as well as run a script that does necessary configurations according to the ac power state.&lt;br /&gt;
Furthermore, the system clock is not readjusted automatically, so you will probably also want the do that from that script (i.e. by restarting your systemclock bootup script).&lt;br /&gt;
&lt;br /&gt;
If the sound output is silent after resume, these commands might help to get sound to work again without reloading any modules:&lt;br /&gt;
&lt;br /&gt;
 amixer set Master mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set Master unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Finally you should take note that swsusp does not set the ACPI S4 state. Instead it goes to S5. This means that the machine itself doesn't know that it was suspend rather than shutdown. Hence you can i.e. boot a parallel installed other operating system and resume your linux session later, as long as you don't touch the swap partition the image was saved to.&lt;br /&gt;
&lt;br /&gt;
===using SoftwareSuspend2===&lt;br /&gt;
First apply Software Suspend 2 patches from http://softwaresuspend.berlios.de/ if they are not already in your kernel.&lt;br /&gt;
&lt;br /&gt;
Be sure to also read the http://softwaresuspend.berlios.de/HOWTO.html&lt;br /&gt;
&lt;br /&gt;
These are the options for the kernel. Make sure to change the &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; to your swap partition, i.e. {{path|/dev/hda5}}.&lt;br /&gt;
&lt;br /&gt;
 # Software Suspend 2&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_KEEP_IMAGE is not set&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE=y&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEBUG is not set&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEVELOPER is not set&lt;br /&gt;
&lt;br /&gt;
Next, compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
In the meantime, add the following to the kernel parameters: &amp;lt;tt&amp;gt;resume2=swap:/dev/resume_partition&amp;lt;/tt&amp;gt;. Again change &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; to your swap partition.&lt;br /&gt;
&lt;br /&gt;
Install the hibernation script:&lt;br /&gt;
*For {{Gentoo}} users: emerge hibernate-script&amp;lt;br /&amp;gt;&lt;br /&gt;
*For {{Fedora}} users: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&amp;lt;br /&amp;gt;&lt;br /&gt;
*For all other users, check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://softwaresuspend.berlios.de/&lt;br /&gt;
*{{Debian}} users using initrd image, make sure you 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.&lt;br /&gt;
&lt;br /&gt;
Restart using the new kernel and run the script to test it: {{cmdroot|/usr/sbin/hibernate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6797</id>
		<title>How to make ACPI work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6797"/>
		<updated>2005-07-24T12:05:24Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: /* using SoftwareSuspend2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==general==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
First of all you'll have to enable ACPI support in your kernel (if your distro doesn't already have an ACPI enabled kernel).&lt;br /&gt;
To do this open your kernel config, go to &amp;lt;code&amp;gt;Power management options&amp;lt;/code&amp;gt;, enable &amp;lt;code&amp;gt;Power Management support&amp;lt;/code&amp;gt;, go to &amp;lt;code&amp;gt;ACPI&amp;lt;/code&amp;gt; and enable the needed options. You'd most likely want to enable &amp;lt;code&amp;gt;Sleep States&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AC Adapter&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Battery&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Processor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Thermal Zone&amp;lt;/code&amp;gt;. Then recompile your kernel.&lt;br /&gt;
&lt;br /&gt;
If you prefer editing your {{path|.config}} file directly, you should set at least the following variables:&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_ACPI_BOOT=y&lt;br /&gt;
 CONFIG_ACPI_INTERPRETER=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP_PROC_FS=y&lt;br /&gt;
 CONFIG_ACPI_AC=y&lt;br /&gt;
 CONFIG_ACPI_BATTERY=y&lt;br /&gt;
 CONFIG_ACPI_BUTTON=y&lt;br /&gt;
 CONFIG_ACPI_FAN=y&lt;br /&gt;
 CONFIG_ACPI_PROCESSOR=y&lt;br /&gt;
 CONFIG_ACPI_THERMAL=y&lt;br /&gt;
 CONFIG_ACPI_BUS=y&lt;br /&gt;
 CONFIG_ACPI_EC=y&lt;br /&gt;
 CONFIG_ACPI_POWER=y&lt;br /&gt;
 CONFIG_ACPI_PCI=y&lt;br /&gt;
 CONFIG_ACPI_SYSTEM=y&lt;br /&gt;
&lt;br /&gt;
===IBM specific ACPI driver===&lt;br /&gt;
Unfortunately, special drivers for ACPI on ThinkPads were not included with kernels prior 2.6.10. So you'll have to compile one yourself or get it as precompiled module for your kernel.&lt;br /&gt;
&lt;br /&gt;
You have the choice between [[thinkpad-acpi]] and [[ibm-acpi]], with the latter being the recommended one.&lt;br /&gt;
&lt;br /&gt;
If you use a post-2.6.10 kernel and you want to use [[ibm-acpi]], it is recommended to look on its projects page for a possibly newer version.&lt;br /&gt;
&lt;br /&gt;
{{HINT|In general it is a good idea to read the README included with the driver.}}&lt;br /&gt;
&lt;br /&gt;
===ACPI daemon===&lt;br /&gt;
Also you'll need to install [[acpid]], if it isn't present on your system. [[acpid]] is a daemon that handles the ACPI events generated by the system. Read [[How to configure acpid]].&lt;br /&gt;
&lt;br /&gt;
==Screen blanking (Standby)==&lt;br /&gt;
Make sure you have &lt;br /&gt;
 Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
in the Monitor section of your {{path|/etc/X11/XF86Config}} or {{path|/etc/X11/xorg.conf}}.&lt;br /&gt;
&lt;br /&gt;
Running {{cmd|xset +dpms}} and then {{cmd|xset dpms force off}} will turn off the backlight on a laptop screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this may not work in combination with {{cmd|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} because switching to console causes the backlight to come back on before sleeping.&lt;br /&gt;
&lt;br /&gt;
==Suspend to RAM (Sleep)==&lt;br /&gt;
ACPI Sleep/suspend-to-ram with recent 2.6.x kernels usually works fine. Have a look at the [[How to configure acpid|acpid configuration HOWTO]]. It includes a specific example for going to sleep on lid close.&lt;br /&gt;
&lt;br /&gt;
The following glitches may or may not occur in relation to suspending to RAM:&lt;br /&gt;
* With a 2.6.9 or 2.6.10 kernel, when resuming from a suspend-to-ram the display might remain black (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). This can be fixed by adding &amp;lt;tt&amp;gt;acpi_sleep=s3_bios&amp;lt;/tt&amp;gt; to the kernel boot parameters. It seems this problem is solved in 2.6.11-rc1.&lt;br /&gt;
* When your system is equiped with a Radeon Mobility graphic controller your [[Problem with LCD backlight remaining on during ACPI sleep|LCD backlight may not turn off automatically]]. Use [[radeontool]] to switch off your backlight prior suspend in your sleep action script.&lt;br /&gt;
* Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]].&lt;br /&gt;
* You may experience problems when using {{cmdroot|echo standby &amp;gt; /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 &amp;gt;/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running.&lt;br /&gt;
* Problems with the serial port of the port replicator after the wake up from ram have also been experienced.&lt;br /&gt;
* Crash on resume&lt;br /&gt;
** ...when using ATI proprietary drivers can be solved by using [http://freshmeat.net/projects/vbetool/ vbetool].&lt;br /&gt;
** ...might be solved by disabling ''APIC'' (@Processor type and features) in the kernel configuration&lt;br /&gt;
* If your suspend is failing, and a tail of {{path|/var/log/acpid}} shows &amp;quot;Permission denied&amp;quot; errors, be sure that your new ACPI event and action scripts have the appropriate permissions&lt;br /&gt;
* Due to the fact that Sonoma chipset based laptops (T43, T43p) utilize the SATA layer for disk access and SATA does not have power-management support yet Suspend to RAM does not work on these machines. However, Jens Axboe's patch ([http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111504542402455&amp;amp;w=2] LKML posting) provides SATA power-management support and makes Suspend to RAM work on the T43 at least. (Tested on 2.6.12rc6 which the patch applies to with some offsets. T43p not tested but should work as well. X41: reboot after wake up.)&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12-rc6.diff 2.6.12-rc6 patch]&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12.diff 2.6.12 patch]&lt;br /&gt;
&lt;br /&gt;
==Suspend to disk (Hibernate)==&lt;br /&gt;
There are two drivers for this available:&lt;br /&gt;
* swsusp, which is in the kernel and&lt;br /&gt;
* [http://developer.berlios.de/projects/softwaresuspend/ SoftwareSuspend2] which is more feature rich, but not yet in the kernel, so you have to patch it in yourself&lt;br /&gt;
Both are reported to work fine as long as you use open-source graphic drivers. A comparison of the features can be found on [http://softwaresuspend.berlios.de/features.html this page].&lt;br /&gt;
&lt;br /&gt;
Just in case you are in doubt...yes, it is safe in both cases to use the same swap partition as active swap and as suspend partition.&lt;br /&gt;
&lt;br /&gt;
===using swsusp===&lt;br /&gt;
Software Suspend (swsusp) is included in the 2.6 kernel series. It seems like no patches for 2.4 kernels are available.&lt;br /&gt;
&lt;br /&gt;
To enable it, go to &amp;lt;tt&amp;gt;Power management options&amp;lt;/tt&amp;gt; and enable &amp;lt;tt&amp;gt;Power management support&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Software Suspend&amp;lt;/tt&amp;gt; in the kernel config menu. You'll also want to give the swap partition to suspend to in &amp;lt;tt&amp;gt;Default resume partition&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In case you prefer to edit your config file directly, you should have the following three entries look like here...&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND=y&lt;br /&gt;
 CONFIG_PM_STD_PARTITION=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
...where &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; needs to be replaced by the swap partition you want to use for suspending. (Use {{cmdroot|fdisk -l /dev/hda}} if unsure.)&lt;br /&gt;
&lt;br /&gt;
You can override the default resume partition anytime by giving &amp;lt;tt&amp;gt;resume=/dev/resume_partition&amp;lt;/tt&amp;gt; as kernel boot parameter.&lt;br /&gt;
Also, in case you suspended, but want to boot up normally (without resuming from the saved image - loosing all data that was unsaved at suspend time), you can give the &amp;lt;tt&amp;gt;noresume&amp;lt;/tt&amp;gt; kernel boot parameter.&lt;br /&gt;
&lt;br /&gt;
To suspend you can either do a simple {{cmdroot|echo -n 4 &amp;gt; /proc/acpi/sleep}} (recommended) or use the [http://softwaresuspend.berlios.de/old-site/swsusp/sysvinit-2.76-v2-for_swsusp-v5.tar.gz patched SysVInit] and call {{cmdroot|swsusp}} or {{cmdroot|shutdown -z now}}.&lt;br /&gt;
&lt;br /&gt;
Ideally you would do this from a script like {{path|/etc/acpi/actions/hibernate.sh}}. It has proven to be a good idea to shutdown the following processes/drivers within the script before you do the actual suspend.&lt;br /&gt;
*any running mysql server&lt;br /&gt;
*the linuxant driver may require stopping in a acpi script as well. {{cmdroot|dldrstop}} does the trick.&lt;br /&gt;
&lt;br /&gt;
Afterwards you might want to enable them again, as well as run a script that does necessary configurations according to the ac power state.&lt;br /&gt;
Furthermore, the system clock is not readjusted automatically, so you will probably also want the do that from that script (i.e. by restarting your systemclock bootup script).&lt;br /&gt;
&lt;br /&gt;
If the sound output is silent after resume, these commands might help to get sound to work again without reloading any modules:&lt;br /&gt;
&lt;br /&gt;
 amixer set Master mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set Master unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Finally you should take note that swsusp does not set the ACPI S4 state. Instead it goes to S5. This means that the machine itself doesn't know that it was suspend rather than shutdown. Hence you can i.e. boot a parallel installed other operating system and resume your linux session later, as long as you don't touch the swap partition the image was saved to.&lt;br /&gt;
&lt;br /&gt;
===using SoftwareSuspend2===&lt;br /&gt;
First apply Software Suspend 2 patches from http://softwaresuspend.berlios.de/ if they are not already in your kernel.&lt;br /&gt;
&lt;br /&gt;
Be sure to also read the http://softwaresuspend.berlios.de/HOWTO.html&lt;br /&gt;
&lt;br /&gt;
These are the options for the kernel. You can change the &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; to your swap partition&lt;br /&gt;
&lt;br /&gt;
 # Software Suspend 2&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_KEEP_IMAGE is not set&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE=y&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEBUG is not set&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEVELOPER is not set&lt;br /&gt;
&lt;br /&gt;
Next, compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
In the meantime, add the following to the kernel parameters: &amp;lt;tt&amp;gt;resume2=swap:/dev/resume_partition&amp;lt;/tt&amp;gt;. Again change &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; to your swap partition.&lt;br /&gt;
&lt;br /&gt;
Install the hibernation script:&lt;br /&gt;
*For {{Gentoo}} users: emerge hibernate-script&amp;lt;br /&amp;gt;&lt;br /&gt;
*For {{Fedora}} users: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&amp;lt;br /&amp;gt;&lt;br /&gt;
*For all other users, check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://softwaresuspend.berlios.de/&lt;br /&gt;
*{{Debian}} users using initrd image, make sure you 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.&lt;br /&gt;
&lt;br /&gt;
Restart using the new kernel and run the script to test it: {{cmdroot|/usr/sbin/hibernate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6796</id>
		<title>How to make ACPI work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6796"/>
		<updated>2005-07-24T12:05:14Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: /* using SoftwareSuspend2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==general==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
First of all you'll have to enable ACPI support in your kernel (if your distro doesn't already have an ACPI enabled kernel).&lt;br /&gt;
To do this open your kernel config, go to &amp;lt;code&amp;gt;Power management options&amp;lt;/code&amp;gt;, enable &amp;lt;code&amp;gt;Power Management support&amp;lt;/code&amp;gt;, go to &amp;lt;code&amp;gt;ACPI&amp;lt;/code&amp;gt; and enable the needed options. You'd most likely want to enable &amp;lt;code&amp;gt;Sleep States&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AC Adapter&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Battery&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Processor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Thermal Zone&amp;lt;/code&amp;gt;. Then recompile your kernel.&lt;br /&gt;
&lt;br /&gt;
If you prefer editing your {{path|.config}} file directly, you should set at least the following variables:&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_ACPI_BOOT=y&lt;br /&gt;
 CONFIG_ACPI_INTERPRETER=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP_PROC_FS=y&lt;br /&gt;
 CONFIG_ACPI_AC=y&lt;br /&gt;
 CONFIG_ACPI_BATTERY=y&lt;br /&gt;
 CONFIG_ACPI_BUTTON=y&lt;br /&gt;
 CONFIG_ACPI_FAN=y&lt;br /&gt;
 CONFIG_ACPI_PROCESSOR=y&lt;br /&gt;
 CONFIG_ACPI_THERMAL=y&lt;br /&gt;
 CONFIG_ACPI_BUS=y&lt;br /&gt;
 CONFIG_ACPI_EC=y&lt;br /&gt;
 CONFIG_ACPI_POWER=y&lt;br /&gt;
 CONFIG_ACPI_PCI=y&lt;br /&gt;
 CONFIG_ACPI_SYSTEM=y&lt;br /&gt;
&lt;br /&gt;
===IBM specific ACPI driver===&lt;br /&gt;
Unfortunately, special drivers for ACPI on ThinkPads were not included with kernels prior 2.6.10. So you'll have to compile one yourself or get it as precompiled module for your kernel.&lt;br /&gt;
&lt;br /&gt;
You have the choice between [[thinkpad-acpi]] and [[ibm-acpi]], with the latter being the recommended one.&lt;br /&gt;
&lt;br /&gt;
If you use a post-2.6.10 kernel and you want to use [[ibm-acpi]], it is recommended to look on its projects page for a possibly newer version.&lt;br /&gt;
&lt;br /&gt;
{{HINT|In general it is a good idea to read the README included with the driver.}}&lt;br /&gt;
&lt;br /&gt;
===ACPI daemon===&lt;br /&gt;
Also you'll need to install [[acpid]], if it isn't present on your system. [[acpid]] is a daemon that handles the ACPI events generated by the system. Read [[How to configure acpid]].&lt;br /&gt;
&lt;br /&gt;
==Screen blanking (Standby)==&lt;br /&gt;
Make sure you have &lt;br /&gt;
 Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
in the Monitor section of your {{path|/etc/X11/XF86Config}} or {{path|/etc/X11/xorg.conf}}.&lt;br /&gt;
&lt;br /&gt;
Running {{cmd|xset +dpms}} and then {{cmd|xset dpms force off}} will turn off the backlight on a laptop screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this may not work in combination with {{cmd|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} because switching to console causes the backlight to come back on before sleeping.&lt;br /&gt;
&lt;br /&gt;
==Suspend to RAM (Sleep)==&lt;br /&gt;
ACPI Sleep/suspend-to-ram with recent 2.6.x kernels usually works fine. Have a look at the [[How to configure acpid|acpid configuration HOWTO]]. It includes a specific example for going to sleep on lid close.&lt;br /&gt;
&lt;br /&gt;
The following glitches may or may not occur in relation to suspending to RAM:&lt;br /&gt;
* With a 2.6.9 or 2.6.10 kernel, when resuming from a suspend-to-ram the display might remain black (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). This can be fixed by adding &amp;lt;tt&amp;gt;acpi_sleep=s3_bios&amp;lt;/tt&amp;gt; to the kernel boot parameters. It seems this problem is solved in 2.6.11-rc1.&lt;br /&gt;
* When your system is equiped with a Radeon Mobility graphic controller your [[Problem with LCD backlight remaining on during ACPI sleep|LCD backlight may not turn off automatically]]. Use [[radeontool]] to switch off your backlight prior suspend in your sleep action script.&lt;br /&gt;
* Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]].&lt;br /&gt;
* You may experience problems when using {{cmdroot|echo standby &amp;gt; /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 &amp;gt;/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running.&lt;br /&gt;
* Problems with the serial port of the port replicator after the wake up from ram have also been experienced.&lt;br /&gt;
* Crash on resume&lt;br /&gt;
** ...when using ATI proprietary drivers can be solved by using [http://freshmeat.net/projects/vbetool/ vbetool].&lt;br /&gt;
** ...might be solved by disabling ''APIC'' (@Processor type and features) in the kernel configuration&lt;br /&gt;
* If your suspend is failing, and a tail of {{path|/var/log/acpid}} shows &amp;quot;Permission denied&amp;quot; errors, be sure that your new ACPI event and action scripts have the appropriate permissions&lt;br /&gt;
* Due to the fact that Sonoma chipset based laptops (T43, T43p) utilize the SATA layer for disk access and SATA does not have power-management support yet Suspend to RAM does not work on these machines. However, Jens Axboe's patch ([http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111504542402455&amp;amp;w=2] LKML posting) provides SATA power-management support and makes Suspend to RAM work on the T43 at least. (Tested on 2.6.12rc6 which the patch applies to with some offsets. T43p not tested but should work as well. X41: reboot after wake up.)&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12-rc6.diff 2.6.12-rc6 patch]&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12.diff 2.6.12 patch]&lt;br /&gt;
&lt;br /&gt;
==Suspend to disk (Hibernate)==&lt;br /&gt;
There are two drivers for this available:&lt;br /&gt;
* swsusp, which is in the kernel and&lt;br /&gt;
* [http://developer.berlios.de/projects/softwaresuspend/ SoftwareSuspend2] which is more feature rich, but not yet in the kernel, so you have to patch it in yourself&lt;br /&gt;
Both are reported to work fine as long as you use open-source graphic drivers. A comparison of the features can be found on [http://softwaresuspend.berlios.de/features.html this page].&lt;br /&gt;
&lt;br /&gt;
Just in case you are in doubt...yes, it is safe in both cases to use the same swap partition as active swap and as suspend partition.&lt;br /&gt;
&lt;br /&gt;
===using swsusp===&lt;br /&gt;
Software Suspend (swsusp) is included in the 2.6 kernel series. It seems like no patches for 2.4 kernels are available.&lt;br /&gt;
&lt;br /&gt;
To enable it, go to &amp;lt;tt&amp;gt;Power management options&amp;lt;/tt&amp;gt; and enable &amp;lt;tt&amp;gt;Power management support&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Software Suspend&amp;lt;/tt&amp;gt; in the kernel config menu. You'll also want to give the swap partition to suspend to in &amp;lt;tt&amp;gt;Default resume partition&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In case you prefer to edit your config file directly, you should have the following three entries look like here...&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND=y&lt;br /&gt;
 CONFIG_PM_STD_PARTITION=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
...where &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; needs to be replaced by the swap partition you want to use for suspending. (Use {{cmdroot|fdisk -l /dev/hda}} if unsure.)&lt;br /&gt;
&lt;br /&gt;
You can override the default resume partition anytime by giving &amp;lt;tt&amp;gt;resume=/dev/resume_partition&amp;lt;/tt&amp;gt; as kernel boot parameter.&lt;br /&gt;
Also, in case you suspended, but want to boot up normally (without resuming from the saved image - loosing all data that was unsaved at suspend time), you can give the &amp;lt;tt&amp;gt;noresume&amp;lt;/tt&amp;gt; kernel boot parameter.&lt;br /&gt;
&lt;br /&gt;
To suspend you can either do a simple {{cmdroot|echo -n 4 &amp;gt; /proc/acpi/sleep}} (recommended) or use the [http://softwaresuspend.berlios.de/old-site/swsusp/sysvinit-2.76-v2-for_swsusp-v5.tar.gz patched SysVInit] and call {{cmdroot|swsusp}} or {{cmdroot|shutdown -z now}}.&lt;br /&gt;
&lt;br /&gt;
Ideally you would do this from a script like {{path|/etc/acpi/actions/hibernate.sh}}. It has proven to be a good idea to shutdown the following processes/drivers within the script before you do the actual suspend.&lt;br /&gt;
*any running mysql server&lt;br /&gt;
*the linuxant driver may require stopping in a acpi script as well. {{cmdroot|dldrstop}} does the trick.&lt;br /&gt;
&lt;br /&gt;
Afterwards you might want to enable them again, as well as run a script that does necessary configurations according to the ac power state.&lt;br /&gt;
Furthermore, the system clock is not readjusted automatically, so you will probably also want the do that from that script (i.e. by restarting your systemclock bootup script).&lt;br /&gt;
&lt;br /&gt;
If the sound output is silent after resume, these commands might help to get sound to work again without reloading any modules:&lt;br /&gt;
&lt;br /&gt;
 amixer set Master mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set Master unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Finally you should take note that swsusp does not set the ACPI S4 state. Instead it goes to S5. This means that the machine itself doesn't know that it was suspend rather than shutdown. Hence you can i.e. boot a parallel installed other operating system and resume your linux session later, as long as you don't touch the swap partition the image was saved to.&lt;br /&gt;
&lt;br /&gt;
===using SoftwareSuspend2===&lt;br /&gt;
First apply Software Suspend 2 patches from http://softwaresuspend.berlios.de/ if they are not already in your kernel.&lt;br /&gt;
&lt;br /&gt;
Be sure to also read the http://softwaresuspend.berlios.de/HOWTO.html&lt;br /&gt;
&lt;br /&gt;
These are the options for the kernel. You can change the &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; to your swap partition&lt;br /&gt;
&lt;br /&gt;
 # Software Suspend 2&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_KEEP_IMAGE is not set&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE=y&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEBUG is not set&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEVELOPER is not set&lt;br /&gt;
&lt;br /&gt;
Next, compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
In the meantime, add the following to the kernel parameters: &amp;lt;tt&amp;gt;resume2=swap:/dev/resume_partition/tt&amp;gt;. Again change &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; to your swap partition.&lt;br /&gt;
&lt;br /&gt;
Install the hibernation script:&lt;br /&gt;
*For {{Gentoo}} users: emerge hibernate-script&amp;lt;br /&amp;gt;&lt;br /&gt;
*For {{Fedora}} users: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&amp;lt;br /&amp;gt;&lt;br /&gt;
*For all other users, check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://softwaresuspend.berlios.de/&lt;br /&gt;
*{{Debian}} users using initrd image, make sure you 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.&lt;br /&gt;
&lt;br /&gt;
Restart using the new kernel and run the script to test it: {{cmdroot|/usr/sbin/hibernate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6795</id>
		<title>How to make ACPI work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6795"/>
		<updated>2005-07-24T12:01:39Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: /* Screen blanking (Standby) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==general==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
First of all you'll have to enable ACPI support in your kernel (if your distro doesn't already have an ACPI enabled kernel).&lt;br /&gt;
To do this open your kernel config, go to &amp;lt;code&amp;gt;Power management options&amp;lt;/code&amp;gt;, enable &amp;lt;code&amp;gt;Power Management support&amp;lt;/code&amp;gt;, go to &amp;lt;code&amp;gt;ACPI&amp;lt;/code&amp;gt; and enable the needed options. You'd most likely want to enable &amp;lt;code&amp;gt;Sleep States&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AC Adapter&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Battery&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Processor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Thermal Zone&amp;lt;/code&amp;gt;. Then recompile your kernel.&lt;br /&gt;
&lt;br /&gt;
If you prefer editing your {{path|.config}} file directly, you should set at least the following variables:&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_ACPI_BOOT=y&lt;br /&gt;
 CONFIG_ACPI_INTERPRETER=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP_PROC_FS=y&lt;br /&gt;
 CONFIG_ACPI_AC=y&lt;br /&gt;
 CONFIG_ACPI_BATTERY=y&lt;br /&gt;
 CONFIG_ACPI_BUTTON=y&lt;br /&gt;
 CONFIG_ACPI_FAN=y&lt;br /&gt;
 CONFIG_ACPI_PROCESSOR=y&lt;br /&gt;
 CONFIG_ACPI_THERMAL=y&lt;br /&gt;
 CONFIG_ACPI_BUS=y&lt;br /&gt;
 CONFIG_ACPI_EC=y&lt;br /&gt;
 CONFIG_ACPI_POWER=y&lt;br /&gt;
 CONFIG_ACPI_PCI=y&lt;br /&gt;
 CONFIG_ACPI_SYSTEM=y&lt;br /&gt;
&lt;br /&gt;
===IBM specific ACPI driver===&lt;br /&gt;
Unfortunately, special drivers for ACPI on ThinkPads were not included with kernels prior 2.6.10. So you'll have to compile one yourself or get it as precompiled module for your kernel.&lt;br /&gt;
&lt;br /&gt;
You have the choice between [[thinkpad-acpi]] and [[ibm-acpi]], with the latter being the recommended one.&lt;br /&gt;
&lt;br /&gt;
If you use a post-2.6.10 kernel and you want to use [[ibm-acpi]], it is recommended to look on its projects page for a possibly newer version.&lt;br /&gt;
&lt;br /&gt;
{{HINT|In general it is a good idea to read the README included with the driver.}}&lt;br /&gt;
&lt;br /&gt;
===ACPI daemon===&lt;br /&gt;
Also you'll need to install [[acpid]], if it isn't present on your system. [[acpid]] is a daemon that handles the ACPI events generated by the system. Read [[How to configure acpid]].&lt;br /&gt;
&lt;br /&gt;
==Screen blanking (Standby)==&lt;br /&gt;
Make sure you have &lt;br /&gt;
 Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
in the Monitor section of your {{path|/etc/X11/XF86Config}} or {{path|/etc/X11/xorg.conf}}.&lt;br /&gt;
&lt;br /&gt;
Running {{cmd|xset +dpms}} and then {{cmd|xset dpms force off}} will turn off the backlight on a laptop screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this may not work in combination with {{cmd|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} because switching to console causes the backlight to come back on before sleeping.&lt;br /&gt;
&lt;br /&gt;
==Suspend to RAM (Sleep)==&lt;br /&gt;
ACPI Sleep/suspend-to-ram with recent 2.6.x kernels usually works fine. Have a look at the [[How to configure acpid|acpid configuration HOWTO]]. It includes a specific example for going to sleep on lid close.&lt;br /&gt;
&lt;br /&gt;
The following glitches may or may not occur in relation to suspending to RAM:&lt;br /&gt;
* With a 2.6.9 or 2.6.10 kernel, when resuming from a suspend-to-ram the display might remain black (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). This can be fixed by adding &amp;lt;tt&amp;gt;acpi_sleep=s3_bios&amp;lt;/tt&amp;gt; to the kernel boot parameters. It seems this problem is solved in 2.6.11-rc1.&lt;br /&gt;
* When your system is equiped with a Radeon Mobility graphic controller your [[Problem with LCD backlight remaining on during ACPI sleep|LCD backlight may not turn off automatically]]. Use [[radeontool]] to switch off your backlight prior suspend in your sleep action script.&lt;br /&gt;
* Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]].&lt;br /&gt;
* You may experience problems when using {{cmdroot|echo standby &amp;gt; /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 &amp;gt;/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running.&lt;br /&gt;
* Problems with the serial port of the port replicator after the wake up from ram have also been experienced.&lt;br /&gt;
* Crash on resume&lt;br /&gt;
** ...when using ATI proprietary drivers can be solved by using [http://freshmeat.net/projects/vbetool/ vbetool].&lt;br /&gt;
** ...might be solved by disabling ''APIC'' (@Processor type and features) in the kernel configuration&lt;br /&gt;
* If your suspend is failing, and a tail of {{path|/var/log/acpid}} shows &amp;quot;Permission denied&amp;quot; errors, be sure that your new ACPI event and action scripts have the appropriate permissions&lt;br /&gt;
* Due to the fact that Sonoma chipset based laptops (T43, T43p) utilize the SATA layer for disk access and SATA does not have power-management support yet Suspend to RAM does not work on these machines. However, Jens Axboe's patch ([http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111504542402455&amp;amp;w=2] LKML posting) provides SATA power-management support and makes Suspend to RAM work on the T43 at least. (Tested on 2.6.12rc6 which the patch applies to with some offsets. T43p not tested but should work as well. X41: reboot after wake up.)&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12-rc6.diff 2.6.12-rc6 patch]&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12.diff 2.6.12 patch]&lt;br /&gt;
&lt;br /&gt;
==Suspend to disk (Hibernate)==&lt;br /&gt;
There are two drivers for this available:&lt;br /&gt;
* swsusp, which is in the kernel and&lt;br /&gt;
* [http://developer.berlios.de/projects/softwaresuspend/ SoftwareSuspend2] which is more feature rich, but not yet in the kernel, so you have to patch it in yourself&lt;br /&gt;
Both are reported to work fine as long as you use open-source graphic drivers. A comparison of the features can be found on [http://softwaresuspend.berlios.de/features.html this page].&lt;br /&gt;
&lt;br /&gt;
Just in case you are in doubt...yes, it is safe in both cases to use the same swap partition as active swap and as suspend partition.&lt;br /&gt;
&lt;br /&gt;
===using swsusp===&lt;br /&gt;
Software Suspend (swsusp) is included in the 2.6 kernel series. It seems like no patches for 2.4 kernels are available.&lt;br /&gt;
&lt;br /&gt;
To enable it, go to &amp;lt;tt&amp;gt;Power management options&amp;lt;/tt&amp;gt; and enable &amp;lt;tt&amp;gt;Power management support&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Software Suspend&amp;lt;/tt&amp;gt; in the kernel config menu. You'll also want to give the swap partition to suspend to in &amp;lt;tt&amp;gt;Default resume partition&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In case you prefer to edit your config file directly, you should have the following three entries look like here...&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND=y&lt;br /&gt;
 CONFIG_PM_STD_PARTITION=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
...where &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; needs to be replaced by the swap partition you want to use for suspending. (Use {{cmdroot|fdisk -l /dev/hda}} if unsure.)&lt;br /&gt;
&lt;br /&gt;
You can override the default resume partition anytime by giving &amp;lt;tt&amp;gt;resume=/dev/resume_partition&amp;lt;/tt&amp;gt; as kernel boot parameter.&lt;br /&gt;
Also, in case you suspended, but want to boot up normally (without resuming from the saved image - loosing all data that was unsaved at suspend time), you can give the &amp;lt;tt&amp;gt;noresume&amp;lt;/tt&amp;gt; kernel boot parameter.&lt;br /&gt;
&lt;br /&gt;
To suspend you can either do a simple {{cmdroot|echo -n 4 &amp;gt; /proc/acpi/sleep}} (recommended) or use the [http://softwaresuspend.berlios.de/old-site/swsusp/sysvinit-2.76-v2-for_swsusp-v5.tar.gz patched SysVInit] and call {{cmdroot|swsusp}} or {{cmdroot|shutdown -z now}}.&lt;br /&gt;
&lt;br /&gt;
Ideally you would do this from a script like {{path|/etc/acpi/actions/hibernate.sh}}. It has proven to be a good idea to shutdown the following processes/drivers within the script before you do the actual suspend.&lt;br /&gt;
*any running mysql server&lt;br /&gt;
*the linuxant driver may require stopping in a acpi script as well. {{cmdroot|dldrstop}} does the trick.&lt;br /&gt;
&lt;br /&gt;
Afterwards you might want to enable them again, as well as run a script that does necessary configurations according to the ac power state.&lt;br /&gt;
Furthermore, the system clock is not readjusted automatically, so you will probably also want the do that from that script (i.e. by restarting your systemclock bootup script).&lt;br /&gt;
&lt;br /&gt;
If the sound output is silent after resume, these commands might help to get sound to work again without reloading any modules:&lt;br /&gt;
&lt;br /&gt;
 amixer set Master mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set Master unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Finally you should take note that swsusp does not set the ACPI S4 state. Instead it goes to S5. This means that the machine itself doesn't know that it was suspend rather than shutdown. Hence you can i.e. boot a parallel installed other operating system and resume your linux session later, as long as you don't touch the swap partition the image was saved to.&lt;br /&gt;
&lt;br /&gt;
===using SoftwareSuspend2===&lt;br /&gt;
First apply Software Suspend 2 patches from http://softwaresuspend.berlios.de/ if they are not already in your kernel. I am running 2.6.11-rc4-nitro in a Thinkpad T30 2366.&lt;br /&gt;
&lt;br /&gt;
Be sure to also read the http://softwaresuspend.berlios.de/HOWTO.html&lt;br /&gt;
&lt;br /&gt;
These are the options for the kernel. You can change the &amp;lt;tt&amp;gt;/dev/hda5&amp;lt;/tt&amp;gt; to your swap partition&lt;br /&gt;
&lt;br /&gt;
 # Software Suspend 2&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2=&amp;quot;/dev/hda5&amp;quot;&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_KEEP_IMAGE is not set&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE=y&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEBUG is not set&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEVELOPER is not set&lt;br /&gt;
&lt;br /&gt;
Next, compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
In the meantime, add the following to the kernel parameters: &amp;lt;tt&amp;gt;resume2=swap:/dev/hda5&amp;lt;/tt&amp;gt;. Again change &amp;lt;tt&amp;gt;/dev/hda5&amp;lt;/tt&amp;gt; to your swap partition.&lt;br /&gt;
&lt;br /&gt;
Install the hibernation script:&lt;br /&gt;
*For {{Gentoo}} users: emerge hibernate-script&amp;lt;br /&amp;gt;&lt;br /&gt;
*For {{Fedora}} users: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&amp;lt;br /&amp;gt;&lt;br /&gt;
*For all other users, check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://softwaresuspend.berlios.de/&lt;br /&gt;
*{{Debian}} users using initrd image, make sure you 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.&lt;br /&gt;
&lt;br /&gt;
Restart using the new kernel and run the script to test it: {{cmdroot|/usr/sbin/hibernate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6794</id>
		<title>How to make ACPI work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6794"/>
		<updated>2005-07-24T12:00:11Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: /* IBM specific ACPI driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==general==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
First of all you'll have to enable ACPI support in your kernel (if your distro doesn't already have an ACPI enabled kernel).&lt;br /&gt;
To do this open your kernel config, go to &amp;lt;code&amp;gt;Power management options&amp;lt;/code&amp;gt;, enable &amp;lt;code&amp;gt;Power Management support&amp;lt;/code&amp;gt;, go to &amp;lt;code&amp;gt;ACPI&amp;lt;/code&amp;gt; and enable the needed options. You'd most likely want to enable &amp;lt;code&amp;gt;Sleep States&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AC Adapter&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Battery&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Processor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Thermal Zone&amp;lt;/code&amp;gt;. Then recompile your kernel.&lt;br /&gt;
&lt;br /&gt;
If you prefer editing your {{path|.config}} file directly, you should set at least the following variables:&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_ACPI_BOOT=y&lt;br /&gt;
 CONFIG_ACPI_INTERPRETER=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP_PROC_FS=y&lt;br /&gt;
 CONFIG_ACPI_AC=y&lt;br /&gt;
 CONFIG_ACPI_BATTERY=y&lt;br /&gt;
 CONFIG_ACPI_BUTTON=y&lt;br /&gt;
 CONFIG_ACPI_FAN=y&lt;br /&gt;
 CONFIG_ACPI_PROCESSOR=y&lt;br /&gt;
 CONFIG_ACPI_THERMAL=y&lt;br /&gt;
 CONFIG_ACPI_BUS=y&lt;br /&gt;
 CONFIG_ACPI_EC=y&lt;br /&gt;
 CONFIG_ACPI_POWER=y&lt;br /&gt;
 CONFIG_ACPI_PCI=y&lt;br /&gt;
 CONFIG_ACPI_SYSTEM=y&lt;br /&gt;
&lt;br /&gt;
===IBM specific ACPI driver===&lt;br /&gt;
Unfortunately, special drivers for ACPI on ThinkPads were not included with kernels prior 2.6.10. So you'll have to compile one yourself or get it as precompiled module for your kernel.&lt;br /&gt;
&lt;br /&gt;
You have the choice between [[thinkpad-acpi]] and [[ibm-acpi]], with the latter being the recommended one.&lt;br /&gt;
&lt;br /&gt;
If you use a post-2.6.10 kernel and you want to use [[ibm-acpi]], it is recommended to look on its projects page for a possibly newer version.&lt;br /&gt;
&lt;br /&gt;
{{HINT|In general it is a good idea to read the README included with the driver.}}&lt;br /&gt;
&lt;br /&gt;
===ACPI daemon===&lt;br /&gt;
Also you'll need to install [[acpid]], if it isn't present on your system. [[acpid]] is a daemon that handles the ACPI events generated by the system. Read [[How to configure acpid]].&lt;br /&gt;
&lt;br /&gt;
==Screen blanking (Standby)==&lt;br /&gt;
Make sure you have &lt;br /&gt;
 Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
in the Monitor section of your XF86Config/xorg.conf.&lt;br /&gt;
&lt;br /&gt;
Running {{cmd|xset +dpms}} and then {{cmd|xset dpms force off}} will turn off the backlight on a laptop screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this may not work in combination with {{cmd|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} because switching to console causes the backlight to come back on before sleeping.&lt;br /&gt;
&lt;br /&gt;
==Suspend to RAM (Sleep)==&lt;br /&gt;
ACPI Sleep/suspend-to-ram with recent 2.6.x kernels usually works fine. Have a look at the [[How to configure acpid|acpid configuration HOWTO]]. It includes a specific example for going to sleep on lid close.&lt;br /&gt;
&lt;br /&gt;
The following glitches may or may not occur in relation to suspending to RAM:&lt;br /&gt;
* With a 2.6.9 or 2.6.10 kernel, when resuming from a suspend-to-ram the display might remain black (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). This can be fixed by adding &amp;lt;tt&amp;gt;acpi_sleep=s3_bios&amp;lt;/tt&amp;gt; to the kernel boot parameters. It seems this problem is solved in 2.6.11-rc1.&lt;br /&gt;
* When your system is equiped with a Radeon Mobility graphic controller your [[Problem with LCD backlight remaining on during ACPI sleep|LCD backlight may not turn off automatically]]. Use [[radeontool]] to switch off your backlight prior suspend in your sleep action script.&lt;br /&gt;
* Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]].&lt;br /&gt;
* You may experience problems when using {{cmdroot|echo standby &amp;gt; /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 &amp;gt;/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running.&lt;br /&gt;
* Problems with the serial port of the port replicator after the wake up from ram have also been experienced.&lt;br /&gt;
* Crash on resume&lt;br /&gt;
** ...when using ATI proprietary drivers can be solved by using [http://freshmeat.net/projects/vbetool/ vbetool].&lt;br /&gt;
** ...might be solved by disabling ''APIC'' (@Processor type and features) in the kernel configuration&lt;br /&gt;
* If your suspend is failing, and a tail of {{path|/var/log/acpid}} shows &amp;quot;Permission denied&amp;quot; errors, be sure that your new ACPI event and action scripts have the appropriate permissions&lt;br /&gt;
* Due to the fact that Sonoma chipset based laptops (T43, T43p) utilize the SATA layer for disk access and SATA does not have power-management support yet Suspend to RAM does not work on these machines. However, Jens Axboe's patch ([http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111504542402455&amp;amp;w=2] LKML posting) provides SATA power-management support and makes Suspend to RAM work on the T43 at least. (Tested on 2.6.12rc6 which the patch applies to with some offsets. T43p not tested but should work as well. X41: reboot after wake up.)&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12-rc6.diff 2.6.12-rc6 patch]&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12.diff 2.6.12 patch]&lt;br /&gt;
&lt;br /&gt;
==Suspend to disk (Hibernate)==&lt;br /&gt;
There are two drivers for this available:&lt;br /&gt;
* swsusp, which is in the kernel and&lt;br /&gt;
* [http://developer.berlios.de/projects/softwaresuspend/ SoftwareSuspend2] which is more feature rich, but not yet in the kernel, so you have to patch it in yourself&lt;br /&gt;
Both are reported to work fine as long as you use open-source graphic drivers. A comparison of the features can be found on [http://softwaresuspend.berlios.de/features.html this page].&lt;br /&gt;
&lt;br /&gt;
Just in case you are in doubt...yes, it is safe in both cases to use the same swap partition as active swap and as suspend partition.&lt;br /&gt;
&lt;br /&gt;
===using swsusp===&lt;br /&gt;
Software Suspend (swsusp) is included in the 2.6 kernel series. It seems like no patches for 2.4 kernels are available.&lt;br /&gt;
&lt;br /&gt;
To enable it, go to &amp;lt;tt&amp;gt;Power management options&amp;lt;/tt&amp;gt; and enable &amp;lt;tt&amp;gt;Power management support&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Software Suspend&amp;lt;/tt&amp;gt; in the kernel config menu. You'll also want to give the swap partition to suspend to in &amp;lt;tt&amp;gt;Default resume partition&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In case you prefer to edit your config file directly, you should have the following three entries look like here...&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND=y&lt;br /&gt;
 CONFIG_PM_STD_PARTITION=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
...where &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; needs to be replaced by the swap partition you want to use for suspending. (Use {{cmdroot|fdisk -l /dev/hda}} if unsure.)&lt;br /&gt;
&lt;br /&gt;
You can override the default resume partition anytime by giving &amp;lt;tt&amp;gt;resume=/dev/resume_partition&amp;lt;/tt&amp;gt; as kernel boot parameter.&lt;br /&gt;
Also, in case you suspended, but want to boot up normally (without resuming from the saved image - loosing all data that was unsaved at suspend time), you can give the &amp;lt;tt&amp;gt;noresume&amp;lt;/tt&amp;gt; kernel boot parameter.&lt;br /&gt;
&lt;br /&gt;
To suspend you can either do a simple {{cmdroot|echo -n 4 &amp;gt; /proc/acpi/sleep}} (recommended) or use the [http://softwaresuspend.berlios.de/old-site/swsusp/sysvinit-2.76-v2-for_swsusp-v5.tar.gz patched SysVInit] and call {{cmdroot|swsusp}} or {{cmdroot|shutdown -z now}}.&lt;br /&gt;
&lt;br /&gt;
Ideally you would do this from a script like {{path|/etc/acpi/actions/hibernate.sh}}. It has proven to be a good idea to shutdown the following processes/drivers within the script before you do the actual suspend.&lt;br /&gt;
*any running mysql server&lt;br /&gt;
*the linuxant driver may require stopping in a acpi script as well. {{cmdroot|dldrstop}} does the trick.&lt;br /&gt;
&lt;br /&gt;
Afterwards you might want to enable them again, as well as run a script that does necessary configurations according to the ac power state.&lt;br /&gt;
Furthermore, the system clock is not readjusted automatically, so you will probably also want the do that from that script (i.e. by restarting your systemclock bootup script).&lt;br /&gt;
&lt;br /&gt;
If the sound output is silent after resume, these commands might help to get sound to work again without reloading any modules:&lt;br /&gt;
&lt;br /&gt;
 amixer set Master mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set Master unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Finally you should take note that swsusp does not set the ACPI S4 state. Instead it goes to S5. This means that the machine itself doesn't know that it was suspend rather than shutdown. Hence you can i.e. boot a parallel installed other operating system and resume your linux session later, as long as you don't touch the swap partition the image was saved to.&lt;br /&gt;
&lt;br /&gt;
===using SoftwareSuspend2===&lt;br /&gt;
First apply Software Suspend 2 patches from http://softwaresuspend.berlios.de/ if they are not already in your kernel. I am running 2.6.11-rc4-nitro in a Thinkpad T30 2366.&lt;br /&gt;
&lt;br /&gt;
Be sure to also read the http://softwaresuspend.berlios.de/HOWTO.html&lt;br /&gt;
&lt;br /&gt;
These are the options for the kernel. You can change the &amp;lt;tt&amp;gt;/dev/hda5&amp;lt;/tt&amp;gt; to your swap partition&lt;br /&gt;
&lt;br /&gt;
 # Software Suspend 2&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2=&amp;quot;/dev/hda5&amp;quot;&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_KEEP_IMAGE is not set&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE=y&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEBUG is not set&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEVELOPER is not set&lt;br /&gt;
&lt;br /&gt;
Next, compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
In the meantime, add the following to the kernel parameters: &amp;lt;tt&amp;gt;resume2=swap:/dev/hda5&amp;lt;/tt&amp;gt;. Again change &amp;lt;tt&amp;gt;/dev/hda5&amp;lt;/tt&amp;gt; to your swap partition.&lt;br /&gt;
&lt;br /&gt;
Install the hibernation script:&lt;br /&gt;
*For {{Gentoo}} users: emerge hibernate-script&amp;lt;br /&amp;gt;&lt;br /&gt;
*For {{Fedora}} users: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&amp;lt;br /&amp;gt;&lt;br /&gt;
*For all other users, check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://softwaresuspend.berlios.de/&lt;br /&gt;
*{{Debian}} users using initrd image, make sure you 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.&lt;br /&gt;
&lt;br /&gt;
Restart using the new kernel and run the script to test it: {{cmdroot|/usr/sbin/hibernate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6793</id>
		<title>How to make ACPI work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work&amp;diff=6793"/>
		<updated>2005-07-24T11:58:44Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==general==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
First of all you'll have to enable ACPI support in your kernel (if your distro doesn't already have an ACPI enabled kernel).&lt;br /&gt;
To do this open your kernel config, go to &amp;lt;code&amp;gt;Power management options&amp;lt;/code&amp;gt;, enable &amp;lt;code&amp;gt;Power Management support&amp;lt;/code&amp;gt;, go to &amp;lt;code&amp;gt;ACPI&amp;lt;/code&amp;gt; and enable the needed options. You'd most likely want to enable &amp;lt;code&amp;gt;Sleep States&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AC Adapter&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Battery&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Processor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Thermal Zone&amp;lt;/code&amp;gt;. Then recompile your kernel.&lt;br /&gt;
&lt;br /&gt;
If you prefer editing your {{path|.config}} file directly, you should set at least the following variables:&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_ACPI_BOOT=y&lt;br /&gt;
 CONFIG_ACPI_INTERPRETER=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP=y&lt;br /&gt;
 CONFIG_ACPI_SLEEP_PROC_FS=y&lt;br /&gt;
 CONFIG_ACPI_AC=y&lt;br /&gt;
 CONFIG_ACPI_BATTERY=y&lt;br /&gt;
 CONFIG_ACPI_BUTTON=y&lt;br /&gt;
 CONFIG_ACPI_FAN=y&lt;br /&gt;
 CONFIG_ACPI_PROCESSOR=y&lt;br /&gt;
 CONFIG_ACPI_THERMAL=y&lt;br /&gt;
 CONFIG_ACPI_BUS=y&lt;br /&gt;
 CONFIG_ACPI_EC=y&lt;br /&gt;
 CONFIG_ACPI_POWER=y&lt;br /&gt;
 CONFIG_ACPI_PCI=y&lt;br /&gt;
 CONFIG_ACPI_SYSTEM=y&lt;br /&gt;
&lt;br /&gt;
===IBM specific ACPI driver===&lt;br /&gt;
Unfortunately, special drivers for ACPI on ThinkPads were not included with kernels prior 2.6.10.&amp;lt;br /&amp;gt;&lt;br /&gt;
So you'll have to compile one yourself or get it as precompiled module for your kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
You have the choice between [[thinkpad-acpi]] and [[ibm-acpi]], with the latter being the recommended one.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use a post-2.6.10 kernel and you want to use [[ibm-acpi]], it is recommended to look on its projects page for a possibly newer version.&amp;lt;br /&amp;gt;&lt;br /&gt;
In general it is a good idea to read the README included with the driver.&lt;br /&gt;
&lt;br /&gt;
===ACPI daemon===&lt;br /&gt;
Also you'll need to install [[acpid]], if it isn't present on your system. [[acpid]] is a daemon that handles the ACPI events generated by the system. Read [[How to configure acpid]].&lt;br /&gt;
&lt;br /&gt;
==Screen blanking (Standby)==&lt;br /&gt;
Make sure you have &lt;br /&gt;
 Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
in the Monitor section of your XF86Config/xorg.conf.&lt;br /&gt;
&lt;br /&gt;
Running {{cmd|xset +dpms}} and then {{cmd|xset dpms force off}} will turn off the backlight on a laptop screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this may not work in combination with {{cmd|echo -n &amp;quot;mem&amp;quot; &amp;gt; /sys/power/state}} because switching to console causes the backlight to come back on before sleeping.&lt;br /&gt;
&lt;br /&gt;
==Suspend to RAM (Sleep)==&lt;br /&gt;
ACPI Sleep/suspend-to-ram with recent 2.6.x kernels usually works fine. Have a look at the [[How to configure acpid|acpid configuration HOWTO]]. It includes a specific example for going to sleep on lid close.&lt;br /&gt;
&lt;br /&gt;
The following glitches may or may not occur in relation to suspending to RAM:&lt;br /&gt;
* With a 2.6.9 or 2.6.10 kernel, when resuming from a suspend-to-ram the display might remain black (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). This can be fixed by adding &amp;lt;tt&amp;gt;acpi_sleep=s3_bios&amp;lt;/tt&amp;gt; to the kernel boot parameters. It seems this problem is solved in 2.6.11-rc1.&lt;br /&gt;
* When your system is equiped with a Radeon Mobility graphic controller your [[Problem with LCD backlight remaining on during ACPI sleep|LCD backlight may not turn off automatically]]. Use [[radeontool]] to switch off your backlight prior suspend in your sleep action script.&lt;br /&gt;
* Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]].&lt;br /&gt;
* You may experience problems when using {{cmdroot|echo standby &amp;gt; /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 &amp;gt;/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running.&lt;br /&gt;
* Problems with the serial port of the port replicator after the wake up from ram have also been experienced.&lt;br /&gt;
* Crash on resume&lt;br /&gt;
** ...when using ATI proprietary drivers can be solved by using [http://freshmeat.net/projects/vbetool/ vbetool].&lt;br /&gt;
** ...might be solved by disabling ''APIC'' (@Processor type and features) in the kernel configuration&lt;br /&gt;
* If your suspend is failing, and a tail of {{path|/var/log/acpid}} shows &amp;quot;Permission denied&amp;quot; errors, be sure that your new ACPI event and action scripts have the appropriate permissions&lt;br /&gt;
* Due to the fact that Sonoma chipset based laptops (T43, T43p) utilize the SATA layer for disk access and SATA does not have power-management support yet Suspend to RAM does not work on these machines. However, Jens Axboe's patch ([http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111504542402455&amp;amp;w=2] LKML posting) provides SATA power-management support and makes Suspend to RAM work on the T43 at least. (Tested on 2.6.12rc6 which the patch applies to with some offsets. T43p not tested but should work as well. X41: reboot after wake up.)&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12-rc6.diff 2.6.12-rc6 patch]&lt;br /&gt;
** [http://shamrock.dyndns.org/~ln/linux/sata_pm.2.6.12.diff 2.6.12 patch]&lt;br /&gt;
&lt;br /&gt;
==Suspend to disk (Hibernate)==&lt;br /&gt;
There are two drivers for this available:&lt;br /&gt;
* swsusp, which is in the kernel and&lt;br /&gt;
* [http://developer.berlios.de/projects/softwaresuspend/ SoftwareSuspend2] which is more feature rich, but not yet in the kernel, so you have to patch it in yourself&lt;br /&gt;
Both are reported to work fine as long as you use open-source graphic drivers. A comparison of the features can be found on [http://softwaresuspend.berlios.de/features.html this page].&lt;br /&gt;
&lt;br /&gt;
Just in case you are in doubt...yes, it is safe in both cases to use the same swap partition as active swap and as suspend partition.&lt;br /&gt;
&lt;br /&gt;
===using swsusp===&lt;br /&gt;
Software Suspend (swsusp) is included in the 2.6 kernel series. It seems like no patches for 2.4 kernels are available.&lt;br /&gt;
&lt;br /&gt;
To enable it, go to &amp;lt;tt&amp;gt;Power management options&amp;lt;/tt&amp;gt; and enable &amp;lt;tt&amp;gt;Power management support&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Software Suspend&amp;lt;/tt&amp;gt; in the kernel config menu. You'll also want to give the swap partition to suspend to in &amp;lt;tt&amp;gt;Default resume partition&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In case you prefer to edit your config file directly, you should have the following three entries look like here...&lt;br /&gt;
 CONFIG_PM=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND=y&lt;br /&gt;
 CONFIG_PM_STD_PARTITION=&amp;quot;/dev/resume_partition&amp;quot;&lt;br /&gt;
...where &amp;lt;tt&amp;gt;/dev/resume_partition&amp;lt;/tt&amp;gt; needs to be replaced by the swap partition you want to use for suspending. (Use {{cmdroot|fdisk -l /dev/hda}} if unsure.)&lt;br /&gt;
&lt;br /&gt;
You can override the default resume partition anytime by giving &amp;lt;tt&amp;gt;resume=/dev/resume_partition&amp;lt;/tt&amp;gt; as kernel boot parameter.&lt;br /&gt;
Also, in case you suspended, but want to boot up normally (without resuming from the saved image - loosing all data that was unsaved at suspend time), you can give the &amp;lt;tt&amp;gt;noresume&amp;lt;/tt&amp;gt; kernel boot parameter.&lt;br /&gt;
&lt;br /&gt;
To suspend you can either do a simple {{cmdroot|echo -n 4 &amp;gt; /proc/acpi/sleep}} (recommended) or use the [http://softwaresuspend.berlios.de/old-site/swsusp/sysvinit-2.76-v2-for_swsusp-v5.tar.gz patched SysVInit] and call {{cmdroot|swsusp}} or {{cmdroot|shutdown -z now}}.&lt;br /&gt;
&lt;br /&gt;
Ideally you would do this from a script like {{path|/etc/acpi/actions/hibernate.sh}}. It has proven to be a good idea to shutdown the following processes/drivers within the script before you do the actual suspend.&lt;br /&gt;
*any running mysql server&lt;br /&gt;
*the linuxant driver may require stopping in a acpi script as well. {{cmdroot|dldrstop}} does the trick.&lt;br /&gt;
&lt;br /&gt;
Afterwards you might want to enable them again, as well as run a script that does necessary configurations according to the ac power state.&lt;br /&gt;
Furthermore, the system clock is not readjusted automatically, so you will probably also want the do that from that script (i.e. by restarting your systemclock bootup script).&lt;br /&gt;
&lt;br /&gt;
If the sound output is silent after resume, these commands might help to get sound to work again without reloading any modules:&lt;br /&gt;
&lt;br /&gt;
 amixer set Master mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM mute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set Master unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 amixer set PCM unmute &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Finally you should take note that swsusp does not set the ACPI S4 state. Instead it goes to S5. This means that the machine itself doesn't know that it was suspend rather than shutdown. Hence you can i.e. boot a parallel installed other operating system and resume your linux session later, as long as you don't touch the swap partition the image was saved to.&lt;br /&gt;
&lt;br /&gt;
===using SoftwareSuspend2===&lt;br /&gt;
First apply Software Suspend 2 patches from http://softwaresuspend.berlios.de/ if they are not already in your kernel. I am running 2.6.11-rc4-nitro in a Thinkpad T30 2366.&lt;br /&gt;
&lt;br /&gt;
Be sure to also read the http://softwaresuspend.berlios.de/HOWTO.html&lt;br /&gt;
&lt;br /&gt;
These are the options for the kernel. You can change the &amp;lt;tt&amp;gt;/dev/hda5&amp;lt;/tt&amp;gt; to your swap partition&lt;br /&gt;
&lt;br /&gt;
 # Software Suspend 2&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2=&amp;quot;/dev/hda5&amp;quot;&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_KEEP_IMAGE is not set&lt;br /&gt;
 CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE=y&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEBUG is not set&lt;br /&gt;
 # CONFIG_SOFTWARE_SUSPEND_DEVELOPER is not set&lt;br /&gt;
&lt;br /&gt;
Next, compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
In the meantime, add the following to the kernel parameters: &amp;lt;tt&amp;gt;resume2=swap:/dev/hda5&amp;lt;/tt&amp;gt;. Again change &amp;lt;tt&amp;gt;/dev/hda5&amp;lt;/tt&amp;gt; to your swap partition.&lt;br /&gt;
&lt;br /&gt;
Install the hibernation script:&lt;br /&gt;
*For {{Gentoo}} users: emerge hibernate-script&amp;lt;br /&amp;gt;&lt;br /&gt;
*For {{Fedora}} users: kernel and hibernate RPMs are available at http://mhensler.de/swsusp/&amp;lt;br /&amp;gt;&lt;br /&gt;
*For all other users, check the home page for packages (deb, i386 rpm, tgz, and source rpm) from http://softwaresuspend.berlios.de/&lt;br /&gt;
*{{Debian}} users using initrd image, make sure you 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.&lt;br /&gt;
&lt;br /&gt;
Restart using the new kernel and run the script to test it: {{cmdroot|/usr/sbin/hibernate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_configure_acpid&amp;diff=8051</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=8051"/>
		<updated>2005-07-24T11:49:46Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&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}}. {{cmd|man acpid}} holds detailed information on how to configure acpid.&lt;br /&gt;
&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. You also might want to have a look at the [[Configs#ACPI | ACPI section of the Configs page]] or the [[:Category:Scripts|Scripts]] repository. 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;
&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;
{{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;
 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;
====Explanations====&lt;br /&gt;
*The lid generates an event for both opening and closing thus requiring that we check it's 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;
{{NOTE|If your display doesn't come back on resume, look [[Problem with display remaining black after resume|here]].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_configure_acpid&amp;diff=6791</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=6791"/>
		<updated>2005-07-24T11:46:22Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&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}}. {{cmd|man acpid}} holds detailed information on how to configure acpid.&lt;br /&gt;
&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. You also might want to have a look at the [[Configs#ACPI | ACPI section of the Configs page]] or the [[:Category:Scripts|Scripts]] repository. 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;
&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;
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;
{{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;
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;
 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;
The lid generates an event for both opening and closing thus requiring&lt;br /&gt;
that we check it's state and only act if it's closed.&lt;br /&gt;
&lt;br /&gt;
There have been problems encountered with the USB devices not working properly after a resume from suspend.&lt;br /&gt;
To circumvent those we remove the USB driver prior to suspend and reload it afterwards.&lt;br /&gt;
&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&lt;br /&gt;
only one event generated and there is no need to check the state of anything.&lt;br /&gt;
&lt;br /&gt;
The console switching code in this script is a special solution for&lt;br /&gt;
[[Problem with LCD backlight remaining on during ACPI sleep|a problem where the backlight doesn't switch off]]&lt;br /&gt;
on the {{T30}} and some other models. Before going to sleep, these models switch to console mode which causes the&lt;br /&gt;
backlight to come back on. So we preemptively switch to console mode and turn off the backlight using [[radeontool]]&lt;br /&gt;
before going to sleep.&lt;br /&gt;
{{NOTE|If your display doesn't come back on resume, look [[Problem with display remaining black after resume|here]].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:570]] [[Category:570E]] [[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]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_display_remaining_black_after_resume&amp;diff=6871</id>
		<title>Problem with display remaining black after resume</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_display_remaining_black_after_resume&amp;diff=6871"/>
		<updated>2005-07-24T11:38:39Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There has been a problem encountered where the display stays black on resuming from suspend.&lt;br /&gt;
&lt;br /&gt;
The symptom might have you think first that your system hang up, but you will realize that your ThinkPad works and you can even reset it via {{key|Ctrl}}{{key|Alt}}{{key|Del}}.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
*ThinkPad {{T41p}}, {{T42p}}&lt;br /&gt;
*ThinkPad {{X41}}, {{X40}}, {{X30}}, {{X31}}, {{X21}}&lt;br /&gt;
*ThinkPad {{R50e}}{{footnote|1}}&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
*Linux (it's a kernel issue)&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
The Solution is to provide the &amp;lt;tt&amp;gt;acpi_sleep=s3_bios&amp;lt;/tt&amp;gt; kernel parameter in your kernel parameter line.&lt;br /&gt;
&lt;br /&gt;
For grub this can look like this:&lt;br /&gt;
 title           Linux, kernel 2.6.11-1-686&lt;br /&gt;
 root            (hd0,0)&lt;br /&gt;
 kernel          /boot/vmlinuz-2.6.11-1-686 root=/dev/hda1 ro acpi_sleep=s3_bios&lt;br /&gt;
 initrd          /boot/initrd.img-2.6.11-1-686&lt;br /&gt;
 savedefault&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#If you have this problem with R50e and the above solution doesn't work, try switching to console first. An example sleep script can be found [[How to configure acpid|here]].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Hardware_Specifications&amp;diff=6815</id>
		<title>Hardware Specifications</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Hardware_Specifications&amp;diff=6815"/>
		<updated>2005-07-24T09:00:02Z</updated>

		<summary type="html">&lt;p&gt;84.191.161.178: /* Available Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hardware specs and information about the specific Thinkpad Models.==&lt;br /&gt;
* Choose a model name to to get a list of all currently available information related to this Model.&lt;br /&gt;
* Choose a type-and-model number to get the specs of that specific model.&lt;br /&gt;
* Compare the [[Thinkpad series]] (R, T, X, G), get an overview of the [[ThinkPad History]] or learn about the name [[ThinkPad]].&lt;br /&gt;
** For current G, R, T and X series models look for the official IBM specs listed in [ftp://ftp.software.ibm.com/pc/pcinstitute/psref/tabook.pdf tabook.pdf]&lt;br /&gt;
** For withdrawn A, G, T and X series models look for the official IBM specs listed in [ftp://ftp.software.ibm.com/pc/pcinstitute/psref/tawbook.pdf tawbook.pdf]&lt;br /&gt;
** For withdrawn R series models look for the official IBM specs listed in [ftp://ftp.software.ibm.com/pc/pcinstitute/psref/trwbook.pdf trwbook.pdf]&lt;br /&gt;
** For withdrawn i series models look for the official IBM specs listed in [ftp://ftp.software.ibm.com/pc/pcinstitute/psref/tiwbook.pdf tiwbook.pdf]&lt;br /&gt;
** For withdrawn 200, 300, 500, 600 and 700 series models look for the official IBM specs listed in [ftp://ftp.software.ibm.com/pc/pcinstitute/psref/twbook.pdf twbook.pdf]&amp;lt;br&amp;gt;&lt;br /&gt;
** Or try searching the IBM announcements letters [http://www.ibm.com/news/usalet/ here].&lt;br /&gt;
&lt;br /&gt;
==Available Models==&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align:left;&amp;quot;&lt;br /&gt;
!Numbered!!A series!!G series!!R series!!S series!!T series!!X series!!others&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''[[:Category:390X | ThinkPad 390X]]'''&lt;br /&gt;
*[[2626-L0U]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:600X | ThinkPad 600X]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:700 | ThinkPad 700]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:760ED | ThinkPad 760ED]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:760XD | ThinkPad 760XD]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:770E | ThinkPad 770E]]'''&lt;br /&gt;
*[[9548-510]]&lt;br /&gt;
*[[9548-51U]]&lt;br /&gt;
*[[9548-52U]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:770X | ThinkPad 770X]]'''&lt;br /&gt;
*[[9549-7AO]]&lt;br /&gt;
'''[[:Category:770Z | ThinkPad 770Z]]'''&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
'''[[:Category:A20m | ThinkPad A20m]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A20p | ThinkPad A20p]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A21e | ThinkPad A21e]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A21m | ThinkPad A21m]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A21p | ThinkPad A21p]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A22e | ThinkPad A22e]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A22m | ThinkPad A22m]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A22p | ThinkPad A22p]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A30 | ThinkPad A30]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A30p | ThinkPad A30p]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A31 | ThinkPad A31]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:A31p | ThinkPad A31p]]'''&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
'''[[:Category:G40 | ThinkPad G40]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:G41 | ThinkPad G41]]'''&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
'''[[:Category:R30 | ThinkPad R30]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R31 | ThinkPad R31]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R32 | ThinkPad R32]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R40 | ThinkPad R40]]'''&lt;br /&gt;
*[[2722-9BM]]&lt;br /&gt;
*[[2722-DG1]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R40e | ThinkPad R40e]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R50 | ThinkPad R50]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R50p | ThinkPad R50p]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R50e | ThinkPad R50e]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R51 | ThinkPad R51]]'''&lt;br /&gt;
*[[1829-K6G]]&lt;br /&gt;
*[[1830-DG4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:R52 | ThinkPad R52]]'''&lt;br /&gt;
||&lt;br /&gt;
'''[[:Category:S30|ThinkPad S30]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:S31|ThinkPad S31]]'''&lt;br /&gt;
||&lt;br /&gt;
'''[[:Category:T20|ThinkPad T20]]'''&lt;br /&gt;
*[[2647-44G]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T21|ThinkPad T21]]'''&lt;br /&gt;
*[[2647-97G]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T22|ThinkPad T22]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T23 | ThinkPad T23]]'''&lt;br /&gt;
*[[2647-9RG]]&lt;br /&gt;
*[[2647-7G1]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T30 | ThinkPad T30]]'''&lt;br /&gt;
*[[2366-52U]]&lt;br /&gt;
*[[2366-FBG]]&lt;br /&gt;
*[[2366-JBG]]&lt;br /&gt;
*[[2366-R7G]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T40 | ThinkPad T40]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T40p | ThinkPad T40p]]'''&lt;br /&gt;
*[[2372-G1U]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T41 | ThinkPad T41]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T41p | ThinkPad T41p]]'''&lt;br /&gt;
*[[2373-315]]&lt;br /&gt;
*[[2373-GEG]]&lt;br /&gt;
*[[2373-GGG]]&lt;br /&gt;
*[[2373-GHG]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T42 | ThinkPad T42]]'''&lt;br /&gt;
*[[2373-6ZG]]&lt;br /&gt;
*[[2373-9XU]]&lt;br /&gt;
*[[2373-F1G]]&lt;br /&gt;
*[[2378-FVU]]&lt;br /&gt;
*[[2373-FWG]]&lt;br /&gt;
*[[2373-WGK]]&lt;br /&gt;
*[[2378-RSU]]&lt;br /&gt;
*[[2379-DXU]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T42p | ThinkPad T42p]]'''&lt;br /&gt;
*[[2373-HTG]]&lt;br /&gt;
*[[2373-W6M]]&lt;br /&gt;
*[[2373-Y4M]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T43 | Thinkpad T43]]'''&lt;br /&gt;
*[[2668-C2U]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:T43p | Thinkpad T43p]]'''&lt;br /&gt;
||&lt;br /&gt;
'''[[:Category:X20 | ThinkPad X20]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X21 | ThinkPad X21]]'''&lt;br /&gt;
*[[2662-66U]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X22 | ThinkPad X22]]'''&lt;br /&gt;
*[[2662-95U]]&lt;br /&gt;
*[[2662-9BU]]&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X23 | ThinkPad X23]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X24 | ThinkPad X24]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X30 | ThinkPad X30]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X31 | ThinkPad X31]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X40 | ThinkPad X40]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X41 | ThinkPad X41]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[:Category:X41 Tablet | ThinkPad X41 Tablet]]'''&lt;br /&gt;
||&lt;br /&gt;
'''[[:Category:PC110 | PC110]]'''&lt;br /&gt;
*[[PC110]]&lt;br /&gt;
'''[[:Category:TransNote|TransNote]]'''&lt;br /&gt;
*[[2675-61G]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Models]]&lt;/div&gt;</summary>
		<author><name>84.191.161.178</name></author>
		
	</entry>
</feed>