<?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=UnixNut</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=UnixNut"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/UnixNut"/>
	<updated>2026-04-07T14:34:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work_on_a_ThinkPad_T23&amp;diff=18976</id>
		<title>How to make ACPI work on a ThinkPad T23</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work_on_a_ThinkPad_T23&amp;diff=18976"/>
		<updated>2006-01-26T10:56:27Z</updated>

		<summary type="html">&lt;p&gt;UnixNut: /* ACPI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page deals with installing and running {{Gentoo}} Linux (2005.1) on a ThinkPad {{T23}}, Model 2647-4MG.&lt;br /&gt;
&lt;br /&gt;
==Basic installation==&lt;br /&gt;
The default kernel (2.6.12-r6) boots OK, and recognises all the devices (modem not tested).&lt;br /&gt;
&lt;br /&gt;
==ACPI==&lt;br /&gt;
Getting software suspend working requires some tweaking.&lt;br /&gt;
&lt;br /&gt;
First of all, [[BIOS Upgrade|update to the latest BIOS and Embedded Controller Program]].&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dmesg}} will probably tell you that ACPI isn't enabled in the BIOS, because the T23 BIOS has no mention of ACPI. Just add {{bootparm|lapic|}} to the kernel&lt;br /&gt;
arguments in {{path|/etc/lilo.conf}} or {{path|/boot/grub/menu.lst}}.&lt;br /&gt;
&lt;br /&gt;
After that, you will probably get a lot of ACPI error messages, generally of the form &amp;lt;tt&amp;gt;AE_NOT_EXIST&amp;lt;/tt&amp;gt;. Those can be fixed by recompiling your DSTD. To do just that, get the Intel iasl compiler source from [http://developer.intel.com/technology/iapc/acpi/downloads.htm their site] and compile it.  It should build without troubles. De- and re-compile the DSDT. If it gives errors or remarks, try fixing them as best as you can. Then load the new DSDT on boot with the kernel's &amp;quot;Custom DSDT&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
Now {{cmdroot|dmesg}} should show that the ACPI had found the ECDT and enabled the interpreter and you should find a full set of ACPI entries under {{path|/proc}}.&lt;br /&gt;
&lt;br /&gt;
Done that, verify that the [[ibm-acpi]] driver is enabled by issuing {{cmdroot|ls /proc/acpi/ibm/*}}. If you see files in this directory, everything is alright. If the directory couldn't be found, you will have to enable [[ibm-acpi]] in your kernel config (as builtin or module) and recompile your kernel.&lt;br /&gt;
&lt;br /&gt;
The next step is [[How to configure acpid|configuring acpid]], which handles the ACPI buttons through scripts in {{path|/etc/acpi}}.&lt;br /&gt;
&lt;br /&gt;
To try if suspend to ram workd, press {{key|Fn}}{{key|F4}} or issue a {{cmdroot|echo -n mem &amp;gt;/sys/power/state}}.&lt;br /&gt;
&lt;br /&gt;
===Resume problem===&lt;br /&gt;
If your system doesn't resume from sleep after that, use the power button to switch it off and restart. To solve the issue, try disabling S3 framebuffer support in your kernel config and recompile your kernel. Should that not be enough, try unloading suspicious drivers such as USB in your suspend script and reloading them on resume.&lt;br /&gt;
&lt;br /&gt;
If all that doesn't help, build a monolithic kernel having everything you need builtin and only minimal options enabled. If it works with that kernel, start reenabling other options step by step.&lt;br /&gt;
&lt;br /&gt;
===Button events===&lt;br /&gt;
By default, ACPI seems to handle three button events only - the Power button, the Suspend key ({{key|Fn}}{{key|F4}}) and the lid event. {{key|Fn}}{{key|F3}} (Screen blank) will need [[How to make ACPI work#Screen blanking (Standby)|extra configuration]], as well as {{key|Fn}}{{key|F12}} (Suspend to disk) (look [[How to make ACPI work#Suspend to disk (Hibernate)|here}}). {{key|Fn}}{{key|F7}}, (Switch to&lt;br /&gt;
video) at least blanks the LCD.&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}{{key|Home}} (LED brighter), {{key|Fn}}{{key|End}} (LED dimmer), {{key|Fn}}{{key|PgUp}}&lt;br /&gt;
(Screen light) will work without any further effords, since they are not handled by the ACPI subsystem.&lt;br /&gt;
&lt;br /&gt;
When the machine is running, the lid switch blanks the screen when&lt;br /&gt;
pressed and restores on release, but if the machine is suspended&lt;br /&gt;
pressing the switch does nothing and releasing it brings the machine out&lt;br /&gt;
of suspend mode.&lt;br /&gt;
&lt;br /&gt;
Commands echoed to eg: {{path|/proc/acpi/ibm/light}} can be mixed with the appropriate keypresses (here,&lt;br /&gt;
{{key|Fn}}{{key|PgUp}}) without problems.&lt;br /&gt;
&lt;br /&gt;
===Frequency Scaling===&lt;br /&gt;
The CPU (Pentium IIIM) has power management but not&lt;br /&gt;
throttling, and doesn't at the moment change speed automatically.&lt;br /&gt;
There must be a way around this, but since the CPU has only two speeds&lt;br /&gt;
it's easier to use a shell script to flip between the performance and&lt;br /&gt;
powersave kernel governors; everything needed can be found in the {{path|/sys/devices/system/cpu/cpu0/cpufreq}} directory.&lt;br /&gt;
&lt;br /&gt;
===UltraBay LED stays lid===&lt;br /&gt;
The Bay LED wrongly stays lit even when in suspend to ram mode, but the most recent (1.1) [[ibm-acpi]] module provides an ACPI LED device which controls most of the LEDs (the Bay LED&lt;br /&gt;
is 4), so you can switch it off in your suspend script.&lt;br /&gt;
&lt;br /&gt;
===Resume===&lt;br /&gt;
With the CPU on low speed (if it matters) and the LED off the power consumption in Suspend mode is around 580mW.&lt;br /&gt;
&lt;br /&gt;
It looks as if the software to control full ACPI functionality has&lt;br /&gt;
only stabilised within the middle of 2005, so if you&lt;br /&gt;
have problems, try upgrading to IBM's latest BIOS and EBIOS, and a&lt;br /&gt;
kernel &amp;gt;=2.12.  With luck, the next version or so of the S3 driver will&lt;br /&gt;
be free of its hang problem.&lt;/div&gt;</summary>
		<author><name>UnixNut</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work_on_a_ThinkPad_T23&amp;diff=18957</id>
		<title>How to make ACPI work on a ThinkPad T23</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_ACPI_work_on_a_ThinkPad_T23&amp;diff=18957"/>
		<updated>2006-01-26T02:03:43Z</updated>

		<summary type="html">&lt;p&gt;UnixNut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I recently bought a second-hand ThinkPad {{T23}}, Model 2647-4MG, and&lt;br /&gt;
decided to run {{Gentoo}} Linux 2.6.12-r6 on it; this is the 2005.1 release&lt;br /&gt;
on a DVD, since I have limited internet access.&lt;br /&gt;
&lt;br /&gt;
The default kernel booted OK, and recognised all the devices (tho' I&lt;br /&gt;
haven't tested the modem, and I've run X-windows only briefly.)&lt;br /&gt;
However, I wanted software suspend, and I couldn't get that to work at&lt;br /&gt;
all.&lt;br /&gt;
&lt;br /&gt;
The first complaint from dmesg was that ACPI wasn't enabled in the BIOS;&lt;br /&gt;
the T23 BIOS has no mention of ACPI, so I added lapic to the kernel&lt;br /&gt;
arguments and that went away.  The next problem was a large number of&lt;br /&gt;
ACPI error messages, generally of the form &amp;lt;tt&amp;gt;AE_NOT_EXIST&amp;lt;/tt&amp;gt;, so I got the&lt;br /&gt;
Intel iasl compiler source from their site and compiled it.  It compiled&lt;br /&gt;
cleanly, and de-compiling and re-compiling the DSDT gave one Error and&lt;br /&gt;
one Remark.  I fixed them as best I could, and loaded the new DSDT on&lt;br /&gt;
boot with the kernel's &amp;quot;Custom DSDT&amp;quot; option; this worked correctly, but&lt;br /&gt;
dmesg still showed a lot of ACPI error messages, including two which&lt;br /&gt;
said &amp;quot;Found ECDT&amp;quot; and &amp;quot;Could not use ECDT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Rather than mess with the ECDT straightaway, I decided to upgrade to the&lt;br /&gt;
latest BIOS and Embedded Controller BIOS.  The system came with (the&lt;br /&gt;
original) versions 1.12 and 1.04, so I downloaded versions 1.18 and&lt;br /&gt;
1.06a from the IBM Website.  The installers come in floppy disk and&lt;br /&gt;
Windows-based versions, and I used them under Windows 2000.  Mercifully&lt;br /&gt;
the re-flash worked as advertised, tho' interestingly the {{key|F12}} &amp;quot;Select&lt;br /&gt;
Boot Device&amp;quot; menu changed slightly, and at first it appeared to have&lt;br /&gt;
lost the &amp;quot;Boot from USB&amp;quot; option, although that was enabled in the BIOS.&lt;br /&gt;
Apparently the menu now simply calls a USB memory stick a hard drive.&lt;br /&gt;
Anyway, boot from USB still works.&lt;br /&gt;
&lt;br /&gt;
Booting into Linux then gave me no error messages, and dmesg showed that&lt;br /&gt;
the ACPI had found the ECDT and enabled the interpreter.  There was also&lt;br /&gt;
a full set of ACPI entries under {{path|/proc}}.  Although the DSDT had changed,&lt;br /&gt;
de-compiling and re-compiling with iasl showed that the error that had&lt;br /&gt;
originally bothered me was still there, so I let it be.  I then loaded&lt;br /&gt;
acpid, which handles the ACPI buttons through scripts in /etc/acpi.&lt;br /&gt;
Trying {{key|Fn}}{{key|F4}} to {{cmdroot|echo -n 3 &amp;gt;/proc/acpi/sleep}} suspended the system, but&lt;br /&gt;
nothing would bring it back.  Fortunately the Power Off button was still&lt;br /&gt;
functional.&lt;br /&gt;
&lt;br /&gt;
NOTE: On newer kernels (2.6.13 &amp;gt;) /proc/acpi/sleep has been superceaded by /sys/power/state, where state&lt;br /&gt;
can be either mem or standby (other options are available depending on system in question).&lt;br /&gt;
so to syspend to ram you would type &amp;quot;echo mem &amp;gt; /sys/poewr/state&amp;quot;, and for standby you woudl type &lt;br /&gt;
&amp;quot;echo standby &amp;gt; /sys/power/state&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Digging around, it looked as if there were only three keys which ACPI&lt;br /&gt;
handled by default - the Power Off key, the Suspend key ({{key|Fn}}{{key|F4}}) and the&lt;br /&gt;
Lid key.  I found that I had to provide a handler for the Suspend key,&lt;br /&gt;
but for simplicity I left the other two alone, and most other special&lt;br /&gt;
purpose keys, eg.  {{key|Fn}}{{key|Home}} (LED brighter), {{key|Fn}}{{key|End}} (LED dimmer), {{key|Fn}}{{key|PgUp}}&lt;br /&gt;
(Screen light), kept on working anyway.  {{key|Fn}}{{key|F3}} (Screen blank), didn't&lt;br /&gt;
work and nor (fortunately) did {{key|Fn}}{{key|F12}}, Suspend to disk; {{key|Fn}}{{key|F7}}, Switch to&lt;br /&gt;
video, seemed to - at least, it blanked the LCD.  I then tried unloading&lt;br /&gt;
suspicious drivers such as USB, but could still only enter Suspend mode&lt;br /&gt;
and not recover; finally I built a kernel with no loadable modules&lt;br /&gt;
except networking, and the minimum of options - no USB, no PCMCIA,&lt;br /&gt;
nothing that wasn't actually present when the machine booted.  That&lt;br /&gt;
finally worked, and I could suspend to disk with {{key|Fn}}{{key|F4}} and recover by&lt;br /&gt;
pressing Fn (but no other key - I seem to recall that any keypress would&lt;br /&gt;
work with the original BIOS).&lt;br /&gt;
&lt;br /&gt;
When the machine is running, the Lid switch blanks the screen when&lt;br /&gt;
pressed and restores on release, but if the machine is suspended&lt;br /&gt;
pressing the switch does nothing and releasing it brings the machine out&lt;br /&gt;
of suspend mode.  That seems reasonable.  Commands echoed to eg:&lt;br /&gt;
{{path|/proc/acpi/ibm/light}} can be mixed with the appropriate keypresses (here,&lt;br /&gt;
{{key|Fn}}{{key|PgUp}}) without problems.&lt;br /&gt;
&lt;br /&gt;
I started re-enabling the various bits of hardware I needed one by one,&lt;br /&gt;
but when I re-enabled the Savage S3 framebuffer support the machine&lt;br /&gt;
would enter suspend, but would hang partway through re-emergence.&lt;br /&gt;
&lt;br /&gt;
I then disabled the S3 stuff and enabled the Intel 830M framebuffer code&lt;br /&gt;
(I don't know how this relates to the S3 driver, but the T23 apparently&lt;br /&gt;
has both chips) and the suspend worked again.  The S3 driver is handy in&lt;br /&gt;
text mode, since it gives more lines per screen (and a nice penguin logo&lt;br /&gt;
on boot-up) but the system still runs eg: X windows reasonably well.&lt;br /&gt;
&lt;br /&gt;
Suspending and re-emerging with USB support and a USB memory key&lt;br /&gt;
plugged in, and with X windows running, then worked fine; at the&lt;br /&gt;
moment I don't have the hardware to test anything more.  Some things&lt;br /&gt;
are still odd - the CPU (Pentium IIIM) has power management but not&lt;br /&gt;
throttling, and doesn't at the moment change speed automatically.&lt;br /&gt;
There must be a way around this, but since the CPU has only two speeds&lt;br /&gt;
it's easier to use a shell script to flip between the performance and&lt;br /&gt;
powersave kernel governors; everything needed can be found in the {{path|/sys/devices/system/cpu/cpu0/cpufreq}} directory.&lt;br /&gt;
&lt;br /&gt;
The Bay LED wrongly stays lit even when in suspend mode on battery&lt;br /&gt;
(unlike the Power LED), but the most recent (1.1) ibm_acpi module&lt;br /&gt;
provides an ACPI LED device which controls most of the LEDs (the Bay LED&lt;br /&gt;
is 4), and when my configuration has stabilised I'll set the LED up via&lt;br /&gt;
the suspend script.  With the CPU on low speed (if it matters) and the&lt;br /&gt;
LED off the power consumption in Suspend mode is around 580mW.&lt;br /&gt;
&lt;br /&gt;
I hope this helps someone else with their T23, because they are very&lt;br /&gt;
nice machines, and quite versatile; this one seems to be able to deal&lt;br /&gt;
with most forms of networking and mass storage pretty much out of the&lt;br /&gt;
box.  It looks as if the software to control full ACPI functionality has&lt;br /&gt;
only stabilised within the last few months (ie:  mid-2005), so if you&lt;br /&gt;
have problems, try upgrading to IBM's latest BIOS and EBIOS, and a&lt;br /&gt;
kernel &amp;gt;=2.12.  With luck, the next version or so of the S3 driver will&lt;br /&gt;
be free of its hang problem.&lt;/div&gt;</summary>
		<author><name>UnixNut</name></author>
		
	</entry>
</feed>