/[gentoo]/xml/htdocs/doc/en/power-management-guide.xml
Gentoo

Diff of /xml/htdocs/doc/en/power-management-guide.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.21 Revision 1.41
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version='1.0' encoding="UTF-8"?>
2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/power-management-guide.xml,v 1.21 2006/08/17 00:45:29 rane Exp $ --> 3<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/power-management-guide.xml,v 1.41 2009/08/12 02:24:57 nightmorph Exp $ -->
4<guide link="/doc/en/power-management-guide.xml"> 4<guide link="/doc/en/power-management-guide.xml">
5<title>Power Management Guide</title> 5<title>Power Management Guide</title>
6 6
7<author title="Author"> 7<author title="Author">
8 <mail link="earthwings@gentoo.org">Dennis Nienhüser</mail> 8 <mail link="earthwings@gentoo.org">Dennis Nienhüser</mail>
9</author> 9</author>
10<author title="Editor"> 10<author title="Editor">
11 <mail link="chriswhite@gentoo.org">Chris White</mail> 11 <mail link="chriswhite@gentoo.org">Chris White</mail>
12</author> 12</author>
13<author title="Editor">
14 <mail link="nightmorph@gentoo.org">Joshua Saddler</mail>
15</author>
13 16
14<abstract> 17<abstract>
15Power Management is the key to extend battery run time on mobile systems like 18Power Management is the key to extend battery run time on mobile systems like
16laptops. This guide assists you setting it up on your laptop. 19laptops. This guide assists you setting it up on your laptop.
17</abstract> 20</abstract>
18 21
19<!-- The content of this document is licensed under the CC-BY-SA license --> 22<!-- The content of this document is licensed under the CC-BY-SA license -->
20<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> 23<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
21<license/> 24<license/>
22 25
23<version>1.28</version> 26<version>1.44</version>
24<date>2006-07-26</date> 27<date>2009-08-11</date>
25 28
26<chapter> 29<chapter>
27<title>Introduction</title> 30<title>Introduction</title>
28<section> 31<section>
29<body> 32<body>
149most out of it. 152most out of it.
150</p> 153</p>
151 154
152<p> 155<p>
153There are different kernel sources in Portage. I'd recommend using 156There are different kernel sources in Portage. I'd recommend using
154<c>gentoo-sources</c> or <c>suspend2-sources</c>. The latter contains patches 157<c>gentoo-sources</c> or <c>tuxonice-sources</c>. The latter contains patches
155for Software Suspend 2, see the chapter about <uri link="#doc_chap7">sleep 158for TuxOnIce, see the chapter about <uri link="#doc_chap7">sleep states</uri>
156states</uri> for more details. When configuring the kernel, activate at least 159for more details. When configuring the kernel, activate at least these options:
157these options:
158</p> 160</p>
159 161
160<pre caption="Minimum kernel setup for Power Management (Kernel 2.6)"> 162<pre caption="Minimum kernel setup for Power Management (Kernel 2.6)">
161Power Management Options ---&gt; 163Power management and ACPI options ---&gt;
162 [*] Power Management Support 164[*] Power Management support
163 [ ] Software Suspend 165 [ ] Software Suspend
164 166
165 ACPI( Advanced Configuration and Power Interface ) Support ---&gt; 167 ACPI( Advanced Configuration and Power Interface ) Support ---&gt;
166 [*] ACPI Support 168 [ ] Deprecated /proc/acpi/ files
167 [ ] Sleep States
168 [ ] /proc/acpi/sleep (deprecated)
169 [*] AC Adapter 169 [*] AC Adapter
170 [*] Battery 170 [*] Battery
171 &lt;M&gt; Button 171 &lt;M&gt; Button
172 &lt;M&gt; Video 172 &lt;M&gt; Video
173 [ ] Generic Hotkey 173 [ ] Generic Hotkey
331<c>ac_adapter</c> and <c>battery</c> on most laptops, but it might be different 331<c>ac_adapter</c> and <c>battery</c> on most laptops, but it might be different
332on yours. 332on yours.
333</p> 333</p>
334 334
335<pre caption="Determining ACPI events for changing the power source"> 335<pre caption="Determining ACPI events for changing the power source">
336# <i>tail -f /var/log/acpid | grep "received event"</i> 336# <i>tail -f /var/log/messages | grep "received event"</i>
337</pre> 337</pre>
338 338
339<p> 339<p>
340Run the command above and pull the power cable. You should see something like 340Run the command above and pull the power cable. You should see something like
341this: 341this:
458</p> 458</p>
459 459
460</body> 460</body>
461</section> 461</section>
462<section> 462<section>
463<title>Setting The Frequency Manually</title> 463<title>Setting The Frequency</title>
464<body> 464<body>
465 465
466<p> 466<p>
467Decreasing CPU speed and voltage has two advantages: On the one hand less 467Decreasing CPU speed and voltage has two advantages: On the one hand less
468energy is consumed, on the other hand there is thermal improvement as your 468energy is consumed, on the other hand there is thermal improvement as your
477section to verify yours is supported. 477section to verify yours is supported.
478</note> 478</note>
479 479
480<p> 480<p>
481It's time to test whether CPU frequency changing works. Let's install another 481It's time to test whether CPU frequency changing works. Let's install another
482tool which is very handy for debugging purposes: <c>sys-power/cpufrequtils</c> 482tool: <c>sys-power/cpufrequtils</c>.
483</p> 483</p>
484 484
485<pre caption="Checking CPU frequency"> 485<pre caption="Checking CPU frequency">
486# <i>emerge cpufrequtils</i> 486# <i>emerge cpufrequtils</i>
487# <i>cpufreq-info</i> 487# <i>cpufreq-info</i>
512governor and verify the change with <c>cpufreq-info</c>. If it doesn't work as 512governor and verify the change with <c>cpufreq-info</c>. If it doesn't work as
513expected, you might find help in the <uri link="#doc_chap8">Troubleshooting 513expected, you might find help in the <uri link="#doc_chap8">Troubleshooting
514section</uri> in the end of this guide. 514section</uri> in the end of this guide.
515</p> 515</p>
516 516
517<p>
518<c>cpufrequtils</c> can operate in an automatic mode (when you use the
519<b>ondemand</b> governor), you can also switch to the <b>userspace</b> governor
520if you want to manually set a specific speed. You can also statically set your
521CPU to its highest or lowest frequency by using the <b>performance</b>
522and <b>powersave</b> governors, respectively.
523</p>
524
525<pre caption="Changing CPU speeds">
526<comment>(Set the highest available frequency)</comment>
527# <i>cpufreq-set -g performance</i>
528<comment>(Set the lowest available frequency)</comment>
529# <i>cpufreq-set -g powersave</i>
530<comment>(Set a specific frequency)</comment>
531# <i>cpufreq-set -g userspace</i>
532# <i>cpufreq-set -f 2.00ghz</i>
533</pre>
534
517</body> 535</body>
518</section>
519<section> 536</section>
520<title>Automated frequency adaption</title> 537<section>
538<title>Other CPU Speed Utilities</title>
521<body> 539<body>
522 540
523<p> 541<p>
524The above is quite nice, but not doable in daily life. Better let your system 542While <c>cpufrequtils</c> may be the best all-around program, there are some
525set the appropriate frequency automatically. There are many different 543other choices available in Portage. The following table gives a quick overview
526approaches to do this. The following table gives a quick overview to help you 544of available CPU speed utilities. It's roughly separated in three categories
527decide on one of them. It's roughly separated in three categories <b>kernel</b>
528for approaches that only need kernel support, <b>daemon</b> for programs that 545<b>kernel</b> for approaches that only need kernel support, <b>daemon</b> for
529run in the background and <b>graphical</b> for programs that provide a GUI for 546programs that run in the background and <b>graphical</b> for programs that
530easy configuration and changes. 547provide a GUI for easy configuration and changes.
531</p> 548</p>
532 549
533<table> 550<table>
534<tr> 551<tr>
535 <th>Name</th> 552 <th>Name</th>
605 </ti> 622 </ti>
606</tr> 623</tr>
607<tr> 624<tr>
608 <ti> 625 <ti>
609 <uri 626 <uri
610 link="http://fatcat.ftj.agh.edu.pl/~nelchael/index.php?cat=projs&amp;subcat=ncpufreqd&amp;language=en">ncpufreqd</uri> 627 link="http://projects.simpledesigns.com.pl/project/ncpufreqd/">ncpufreqd</uri>
611 </ti> 628 </ti>
612 <ti>Daemon</ti> 629 <ti>Daemon</ti>
613 <ti>Temperature</ti> 630 <ti>Temperature</ti>
614 <ti>None</ti> 631 <ti>None</ti>
615 <ti>Powersave, performance</ti> 632 <ti>Powersave, performance</ti>
669</pre> 686</pre>
670 687
671<p> 688<p>
672<c>cpufreqd</c> can be configured by editing <path>/etc/cpufreqd.conf</path>. 689<c>cpufreqd</c> can be configured by editing <path>/etc/cpufreqd.conf</path>.
673The default one that ships with cpufreqd may look a bit confusing. I recommend 690The default one that ships with cpufreqd may look a bit confusing. I recommend
674replacing it with the one from Gentoo developer Henrik Brix Andersen (see 691replacing it with the one from former Gentoo developer Henrik Brix Andersen
675below). Please notice that you need cpufreqd-2.0.0 or later. Earlier versions 692(see below). Please notice that you need cpufreqd-2.0.0 or later. Earlier
676have a different syntax for the config file. 693versions have a different syntax for the config file.
677</p> 694</p>
678 695
679<pre caption="/etc/cpufreqd.conf (cpufreqd-2.0.0 and later)"> 696<pre caption="/etc/cpufreqd.conf (cpufreqd-2.0.0 and later)">
680[General] 697[General]
681pidfile=/var/run/cpufreqd.pid 698pidfile=/var/run/cpufreqd.pid
739<c>battery</c> runlevel as well. 756<c>battery</c> runlevel as well.
740</p> 757</p>
741 758
742<pre caption="Starting cpufreqd"> 759<pre caption="Starting cpufreqd">
743# <i>rc-update add cpufreqd default battery</i> 760# <i>rc-update add cpufreqd default battery</i>
744# <i>rc</i> 761# <i>/etc/init.d/cpufreqd start</i>
745</pre> 762</pre>
746 763
747<p> 764<p>
748Sometimes it can be desirable to select another policy than the daemon chooses, 765Sometimes it can be desirable to select another policy than the daemon chooses,
749for example when battery power is low, but you know that AC will be available 766for example when battery power is low, but you know that AC will be available
773# <i>watch grep \"cpu MHz\" /proc/cpuinfo</i> 790# <i>watch grep \"cpu MHz\" /proc/cpuinfo</i>
774</pre> 791</pre>
775 792
776<p> 793<p>
777If <path>/proc/cpuinfo</path> doesn't get updated (see <uri 794If <path>/proc/cpuinfo</path> doesn't get updated (see <uri
778link="#doc_chap8">Troubleshooting</uri>), monitor the CPU frequency with: 795link="#doc_chap8">Troubleshooting</uri>), monitor the CPU frequency with
796<c>sys-apps/x86info</c>:
779</p> 797</p>
780 798
781<pre caption="Alternative CPU speed monitoring"> 799<pre caption="Alternative CPU speed monitoring">
782# <i>watch x86info -mhz</i> 800# <i>watch x86info -mhz</i>
783</pre> 801</pre>
819<c>setterm -blank &lt;number-of-minutesM&gt;</c>, <c>setterm -powersave on</c> 837<c>setterm -blank &lt;number-of-minutesM&gt;</c>, <c>setterm -powersave on</c>
820and <c>setterm -powerdown &lt;number-of-minutesM&gt;</c>. For X.org, modify 838and <c>setterm -powerdown &lt;number-of-minutesM&gt;</c>. For X.org, modify
821<path>/etc/X11/xorg.conf</path> similar to this: 839<path>/etc/X11/xorg.conf</path> similar to this:
822</p> 840</p>
823 841
824<pre caption="LCD suspend settings in X.org and XFree86"> 842<pre caption="LCD suspend settings in X.org">
825Section "ServerLayout" 843Section "ServerFlags"
826 Identifier [...]
827 [...]
828 Option "BlankTime" "5" <comment># Blank the screen after 5 minutes (Fake)</comment> 844 Option "blank time" "5" <comment># Blank the screen after 5 minutes (Fake)</comment>
829 Option "StandbyTime" "10" <comment># Turn off screen after 10 minutes (DPMS)</comment> 845 Option "standby time" "10" <comment># Turn off screen after 10 minutes (DPMS)</comment>
830 Option "SuspendTime" "20" <comment># Full suspend after 20 minutes</comment> 846 Option "suspend time" "20" <comment># Full suspend after 20 minutes</comment>
831 Option "OffTime" "30" <comment># Turn off after half an hour</comment> 847 Option "off time" "30" <comment># Turn off after half an hour</comment>
832 [...] 848 [...]
833EndSection 849EndSection
834 850
835[...] 851[...]
836 852
837Section "Monitor" 853Section "Monitor"
838 Identifier [...] 854 Identifier [...]
839 Option "DPMS" "true" 855 Option "DPMS"
840 [...] 856 [...]
841EndSection 857EndSection
842</pre> 858</pre>
843
844<p>
845This is the same for XFree86 and <path>/etc/X11/XF86Config</path>.
846</p>
847 859
848</body> 860</body>
849</section> 861</section>
850<section> 862<section>
851<title>Backlight dimming</title> 863<title>Backlight dimming</title>
855Probably more important is the backlight dimming. If you have access to the 867Probably more important is the backlight dimming. If you have access to the
856dimming settings via a tool, write a small script that dims the backlight in 868dimming settings via a tool, write a small script that dims the backlight in
857battery mode and place it in your <c>battery</c> runlevel. The following script 869battery mode and place it in your <c>battery</c> runlevel. The following script
858should work on most IBM Thinkpads and Toshiba laptops. You've got to enable the 870should work on most IBM Thinkpads and Toshiba laptops. You've got to enable the
859appropriate option in your kernel (IBM Thinkpads only). For Toshiba laptops, 871appropriate option in your kernel (IBM Thinkpads only). For Toshiba laptops,
860install <c>app-laptop/acpitool</c> and skip configuration of <c>ibm_acpi</c> as 872install <c>sys-power/acpitool</c> and skip configuration of <c>thinkpad_acpi</c>
861described below. 873(formerly called <c>ibm_acpi</c>) as described below.
862</p> 874</p>
863 875
864<warn> 876<warn>
865Support for setting brightness is marked experimental in ibm-acpi. It accesses 877Support for setting brightness is marked experimental in thinkpad_acpi. It
866hardware directly and may cause severe harm to your system. Please read the 878accesses hardware directly and may cause severe harm to your system. Please
867<uri link="http://ibm-acpi.sourceforge.net/">ibm-acpi website</uri> 879read the <uri link="http://ibm-acpi.sourceforge.net/">thinkpad_acpi
880website</uri>
868</warn> 881</warn>
869 882
870<p> 883<p>
871To be able to set the brightness level, the ibm_acpi module has to be loaded 884To be able to set the brightness level, the thinkpad_acpi module has to be
872with the experimental parameter. 885loaded with the experimental parameter.
873</p> 886</p>
874 887
875<pre caption="automatically loading the ibm_acpi module"> 888<pre caption="automatically loading the thinkpad_acpi module">
876<comment>(Please read the warnings above before doing this!)</comment> 889<comment>(Please read the warnings above before doing this!)</comment>
877# <i>echo "options ibm_acpi experimental=1" >> /etc/modules.d/ibm_acpi</i> 890# <i>echo "options thinkpad_acpi experimental=1" >> /etc/modprobe.d/thinkpad_acpi</i>
878# <i>/sbin/modules-update</i> 891# <i>update-modules</i>
879# <i>echo ibm_acpi >> /etc/modules.autoload.d/kernel-2.6</i> 892# <i>echo thinkpad_acpi >> /etc/modules.autoload.d/kernel-2.6</i>
880# <i>modprobe ibm_acpi</i> 893# <i>modprobe thinkpad_acpi</i>
881</pre> 894</pre>
882 895
883<p> 896<p>
884This should work without error messages and a file 897This should work without error messages and a file
885<path>/proc/acpi/ibm/brightness</path> should be created after loading the 898<path>/proc/acpi/ibm/brightness</path> should be created after loading the
887the power source. 900the power source.
888</p> 901</p>
889 902
890<pre caption="/etc/conf.d/lcd-brightness"> 903<pre caption="/etc/conf.d/lcd-brightness">
891<comment># See /proc/acpi/ibm/brightness for available values</comment> 904<comment># See /proc/acpi/ibm/brightness for available values</comment>
892<comment># Please read /usr/src/linux/Documentation/ibm-acpi.txt</comment> 905<comment># Please read /usr/src/linux/Documentation/thinkpad-acpi.txt</comment>
893 906
894<comment># brigthness level in ac mode. Default is 7.</comment> 907<comment># brightness level in ac mode. Default is 7.</comment>
895BRIGHTNESS_AC=7 908BRIGHTNESS_AC=7
896 909
897<comment># brightness level in battery mode. Default is 4.</comment> 910<comment># brightness level in battery mode. Default is 4.</comment>
898BRIGHTNESS_BATTERY=4 911BRIGHTNESS_BATTERY=4
899</pre> 912</pre>
919 ebegin "Setting LCD brightness" 932 ebegin "Setting LCD brightness"
920 acpitool -l $LEVEL >/dev/null || ewarn "Unable to set lcd brightness" 933 acpitool -l $LEVEL >/dev/null || ewarn "Unable to set lcd brightness"
921 eend $? 934 eend $?
922 else 935 else
923 ewarn "Setting LCD brightness is not supported." 936 ewarn "Setting LCD brightness is not supported."
924 ewarn "For IBM Thinkpads, check that ibm_acpi is loaded into the kernel" 937 ewarn "For IBM Thinkpads, check that thinkpad_acpi is loaded into the kernel"
925 ewarn "For Toshiba laptops, you've got to install app-laptop/acpitool" 938 ewarn "For Toshiba laptops, you've got to install sys-power/acpitool"
926 fi 939 fi
927} 940}
928 941
929start() { 942start() {
930 set_brightness 943 set_brightness
972<section> 985<section>
973<title>Increasing idle time - laptop-mode</title> 986<title>Increasing idle time - laptop-mode</title>
974<body> 987<body>
975 988
976<p> 989<p>
977Recent kernels (2.6.6 and greater, recent 2.4 ones and others with patches)
978include the so-called <c>laptop-mode</c>. When activated, dirty buffers are 990Recent 2.6 kernels include the so-called <c>laptop-mode</c>. When activated,
979written to disk on read calls or after 10 minutes (instead of 30 seconds). This 991dirty buffers are written to disk on read calls or after 10 minutes (instead of
980minimizes the time the hard disk needs to be spun up. 99230 seconds). This minimizes the time the hard disk needs to be spun up.
981</p> 993</p>
982 994
983<pre caption="Automated start of laptop-mode"> 995<pre caption="Automated start of laptop-mode">
984# <i>emerge laptop-mode-tools</i> 996# <i>emerge laptop-mode-tools</i>
985</pre> 997</pre>
1065<section> 1077<section>
1066<title>hdparm</title> 1078<title>hdparm</title>
1067<body> 1079<body>
1068 1080
1069<p> 1081<p>
1070The second possibility is using a small script and <c>hdparm</c>. Skip this if 1082The second possibility is using <c>hdparm</c>. Skip this if
1071you are using laptop-mode. Otherwise, create <path>/etc/init.d/pmg_hda</path>: 1083you are using laptop-mode. Otherwise, edit <path>/etc/conf.d/hdparm</path> and
1084add the following values to your drive entries. This example assumes your hard
1085drive is called <b>hda</b>:
1072</p> 1086</p>
1073 1087
1074<pre caption="Using hdparm for disk standby"> 1088<pre caption="Using /etc/conf.d/hdparm for disk standby">
1075#!/sbin/runscript 1089hda_args="-q -S12"
1076
1077depend() {
1078after hdparm
1079}
1080
1081start() {
1082ebegin "Activating Power Management for Hard Drives"
1083hdparm -q -S12 /dev/hda
1084eend $?
1085}
1086
1087stop () {
1088ebegin "Deactivating Power Management for Hard Drives"
1089hdparm -q -S253 /dev/hda
1090eend $?
1091}
1092</pre> 1090</pre>
1093 1091
1092<p>
1093This will activate power management for your hard drive. If you ever want to
1094deactivate power management, you can edit <path>/etc/conf.d/hdparm</path> and
1095change the values to <c>-q -S0</c>, or just run <c>hdparm -q -S0 /dev/hda</c>.
1094<p> 1096</p>
1095See <c>man hdparm</c> for the options. If your script is ready, add it to the 1097
1096battery runlevel. 1098<p>
1099See <c>man hdparm</c> for the options. Though you can always start <c>hdparm</c>
1100manually when you are on battery power by running <c>/etc/init.d/hdparm
1101start</c>, it's much easier to automate its startup and shutdown. To do so, add
1102<c>hdparm</c> to the battery runlevel so that it will automatically enable power
1103management.
1097</p> 1104</p>
1098 1105
1099<pre caption="Automate disk standby settings"> 1106<pre caption="Automate disk standby settings">
1100# <i>chmod +x /etc/init.d/pmg_hda</i>
1101# <i>/sbin/depscan.sh</i>
1102# <i>rc-update add pmg_hda battery</i> 1107# <i>rc-update add hdparm battery</i>
1103</pre> 1108</pre>
1104 1109
1105<impo> 1110<impo>
1106Be careful with sleep/spin down settings of your hard drive. Setting it to 1111Be careful with sleep/spin down settings of your hard drive. Setting it to
1107small values might wear out your drive and lose warranty. 1112small values might wear out your drive and lose warranty.
1153<title>Graphics Cards</title> 1158<title>Graphics Cards</title>
1154<body> 1159<body>
1155 1160
1156<p> 1161<p>
1157In case you own an ATI graphics card supporting PowerPlay (dynamic clock 1162In case you own an ATI graphics card supporting PowerPlay (dynamic clock
1158scaling for the the graphics processing unit GPU), you can activate this 1163scaling for the graphics processing unit GPU), you can activate this
1159feature in X.org. Open <path>/etc/X11/xorg.conf</path> and add (or enable) the 1164feature in X.org. Open <path>/etc/X11/xorg.conf</path> and add (or enable) the
1160<c>DynamicClocks</c> option in the Device section. Please notice that this 1165<c>DynamicClocks</c> option in the Device section. Please notice that this
1161feature will lead to crashes on some systems. 1166feature will lead to crashes on some systems.
1162</p> 1167</p>
1163 1168
1174<title>Wireless Power Management</title> 1179<title>Wireless Power Management</title>
1175<body> 1180<body>
1176 1181
1177<p> 1182<p>
1178Wireless LAN cards consume quite a bit of energy. Put them in Power Management 1183Wireless LAN cards consume quite a bit of energy. Put them in Power Management
1179mode in analogy to the <c>pmg_hda</c> script. 1184mode just like your hard drives.
1180</p> 1185</p>
1181 1186
1182<note> 1187<note>
1183This script assumes your wireless interface is called <c>wlan0</c>; replace 1188This script assumes your wireless interface is called <c>wlan0</c>; replace
1184this with the actual name of your interface. 1189this with the actual name of your interface.
1185</note> 1190</note>
1186 1191
1187<pre caption="WLAN Power Management automated">
1188#!/sbin/runscript
1189start() {
1190 ebegin "Activating Power Management for Wireless LAN"
1191 iwconfig wlan0 power on
1192 eend $?
1193}
1194
1195stop () {
1196 ebegin "Deactivating Power Management for Wireless LAN"
1197 iwconfig wlan0 power off
1198 eend $?
1199}
1200</pre>
1201
1202<p>
1203Starting this script will activate power saving features for wlan0. Save it as
1204<path>/etc/init.d/pmg_wlan0</path> and add it to the battery runlevel like the
1205disk script above. See <c>man iwconfig</c> for details and more options like
1206the period between wakeups or timeout settings. If your driver and access point
1207support changing the beacon time, this is a good starting point to save even
1208more energy.
1209</p> 1192<p>
1210 1193Add the following option to <path>/etc/conf.d/net</path> to automatically enable
1211<pre caption="Power Management for WLAN"> 1194power management for your wireless card:
1212# <i>chmod +x /etc/init.d/pmg_wlan0</i>
1213# <i>/sbin/depscan.sh</i>
1214# <i>rc-update add pmg_wlan0 battery</i>
1215</pre> 1195</p>
1196
1197<pre caption="Automated WLAN Power Management">
1198iwconfig_wlan0="power on"
1199</pre>
1200
1201<p>
1202See <c>man iwconfig</c> for details and more options like the period between
1203wakeups or timeout settings. If your driver and access point support changing
1204the beacon time, this is a good starting point to save even more energy.
1205</p>
1216 1206
1217</body> 1207</body>
1218</section> 1208</section>
1219<section> 1209<section>
1220<title>USB Power Management</title> 1210<title>USB Power Management</title>
1275</p> 1265</p>
1276 1266
1277<pre caption="Kernel configuration for the various suspend types"> 1267<pre caption="Kernel configuration for the various suspend types">
1278 Power Management Options ---&gt; 1268 Power Management Options ---&gt;
1279 [*] Power Management support 1269 [*] Power Management support
1280 ACPI (Advanced Configuration and Power Interface) Support ---&gt; 1270 [*] Suspend to RAM and standby
1281 [*] ACPI Support
1282 [*] Sleep States
1283</pre> 1271</pre>
1284 1272
1285<p> 1273<p>
1286Once your kernel is properly configured, you can use the 1274Once your kernel is properly configured, you can use the
1287<c>hibernate-script</c> to activate suspend or sleep mode. Let's install that 1275<c>hibernate-script</c> to activate suspend or sleep mode. Let's install that
1291<pre caption="Installing the hibernate-script"> 1279<pre caption="Installing the hibernate-script">
1292# <i>emerge hibernate-script</i> 1280# <i>emerge hibernate-script</i>
1293</pre> 1281</pre>
1294 1282
1295<p> 1283<p>
1296Some configuration has to be done in <path>/etc/hibernate</path> The default 1284Some configuration has to be done in <path>/etc/hibernate</path>. The default
1297package introduces two configuration files <path>hibernate.conf</path> and 1285package introduces a few configuration files for each sleep state. Options that
1298<path>ram.conf</path>. 1286are common to all suspend methods are placed in <path>common.conf</path>; make
1299</p> 1287sure this file is properly set up for your system.
1300
1301<p> 1288</p>
1302To configure sleep, edit <path>ram.conf</path> in <path>/etc/hibernate</path>. 1289
1303<c>UseSysfsPowerState mem</c> is already setup correctly, but you have to go
1304through the rest of the configuration file and set it up for your system. The
1305comments and option names will guide you. If you use nfs or samba shares over
1306the network, make sure to shutdown the appropriate init scripts to avoid
1307timeouts.
1308</p> 1290<p>
1291To configure sleep, edit <path>sysfs-ram.conf</path> in
1292<path>/etc/hibernate</path>. <c>UseSysfsPowerState mem</c> is already setup
1293correctly, but if you need to make further changes to this particular sleep
1294state (or any other sleep state) you should add them to
1295<path>/etc/hibernate/hibernate.conf</path>. The comments and option names will
1296guide you. If you use nfs or samba shares over the network, make sure to
1297shutdown the appropriate init scripts to avoid timeouts.
1298</p>
1299
1300<note>
1301For more information on setting up sleep states, read <c>man
1302hibernate.conf</c>.
1303</note>
1309 1304
1310<p> 1305<p>
1311Ready? Now is the last chance to backup any data you want to keep after 1306Ready? Now is the last chance to backup any data you want to keep after
1312executing the next command. Notice that you probably have to hit a special key 1307executing the next command. Notice that you probably have to hit a special key
1313like <c>Fn</c> to resume from sleep. 1308like <c>Fn</c> to resume from sleep.
1317# <i>hibernate-ram</i> 1312# <i>hibernate-ram</i>
1318</pre> 1313</pre>
1319 1314
1320<p> 1315<p>
1321If you're still reading, it seems to work. You can also setup standby (S1) in a 1316If you're still reading, it seems to work. You can also setup standby (S1) in a
1322similar way by copying <path>ram.conf</path> to <path>standby.conf</path> and 1317similar way by editing <path>sysfs-ram.conf</path> and changing
1323creating a symlink <path>/usr/sbin/hibernate-standby</path> pointing to 1318"UseSysfsPowerState mem" to "UseSysfsPowerState standby". S3 and S4 are the more
1324<path>/usr/sbin/hibernate</path>. S3 and S4 are the more interesting sleep
1325states due to greater energy savings however. 1319interesting sleep states due to greater energy savings however.
1326</p> 1320</p>
1327 1321
1328</body> 1322</body>
1329</section> 1323</section>
1330<section> 1324<section>
1343Shutdown any NFS or samba server/client before hibernating. 1337Shutdown any NFS or samba server/client before hibernating.
1344</warn> 1338</warn>
1345 1339
1346<p> 1340<p>
1347There are two different implementations for S4. The original one is swsusp, 1341There are two different implementations for S4. The original one is swsusp,
1348then there is the newer suspend2 with a nicer interface (including fbsplash 1342then there is the newer tuxonice (formerly suspend2) with a nicer interface
1349support). A <uri link="http://suspend2.net/features.html#compare"> feature 1343(including fbsplash support). A <uri
1350comparison</uri> is available at the <uri link="http://suspend2.net"> suspend2 1344link="http://tuxonice.net/features.html#compare">feature comparison</uri> is
1345available at the <uri link="http://www.tuxonice.net">tuxonice homepage</uri>.
1351Homepage</uri>. There used to be Suspend-to-Disk (pmdisk), a fork of swsusp, 1346There used to be Suspend-to-Disk (pmdisk), a fork of swsusp, but it has been
1352but it has been merged back. 1347merged back.
1353</p>
1354
1355<p> 1348</p>
1349
1350<p>
1356Suspend2 is not included in the mainline kernel yet, therefore you either have 1351TuxOnIce is not included in the mainline kernel yet, therefore you either have
1357to patch your kernel sources with the patches provided by <uri 1352to patch your kernel sources with the patches provided by <uri
1358link="http://suspend2.net">suspend2.net</uri> or use 1353link="http://www.tuxonice.net">tuxonice.net</uri> or use
1359<c>sys-kernel/suspend2-sources</c>. 1354<c>sys-kernel/tuxonice-sources</c>.
1360</p>
1361
1362<p> 1355</p>
1356
1357<p>
1363The kernel part for both swusp and suspend2 is as follows: 1358The kernel part for both swusp and TuxOnIce is as follows:
1364</p> 1359</p>
1365 1360
1366<pre caption="Kernel configuration for the various suspend types"> 1361<pre caption="Kernel configuration for the various suspend types">
1367Power Management Options ---&gt; 1362Power Management support ---&gt;
1368 <comment>(hibernate with swsusp)</comment> 1363 <comment>(hibernate with swsusp)</comment>
1369 [*] Software Suspend 1364 [*] Hibernation (aka 'suspend to disk')
1370 <comment>(replace /dev/SWAP with your swap partition)</comment> 1365 <comment>(replace /dev/SWAP with your swap partition)</comment>
1371 (/dev/SWAP) Default resume partition 1366 (/dev/SWAP) Default resume partition
1372 1367
1373 <comment>(hibernate with suspend2)</comment> 1368 <comment>(hibernate with TuxOnIce)</comment>
1374 Software Suspend 2 1369 Enhanced Hibernation (TuxOnIce)
1375 --- Image Storage (you need at least one writer) 1370 --- Image Storage (you need at least one allocator)
1376 [*] File Writer 1371 [*] File Allocator
1377 [*] Swap Writer 1372 [*] Swap Allocator
1378 --- General Options 1373 --- General Options
1379 [*] LZF image compression 1374 [*] Compression support
1380 <comment>(replace /dev/SWAP with your swap partition)</comment>
1381 (swap:/dev/SWAP) Default resume device name
1382 [ ] Allow Keep Image Mode 1375 [ ] Allow Keep Image Mode
1376 [*] Replace swsusp by default
1383</pre> 1377</pre>
1384 1378
1385<p> 1379<p>
1386The configuration for swsusp is rather easy. If you didn't store the location 1380The configuration for swsusp is rather easy. If you didn't store the location
1387of your swap partition in the kernel config, you can also pass it as a 1381of your swap partition in the kernel config, you can also pass it as a
1395# <i>rc-update add hibernate-cleanup boot</i> 1389# <i>rc-update add hibernate-cleanup boot</i>
1396</pre> 1390</pre>
1397 1391
1398<p> 1392<p>
1399To activate hibernate with swsusp, use the hibernate script and set 1393To activate hibernate with swsusp, use the hibernate script and set
1400<c>UseSysfsPowerState disk</c> in <path>/etc/hibernate/hibernate.conf</path>. 1394<c>UseSysfsPowerState disk</c> in <path>/etc/hibernate/sysfs-disk</path>.
1401</p> 1395</p>
1402 1396
1403<warn> 1397<warn>
1404Backup your data before doing this. Run <c>sync</c> before executing one of the 1398Backup your data before doing this. Run <c>sync</c> before executing one of the
1405commands to have cached data written to disk. First try it outside of X, then 1399commands to have cached data written to disk. First try it outside of X, then
1407</warn> 1401</warn>
1408 1402
1409<p> 1403<p>
1410If you experience kernel panics due to uhci or similar, try to compile USB 1404If you experience kernel panics due to uhci or similar, try to compile USB
1411support as module and unload the modules before sending your laptop to sleep 1405support as module and unload the modules before sending your laptop to sleep
1412mode. There are configuration options for this in <path>hibernate.conf</path> 1406mode. There are configuration options for this in <path>common.conf</path>
1413</p> 1407</p>
1414 1408
1415<pre caption="Hibernating with swsusp"> 1409<pre caption="Hibernating with swsusp">
1416# <i>nano -w /etc/hibernate.conf</i> 1410# <i>nano -w /etc/hibernate/common.conf</i>
1417<comment>(Make sure you have a backup of your data)</comment> 1411<comment>(Make sure you have a backup of your data)</comment>
1418# <i>hibernate</i> 1412# <i>hibernate</i>
1419</pre> 1413</pre>
1420 1414
1421<p> 1415<p>
1422The following section discusses the setup of suspend2 including fbsplash 1416The following section discusses the setup of TuxOnIce including fbsplash support
1423support for a nice graphical progress bar during suspend and resume. 1417for a nice graphical progress bar during suspend and resume.
1424</p> 1418</p>
1425 1419
1426<p> 1420<p>
1427The first part of the configuration is similar to the configuration of swsusp. 1421The first part of the configuration is similar to the configuration of swsusp.
1428In case you didn't store the location of your swap partition in the kernel 1422In case you didn't store the location of your swap partition in the kernel
1429config, you have to pass it as a kernel parameter with the 1423config, you have to pass it as a kernel parameter with the
1430<c>resume2=swap:/dev/SWAP</c> directive. If booting is not possible due to a 1424<c>resume=swap:/dev/SWAP</c> directive. If booting is not possible due to a
1431broken image, append the <c>noresume2</c> parameter. Additionally, the 1425broken image, append the <c>noresume</c> parameter. Additionally, the
1432<c>hibernate-cleanup</c> init script invalidates suspend2 images during the 1426<c>hibernate-cleanup</c> init script invalidates TuxOnIce images during the boot
1433boot process. 1427process.
1434</p> 1428</p>
1435 1429
1436<pre caption="Invalidating suspend2 images during the boot process"> 1430<pre caption="Invalidating TuxOnIce images during the boot process">
1437# <i>rc-update add hibernate-cleanup boot</i> 1431# <i>rc-update add hibernate-cleanup boot</i>
1438</pre> 1432</pre>
1439 1433
1440<p> 1434<p>
1441Now edit <path>/etc/hibernate/hibernate.conf</path>, enable the <c>suspend2</c> 1435Now edit <path>/etc/hibernate/tuxonice.conf</path>, enable the <c>TuxOnIce</c>
1442section and comment everything in the <c>sysfs_power_state</c> and 1436options you need. Do not enable the <c>fbsplash</c> options in
1443<c>acpi_sleep</c> sections. Do not enable the <c>fbsplash</c> part in global 1437<c>common.conf</c> just yet.
1444options yet.
1445</p> 1438</p>
1446 1439
1447<pre caption="Hibernating with suspend2"> 1440<pre caption="Hibernating with TuxOnIce">
1448# <i>nano -w /etc/hibernate.conf</i> 1441# <i>nano -w /etc/hibernate/tuxonice.conf</i>
1449<comment>(Make sure you have a backup of your data)</comment> 1442<comment>(Make sure you have a backup of your data)</comment>
1450# <i>hibernate</i> 1443# <i>hibernate</i>
1451</pre> 1444</pre>
1452 1445
1453<p> 1446<p>
1454Please configure <c>fbsplash</c> now if you didn't do already. To enable 1447Please configure <c>fbsplash</c> now if you didn't do already. To enable
1455fbsplash support during hibernation, the <c>sys-apps/suspend2-userui</c> 1448fbsplash support during hibernation, the <c>sys-apps/tuxonice-userui</c> package
1456package is needed. Additionally, you've got to enable the <c>fbsplash</c> USE 1449is needed. Additionally, you've got to enable the <c>fbsplash</c> USE flag.
1457flag.
1458</p> 1450</p>
1459 1451
1460<pre caption="Installing suspend2-userui"> 1452<pre caption="Installing tuxonice-userui">
1461# <i>mkdir -p /etc/portage</i>
1462# <i>echo "sys-apps/suspend2-userui fbsplash" >> /etc/portage/package.use</i> 1453# <i>echo "sys-apps/tuxonice-userui fbsplash" >> /etc/portage/package.use</i>
1454<comment>(It may be marked ~arch, so first it must be keyworded)</comment>
1455# <i>echo "sys-apps/tuxonice-userui" >> /etc/portage/package.keywords</i>
1463# <i>emerge suspend2-userui</i> 1456# <i>emerge tuxonice-userui</i>
1464</pre> 1457</pre>
1465 1458
1466<p> 1459<p>
1467The ebuild tells you to make a symlink to the theme you want to use. For 1460The ebuild tells you to make a symlink to the theme you want to use. For
1468example, to use the <c>livecd-2005.1</c> theme, run the following command: 1461example, to use the <c>livecd-2005.1</c> theme, run the following command:
1469</p> 1462</p>
1470 1463
1471<pre caption="Using the livecd-2005.1 theme during hibernation"> 1464<pre caption="Using the livecd-2005.1 theme during hibernation">
1472# <i>ln -sfn /etc/splash/livecd-2005.1 /etc/splash/suspend2</i> 1465# <i>ln -sfn /etc/splash/livecd-2005.1 /etc/splash/tuxonice</i>
1473</pre> 1466</pre>
1474 1467
1475<p> 1468<p>
1476If you don't want a black screen in the first part of the resume process, you 1469If you don't want a black screen in the first part of the resume process, you
1477have to add the <c>suspend2ui_fbsplash</c> tool to your initrd image. Assuming 1470have to add the <c>tuxoniceui_fbsplash</c> tool to your initrd image. Assuming
1478you created the initrd image with <c>splash_geninitramfs</c> and saved it as 1471you created the initrd image with <c>splash_geninitramfs</c> and saved it as
1479<path>/boot/fbsplash-emergence-1024x768</path>, here's how to do that. 1472<path>/boot/fbsplash-emergence-1024x768</path>, here's how to do that.
1480</p> 1473</p>
1481 1474
1482<pre caption="Adding suspend2ui_fbsplash to an initrd image"> 1475<pre caption="Adding tuxoniceui_fbsplash to an initrd image">
1483# <i>mount /boot</i> 1476# <i>mount /boot</i>
1484# <i>mkdir ~/initrd.d</i> 1477# <i>mkdir ~/initrd.d</i>
1485# <i>cp /boot/fbsplash-emergence-1024x768 ~/initrd.d/</i> 1478# <i>cp /boot/fbsplash-emergence-1024x768 ~/initrd.d/</i>
1486# <i>cd ~/initrd.d</i> 1479# <i>cd ~/initrd.d</i>
1487# <i>gunzip -c fbsplash-emergence-1024x768 | cpio -idm --quiet -H newc</i> 1480# <i>gunzip -c fbsplash-emergence-1024x768 | cpio -idm --quiet -H newc</i>
1488# <i>rm fbsplash-emergence-1024x768</i> 1481# <i>rm fbsplash-emergence-1024x768</i>
1489# <i>cp /usr/sbin/suspend2ui_fbsplash sbin/</i> 1482# <i>cp /usr/sbin/tuxoniceui_fbsplash sbin/</i>
1490# <i>find . | cpio --quiet --dereference -o -H newc | gzip -9 > /boot/fbsplash-suspend2-emergence-1024x768</i> 1483# <i>find . | cpio --quiet --dereference -o -H newc | gzip -9 > /boot/fbsplash-tuxonice-emergence-1024x768</i>
1491</pre> 1484</pre>
1492 1485
1493<p> 1486<p>
1494Afterwards adjust <path>grub.conf</path> respectively <path>lilo.conf</path> so 1487Afterwards adjust <path>grub.conf</path> (or <path>lilo.conf</path>) so that
1495that your suspend2 kernel uses 1488your TuxOnIce kernel uses
1496<path>/boot/fbsplash-suspend2-emergence-1024x768</path> as initrd image. You 1489<path>/boot/fbsplash-tuxonice-emergence-1024x768</path> as initrd image. You can
1497can now test a dry run to see if everything is setup correctly. 1490now test a dry run to see if everything is setup correctly.
1498</p> 1491</p>
1499 1492
1500<pre caption="Test run for fbsplash hibernation"> 1493<pre caption="Test run for fbsplash hibernation">
1501# <i>suspend2ui_fbsplash -t</i> 1494# <i>tuxoniceui_fbsplash -t</i>
1502</pre> 1495</pre>
1503 1496
1504<p> 1497<p>
1505Afterwards open <path>/etc/hibernate/hibernate.conf</path> again and activate 1498Afterwards open <path>/etc/hibernate/common.conf</path> and activate the
1506the fbsplash options. Execute <c>hibernate</c> and enjoy. 1499fbsplash options. Execute <c>hibernate</c> and enjoy.
1507</p> 1500</p>
1508 1501
1509</body> 1502</body>
1510</section> 1503</section>
1511</chapter> 1504</chapter>
1522</p> 1515</p>
1523 1516
1524<p> 1517<p>
1525<e>A:</e> Make sure your processor supports CPU frequency scaling and you chose 1518<e>A:</e> Make sure your processor supports CPU frequency scaling and you chose
1526the right CPUFreq driver for your processor. Here is a list of processors that 1519the right CPUFreq driver for your processor. Here is a list of processors that
1527are supported by cpufreq (kernel 2.6.7): ARM Integrator, ARM-SA1100, 1520are supported by cpufreq (kernel 2.6.7): ARM Integrator, ARM-SA1100, ARM-SA1110,
1528ARM-SA1110, AMD Elan - SC400, SC410, AMD mobile K6-2+, AMD mobile K6-3+, AMD 1521AMD Elan - SC400, SC410, AMD mobile K6-2+, AMD mobile K6-3+, AMD mobile Duron,
1529mobile Duron, AMD mobile Athlon, AMD Opteron, AMD Athlon 64, Cyrix Media GXm, 1522AMD mobile Athlon, AMD Opteron, AMD Athlon 64, Cyrix Media GXm, Intel mobile
1530Intel mobile PIII and Intel mobile PIII-M on certain chipsets, Intel Pentium 4, 1523PIII and Intel mobile PIII-M on certain chipsets, Intel Pentium 4, Intel Xeon,
1531Intel Xeon, Intel Pentium M (Centrino), National Semiconductors Geode GX, 1524Intel Pentium M (Centrino), National Semiconductors Geode GX, Transmeta Crusoe,
1532Transmeta Crusoe, VIA Cyrix 3 / C3, UltraSPARC-III, SuperH SH-3, SH-4, several 1525VIA Cyrix 3 / C3, UltraSPARC-III, SuperH SH-3, SH-4, several "PowerBook" and
1533"PowerBook" and "iBook2" and various processors on some ACPI 2.0-compatible 1526"iBook2" and various processors on some ACPI 2.0-compatible systems (only if
1534systems (only if "ACPI Processor Performance States" are available to the 1527"ACPI Processor Performance States" are available to the ACPI/BIOS interface).
1535ACPI/BIOS interface).
1536</p> 1528</p>
1537 1529
1538<p> 1530<p>
1539<e>Q:</e> My laptop supports frequency scaling, but 1531<e>Q:</e> My laptop supports frequency scaling, but
1540<path>/sys/devices/system/cpu/cpu0/cpufreq/</path> is empty. 1532<path>/sys/devices/system/cpu/cpu0/cpufreq/</path> is empty.
1553 1545
1554<p> 1546<p>
1555<e>A:</e> Probably you have activated symmetric multiprocessing support 1547<e>A:</e> Probably you have activated symmetric multiprocessing support
1556(CONFIG_SMP) in your kernel. Deactivate it and it should work. Some older 1548(CONFIG_SMP) in your kernel. Deactivate it and it should work. Some older
1557kernels had a bug causing this. In that case, run <c>emerge x86info</c>, update 1549kernels had a bug causing this. In that case, run <c>emerge x86info</c>, update
1558your kernel as asked and check the current frequency with 1550your kernel as asked and check the current frequency with <c>x86info -mhz</c>.
1559<c>x86info -mhz</c>.
1560</p> 1551</p>
1561 1552
1562<p> 1553<p>
1563<e>Q:</e> I can change the CPU frequency, but the range is not as wide as in 1554<e>Q:</e> I can change the CPU frequency, but the range is not as wide as in
1564another OS. 1555another OS.
1565</p> 1556</p>
1566 1557
1567<p> 1558<p>
1568<e>A:</e> You can combine frequency scaling with ACPI throttling to get a lower 1559<e>A:</e> You can combine frequency scaling with ACPI throttling to get a lower
1569minimum frequency. Notice that throttling doesn't save much energy and is 1560minimum frequency. Notice that throttling doesn't save much energy and is mainly
1570mainly used for thermal management (keeping your laptop cool and quiet). You 1561used for thermal management (keeping your laptop cool and quiet). You can read
1571can read the current throttling state with <c>cat 1562the current throttling state with <c>cat /proc/acpi/processor/CPU/throttling</c>
1572/proc/acpi/processor/CPU/throttling</c> and change it with <c>echo -n "0:x" > 1563and change it with <c>echo -n "0:x" > /proc/acpi/processor/CPU/limit</c>, where
1573/proc/acpi/processor/CPU/limit</c>, where x is one of the Tx states listed in 1564x is one of the Tx states listed in
1574<path>/proc/acpi/processor/CPU/throttling</path>. 1565<path>/proc/acpi/processor/CPU/throttling</path>.
1575</p> 1566</p>
1576 1567
1577<p> 1568<p>
1578<e>Q:</e> When configuring the kernel, powersave, performance and userspace 1569<e>Q:</e> When configuring the kernel, powersave, performance and userspace
1638<e>A:</e> This happens on some systems. You have to disable 1629<e>A:</e> This happens on some systems. You have to disable
1639<c>DynamicClocks</c>. 1630<c>DynamicClocks</c>.
1640</p> 1631</p>
1641 1632
1642<p> 1633<p>
1643<e>Q:</e> I want to use suspend2, but it tells me my swap partition is too 1634<e>Q:</e> I want to use TuxOnIce, but it tells me my swap partition is too
1644small. Resizing is not an option. 1635small. Resizing is not an option.
1645</p> 1636</p>
1646 1637
1647<p> 1638<p>
1648<e>A:</e> If there is enough free space on your system, you can use the 1639<e>A:</e> If there is enough free space on your system, you can use the
1649filewriter instead of the swapwriter. The <c>hibernate-script</c> supports it 1640filewriter instead of the swapwriter. The <c>hibernate-script</c> supports it as
1650as well. More information can be found in 1641well. More information can be found in
1651<path>/usr/src/linux/Documentation/power/suspend2.txt</path>. 1642<path>/usr/src/linux/Documentation/power/tuxonice.txt</path>.
1652</p> 1643</p>
1653 1644
1654<p> 1645<p>
1655<e>Q:</e> I just bought a brand new battery, but it only lasts for some 1646<e>Q:</e> I just bought a brand new battery, but it only lasts for some
1656minutes! What am I doing wrong? 1647minutes! What am I doing wrong?
1686 1677
1687<p> 1678<p>
1688<e>A:</e> Don't fear to contact me, <mail link="earthwings@gentoo.org">Dennis 1679<e>A:</e> Don't fear to contact me, <mail link="earthwings@gentoo.org">Dennis
1689Nienhüser</mail>, directly. The <uri link="http://forums.gentoo.org">Gentoo 1680Nienhüser</mail>, directly. The <uri link="http://forums.gentoo.org">Gentoo
1690Forums</uri> are a good place to get help as well. If you prefer IRC, try the 1681Forums</uri> are a good place to get help as well. If you prefer IRC, try the
1691<c>#gentoo-laptop</c> channel at <uri 1682<c>#gentoo-laptop</c> <uri link="irc://irc.gentoo.org">channel</uri>.
1692link="irc://irc.freenode.net">irc.freenode.net</uri>.
1693</p> 1683</p>
1694 1684
1695</body> 1685</body>
1696</section> 1686</section>
1697</chapter> 1687</chapter>

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.41

  ViewVC Help
Powered by ViewVC 1.1.20