<?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=Alexdu</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=Alexdu"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Alexdu"/>
	<updated>2026-04-22T16:09:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Intel_Mobile_Pentium_II&amp;diff=39595</id>
		<title>Talk:Intel Mobile Pentium II</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Intel_Mobile_Pentium_II&amp;diff=39595"/>
		<updated>2008-11-07T21:02:27Z</updated>

		<summary type="html">&lt;p&gt;Alexdu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;According to /proc/cpuinfo, my 770X has a desktop PII, as opposed to a mobile one.&lt;br /&gt;
 # cat /proc/cpuinfo &lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 5&lt;br /&gt;
 model name      : Pentium II (Deschutes)&lt;br /&gt;
 stepping        : 2&lt;br /&gt;
 cpu MHz         : 297.817&lt;br /&gt;
 cache size      : 512 KB&lt;br /&gt;
Versus a 770z...&lt;br /&gt;
 # cat 770z/cpuinfo&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 6&lt;br /&gt;
 model name      : Mobile Pentium II&lt;br /&gt;
 stepping        : 10&lt;br /&gt;
 cpu MHz         : 364.038&lt;br /&gt;
 cache size      : 256 KB&lt;br /&gt;
Dunno if this info can be relied upon or not.&lt;br /&gt;
&lt;br /&gt;
[[User:lentinj]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Interesting. The Specs say that the 770E/ED has non Mobile Pentium II (or at least one can interpret is like this), but that the 770X and 770Z have Mobile Pentium II. Interesting is the difference in the model number of the output you posted. I'll look into this again, when i have time. I found the specs quite confusing in this point and didn't believe that they used desktop processors. [[User:Wyrfel|Wyrfel]] 19:37, 20 Aug 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optimalization flags ==&lt;br /&gt;
 &lt;br /&gt;
Is it OK ?&lt;br /&gt;
&lt;br /&gt;
  -march=pentium2 -mmmx &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Vitex|Vitex]] 16:47, 18 March 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
770Z CPU from Type 9549&lt;br /&gt;
&lt;br /&gt;
 # x86info  &lt;br /&gt;
 Found 1 CPU&lt;br /&gt;
 --------------------------------------------------------------------------&lt;br /&gt;
 Family: 6 Model: 6 Stepping: 10 Type: 0 Brand: 0&lt;br /&gt;
 CPU Model: Mobile Pentium II [mdA0] Original OEM&lt;br /&gt;
 Feature flags:&lt;br /&gt;
  fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr&lt;br /&gt;
 Extended feature flags:&lt;br /&gt;
&lt;br /&gt;
 Cache info&lt;br /&gt;
  L1 Instruction cache: 16KB, 4-way associative. 32 byte line size.&lt;br /&gt;
  L1 Data cache: 16KB, 4-way associative. 32 byte line size.&lt;br /&gt;
  L2 unified cache: 256KB, 4-way associative. 32 byte line size.&lt;br /&gt;
 TLB info&lt;br /&gt;
  Instruction TLB: 4KB pages, 4-way associative, 32 entries&lt;br /&gt;
  Instruction TLB: 4MB pages, fully associative, 2 entries&lt;br /&gt;
  Data TLB: 4KB pages, 4-way associative, 64 entries&lt;br /&gt;
  Data TLB: 4MB pages, 4-way associative, 8 entries&lt;br /&gt;
  (null)&lt;br /&gt;
&lt;br /&gt;
 # cat /proc/cpuinfo &lt;br /&gt;
 processor	: 0&lt;br /&gt;
 vendor_id	: GenuineIntel&lt;br /&gt;
 cpu family	: 6&lt;br /&gt;
 model		: 6&lt;br /&gt;
 model name	: Mobile Pentium II&lt;br /&gt;
 stepping	: 10&lt;br /&gt;
 cpu MHz		: 363.968&lt;br /&gt;
 cache size	: 256 KB&lt;br /&gt;
 fdiv_bug	: no&lt;br /&gt;
 hlt_bug		: no&lt;br /&gt;
 f00f_bug	: no&lt;br /&gt;
 coma_bug	: no&lt;br /&gt;
 fpu		: yes&lt;br /&gt;
 fpu_exception	: yes&lt;br /&gt;
 cpuid level	: 2&lt;br /&gt;
 wp		: yes&lt;br /&gt;
 flags		: fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr&lt;br /&gt;
 bogomips	: 728.50&lt;br /&gt;
 clflush size	: 32&lt;/div&gt;</summary>
		<author><name>Alexdu</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=26121</id>
		<title>Talk:How to get special keys to work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=26121"/>
		<updated>2006-10-31T18:58:32Z</updated>

		<summary type="html">&lt;p&gt;Alexdu: /* ibm-acpi hint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
The xmodmap step doesn't seem to work when using the &amp;quot;kdb&amp;quot; driver of xorg. Here are the changes I needed to make to my setup to get the &amp;quot;back&amp;quot; and &amp;quot;forward&amp;quot; keys to work (in diff -u format);&lt;br /&gt;
&lt;br /&gt;
 --- xkb/symbols/inet.oud        2004-12-01 08:36:04.000000000 +0100&lt;br /&gt;
 +++ xkb/symbols/inet    2005-03-08 19:59:32.587636120 +0100&lt;br /&gt;
 @@ -1875,6 +1875,16 @@&lt;br /&gt;
      key &amp;lt;I76&amp;gt;  {       [ XF86AudioLowerVolume  ]       };&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
 +// IBM ThinkPad 41 Internet Keys&lt;br /&gt;
 +&lt;br /&gt;
 +partial alphanumeric_keys&lt;br /&gt;
 +xkb_symbols &amp;quot;tp41&amp;quot; {&lt;br /&gt;
 +    name[Group1]= &amp;quot;IBM ThinkPad 41 Internet Keys&amp;quot;;&lt;br /&gt;
 +&lt;br /&gt;
 +    key &amp;lt;I69&amp;gt;  {       [ F22           ]       };&lt;br /&gt;
 +    key &amp;lt;I6A&amp;gt;  {       [ F21           ]       };&lt;br /&gt;
 +};&lt;br /&gt;
 +&lt;br /&gt;
  // Trust&lt;br /&gt;
  &lt;br /&gt;
  partial alphanumeric_keys&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.lst.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.lst  2005-03-07 20:55:21.000000000 +0100&lt;br /&gt;
 @@ -97,6 +97,7 @@&lt;br /&gt;
    sven         SVEN Ergonomic 2500&lt;br /&gt;
    symplon      Symplon PaceBook (tablet PC)&lt;br /&gt;
    toshiba_s3000        Toshiba Satellite S3000&lt;br /&gt;
 +  tp41         IBM ThinkPad 41 Internet Keys&lt;br /&gt;
    trust                Trust Wireless Keyboard Classic&lt;br /&gt;
    trustda      Trust Direct Access Keyboard&lt;br /&gt;
    yahoo                Yahoo! Internet Keyboard&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.oud  2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg      2005-03-07 20:45:59.000000000 +0100&lt;br /&gt;
 @@ -120,7 +120,7 @@&lt;br /&gt;
                qtronix \&lt;br /&gt;
                samsung4500 samsung4510 \&lt;br /&gt;
                sk1300 sk2500 sk6200 sk7100 \&lt;br /&gt;
 -              sven symplon toshiba_s3000 trust trustda yahoo&lt;br /&gt;
 +              sven symplon toshiba_s3000 tp41 trust trustda yahoo&lt;br /&gt;
 &lt;br /&gt;
  ! model         =       symbols&lt;br /&gt;
    $inetkbds     =       +inet(%m)&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.xml.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.xml  2005-03-07 20:52:35.000000000 +0100&lt;br /&gt;
 @@ -975,6 +975,13 @@&lt;br /&gt;
      &amp;lt;/model&amp;gt;&lt;br /&gt;
      &amp;lt;model&amp;gt;&lt;br /&gt;
        &amp;lt;configItem&amp;gt;&lt;br /&gt;
 +        &amp;lt;name&amp;gt;tp41&amp;lt;/name&amp;gt;&lt;br /&gt;
 +        &amp;lt;description&amp;gt;IBM Thinkpad 41 Internet Keys&amp;lt;/description&amp;gt;&lt;br /&gt;
 +        &amp;lt;description xml:lang=&amp;quot;nl&amp;quot;&amp;gt;IBM ThinkPad 41 internet toetsen&amp;lt;/description&amp;gt;&lt;br /&gt;
 +      &amp;lt;/configItem&amp;gt;&lt;br /&gt;
 +    &amp;lt;/model&amp;gt;&lt;br /&gt;
 +    &amp;lt;model&amp;gt;&lt;br /&gt;
 +      &amp;lt;configItem&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;trust&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;description&amp;gt;Trust Wireless Keyboard Classic&amp;lt;/description&amp;gt;&lt;br /&gt;
          &amp;lt;description xml:lang=&amp;quot;fr&amp;quot;&amp;gt;clavier classique Trust Wireless&amp;lt;/description&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Do not forget to add something like &amp;quot;+inet(tp41)&amp;quot; to /etc/X11/xorg.conf:&lt;br /&gt;
        (...)&lt;br /&gt;
        Option      &amp;quot;XkbLayout&amp;quot; &amp;quot;us_intl+inet(tp41)&amp;quot;&lt;br /&gt;
        (...)&lt;br /&gt;
&lt;br /&gt;
== Not T41 specific ==&lt;br /&gt;
&lt;br /&gt;
These keys are hardly T41 specific, they can also be found on the T30, T40, T42 and I'm sure several other ThinkPads in the X, R and G lineup.&lt;br /&gt;
&lt;br /&gt;
Actually, the above patches could be completed with the information of the other special keys found on some Thinkpads (which is listed in [[How_to_get_special_keys_to_work#xmodmap_configuration]]) and submitted as a request for enhancement with [http://bugs.freedesktop.org xorg's bugzilla]. However, firefox doesn't yet recognize keysyms like XF86Back, XF86Forward, so then firefox still needs to be patched manually (unless an enhancement is requested for firefox too).&lt;br /&gt;
&lt;br /&gt;
== Fake ACPI events? ==&lt;br /&gt;
&lt;br /&gt;
Not all keys generate ACPI events. Maybe it is feasible to have the ibm-acpi module check the CMOS (instead of having tpb checking /dev/nvram) and generate fake ACPI events for those keys. Even if it is feasible, that is probably way to hacky for a kernel module ... Still, it would be nice to only have to use scripts triggered by ACPI events and not both scripts for ACPI events and scripts for tpb.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file from which you can derive a table of CMOS states. You'd only have to figure the who is who of CMOS bits and write a daemon (or daemon like shell script) checking them regularly. This should be about what you suggest since tpb does the same thing with the bios ram. Of course generating ACPI events can not be done like that (or can it?), but you could trigger the ACPI action scripts directly then.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:02, 14 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It may be possible (I have a 770x, so don't have the special keys) to add the keys as real ACPI events, by altering the DSDT.  I've done this to enable ACPI events for Fn-(every labelled F key),Home,End,PgUp,PgDn on mine, and they aren't labelled with anything physically (no thinklight and physical brightness control).  The Embedded Controller  reports all events, including keys, by calling one of the _Qxx functions (you'll find a whole pile in the sourcecode for the DSDT).  If you then insert a fucntion in the same scope as the others like:-&lt;br /&gt;
 Method (_Q12, 0, NotSerialized) { \_SB.HKEY.MHKQ (0x1003) } //Fn-F3&lt;br /&gt;
when executed, ibm-acpi will then report an acpi event numbered 0x0001003.  You should find some functions, e.g. _Q1B For Fn-F12 identical to this.&lt;br /&gt;
&lt;br /&gt;
I found some IBM DSDT's had functions that made MKHQ calls for EC functions _Q63, _Q64, _Q4E, _Q4F, but did nothing on mine---maybe these are a good starting point.  Add a whole pile, and see if you get lucky! (At your own risk, of course... :/  But it should be pretty safe).&lt;br /&gt;
&lt;br /&gt;
Yes, the above sounds pretty identical to tpb, except with /proc/ibm/ecdump instead of /dev/nvram.  The above works very nicely, however there's luck involved in finding the right number, even if it exists!&lt;br /&gt;
&lt;br /&gt;
[[User:lentinj|lentinj]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fn+F6 does not seem to generate an event on t41p even if the mask is set to 0xffff and experimental=1 is passed to ibm_acpi&lt;br /&gt;
[[User:tf|tf]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bind Fn to super or hyper ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
Is it possible to bind Fn via Xmodmap to a key modifier such as hyper or super? Thanks&lt;br /&gt;
[[User:Oub|Oub]] 13:14, 6 February 2006 (CET): &lt;br /&gt;
----&lt;br /&gt;
I doubt it. The event for the {{key|Fn}} key is generated at release (as opposed to holding it where it serves it's usual special function). Hence you can't use it as a modifier. [[User:Wyrfel|Wyrfel]] 22:52, 6 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Bind Fn 12 say to F34 ==&lt;br /&gt;
Thanks Wyrfel for your reply, in order to display my question better, I use a new header: can I bind all the Fn Fx to hay F34 and the like?&lt;br /&gt;
[[User:Oub|Oub]] 21:33, 10 February 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
You can do this with all key '''combinations''' that support xmodmap (see the table). That means you can't do it with {{key|Fn}}}{{key|F12}}, because that combination doesn't generate a key event at all (it only generates an APM/ACPI event. Hence there is nothing vor xmodmap to remap.&lt;br /&gt;
&lt;br /&gt;
But what is your wider focus goal? I'm sure that what you want to do can be realized, anyway: You can write an ACPI script and event file for {{key|Fn}}{{key|F12}} and have the script start some tool that sends a F34 key to the X server. I'm sure this is possible.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 00:03, 11 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Can't bind Fn 12 ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
I  am using a R51 and I have compiled ibm-acpi monolithic in the kernel (not as module, maybe this is a mistake?). Anyway, I am using &lt;br /&gt;
suspend2, which I compiled in the kernel as well. Now I have bound &lt;br /&gt;
''to hibernate '' first to Fn 4, with the following script&lt;br /&gt;
 event=button[ /]sleep  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
This works fine. Now I want to do the same for Fn12, so following the key table I did:  &lt;br /&gt;
&lt;br /&gt;
 event=button[/] ibm/hotkey HKEY 00000080 0000100c  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
But that does not work. What is the problem? I tried even   &lt;br /&gt;
 echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey &lt;br /&gt;
without success. Can anybody help me? &lt;br /&gt;
[[User:Oub|Oub]] 16:27, 4 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
The proper event line is&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
Also, make sure that you are not using [thinkpad-acpi]. If &amp;lt;tt&amp;gt;event=button[ /]sleep&amp;lt;/tt&amp;gt; works for {{key|Fn}}{{key|F4}}, that indicates that you do. It might block the ibm-acpi driver. Check your kernel config and disable any thinkpad acpi driver except ibm-acpi.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 21:58, 4 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:Hello&lt;br /&gt;
:&lt;br /&gt;
:It is odd, I am pretty sure, that I do not use [thinkpad-acpi], but [ibm-acpi], although event=button[ /]sleep works for FnF4, in any case I found out that &lt;br /&gt;
:&lt;br /&gt;
: event=(button/power|ibm/hotkey HKEY 00000080 0000100c)&lt;br /&gt;
:&lt;br /&gt;
:Works! What do you think of adding a subsection to the [[How to get special keys to work]] page, with some examples, like the following:&lt;br /&gt;
:&lt;br /&gt;
:from ''/etc/acpi/events/battery'':&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
 action=/usr/local/sbin/hibernate&lt;br /&gt;
:from ''/etc/acpi/events/lid''&lt;br /&gt;
 event=button/lid&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:from ''/etc/acpi/events/sleepbtn''&lt;br /&gt;
 event=(button/sleep|ibm/hotkey HKEY 00000080 00001004)&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:&lt;br /&gt;
:(Also ''event=button/sleep '' works for me)&lt;br /&gt;
:and then restart acpi:&lt;br /&gt;
:&lt;br /&gt;
 /etc/init.d/acpid restart&lt;br /&gt;
:&lt;br /&gt;
:[[User:Oub|Oub]] 13:22, 5 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
What you do with&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
is to make a logical nonexclusive OR between&lt;br /&gt;
 event=button/power&lt;br /&gt;
and&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
. If the first works, the whole thing works. So that's pretty logical.&lt;br /&gt;
&lt;br /&gt;
Please, do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep thinkpad-acpi}} and do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep ibm-acpi}}. What is the output in either case?&lt;br /&gt;
&lt;br /&gt;
I see no sense in putting examples to the page that only confuse people because they are not correct. ibm-acpi generates the events listed in the table and nothing else. If you get something like &amp;lt;tt&amp;gt;button/sleep&amp;lt;/tt&amp;gt; it's not ibm-acpi generating it. You are running Debian, right? Let's hope they didn't patch the driver to generate different events.&lt;br /&gt;
&lt;br /&gt;
Also, you can always do {{cmdroot|tail -f /var/log/acpid}} to have a life view of the generated events.&lt;br /&gt;
&lt;br /&gt;
I am pretty sure that you are using thinkpad-acpi or - if not so - that something else must interfere.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
:Hi &lt;br /&gt;
:&lt;br /&gt;
:Ok I admit everything is very odd. For the start, I seem to use &lt;br /&gt;
:ibm-acpi. As I said I am Debian,  but I compiled my own kernel :(2.6.10)(but not as a module, maybe this was a bad idee??)  and I used :the ibm-acpi driver which comes shipped with that kernel. I did not :download the driver from the official http://ibm-acpi.sourceforge.net/ :site. Here is the output of &lt;br /&gt;
:&lt;br /&gt;
:dmesg | grep acpi&lt;br /&gt;
 Kernel command line: ro  root=/dev/hda6 acpi_sleep=s3_bios&lt;br /&gt;
 tbxface-0118 [02] acpi_load_tables      : ACPI Tables successfully acquired&lt;br /&gt;
 evxfevnt-0094 [03] acpi_enable           : Transition to ACPI mode successful&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [df6ddaa8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1464768]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146bba8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b628]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b3e8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b268]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146dde8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470d68]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470568]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c14719a8]&lt;br /&gt;
 ibm_acpi: IBM ThinkPad ACPI Extras v0.8&lt;br /&gt;
 ibm_acpi: http://ibm-acpi.sf.net/&lt;br /&gt;
 acpi_bus-0081 [08] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 ibm_acpi: dock device not present&lt;br /&gt;
&lt;br /&gt;
:I don't understand the errors but anyway. Now the odd thing is that indeed the following works&lt;br /&gt;
:&lt;br /&gt;
 event=button[ /]sleep&lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
:but   &lt;br /&gt;
 event=button[/]sleep  &lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
&lt;br /&gt;
:Does not work. But from what you said, using the ibm_acpi neither of '''these strings ''' should  work? So I don't understand what is going on. [[User:Oub|Oub]] 20:28, 6 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With any reasonably new kernel (2.6.16 in Thinkpad terms :-) ) and a good DSDT (say, like the one that comes inside the T43), you can get two classes of events: ACPI events (as in native ACPI events), and ibm-acpi hotkey events.&lt;br /&gt;
&lt;br /&gt;
This has nothing to do with thinkpad-acpi.&lt;br /&gt;
&lt;br /&gt;
Look under /proc/acpi/buttons.  If you have sleep and maybe hibernate/suspend in there (I don't know how fn+f12 is called when properly supported through ACPI DSDT, the T43 doesn't support it like that), then your Thinkpad can, and will generate proper ACPI events without the help of ibm-acpi.  This is valid for a complete ACPI config of kernel 2.6.16 with all modules loaded.&lt;br /&gt;
&lt;br /&gt;
And it will generate regular ibm-acpi hotkey events if you enable the feature and use the correct mask, which may or may not confuse the thinkpad (I am not sure the correct DSDT handlers the BIOS expect to run are called in this case).&lt;br /&gt;
&lt;br /&gt;
-- [[User:Hmh|hmh]] 2006-05-26 13:20 UTC&lt;br /&gt;
&lt;br /&gt;
==Turn on/off Wifi on Fn5 ==&lt;br /&gt;
Hi&lt;br /&gt;
&lt;br /&gt;
I hope this is the last question. I use a crude way to activate and deactivate my wificard: I remove and insert the relevant modules, with 2 simple scripts. Now the question is how can I bind Fn5 so, that it turns on and off the wificard? With my approach I need to fire up two scripts, and that I cannot bind to one button. Thanks &lt;br /&gt;
[[User:Oub|Oub]] 17:57, 5 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
Try a {{cmdroot|cat /proc/acpi/ibm/bluetooth}}. Maybe it returns the state. If not, the other way would be to check if the USB bluetooth controller device is listed in {{path|/proc/bus/usb}} somewhere. It shouldn't be there if bluetooth is switched off and should be there if it is on.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Split page?==&lt;br /&gt;
This page is getting too long. Maybe we should split it. I'd suggest moving the &amp;quot;Example applications&amp;quot; to a seperate page. &lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 22:46, 3 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==DIY Firefox 1.5 xpi==&lt;br /&gt;
Here's how I maneged a Firefox 1.5 compatible plugin (source: google). Note that the wiki eats some of the xml tags (so look at the source too)&lt;br /&gt;
&lt;br /&gt;
 $ ls -1R tp41.xpi&lt;br /&gt;
 tp41.xpi/:&lt;br /&gt;
 chrome&lt;br /&gt;
 chrome.manifest&lt;br /&gt;
 install.rdf&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome:&lt;br /&gt;
 content&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome/content:&lt;br /&gt;
 tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome.manifest&lt;br /&gt;
 content     tp41keys    chrome/content/&lt;br /&gt;
 overlay chrome://browser/content/browser.xul chrome://tp41keys/content/tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/install.rdf&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;RDF xmlns=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
      xmlns:em=&amp;quot;http://www.mozilla.org/2004/em-rdf#&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;Description about=&amp;quot;urn:mozilla:install-manifest&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;em:id&amp;gt;tp41keys@tp41keys.org&amp;lt;/em:id&amp;gt;&lt;br /&gt;
     &amp;lt;em:version&amp;gt;1.0&amp;lt;/em:version&amp;gt;&lt;br /&gt;
     &amp;lt;em:type&amp;gt;2&amp;lt;/em:type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Target Application this extension can install into,&lt;br /&gt;
          with minimum and maximum supported versions. --&amp;gt;&lt;br /&gt;
     &amp;lt;em:targetApplication&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;&lt;br /&gt;
         &amp;lt;em:id&amp;gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&amp;lt;/em:id&amp;gt;&lt;br /&gt;
         &amp;lt;em:minVersion&amp;gt;1.0+&amp;lt;/em:minVersion&amp;gt;&lt;br /&gt;
         &amp;lt;em:maxVersion&amp;gt;1.5.0.*&amp;lt;/em:maxVersion&amp;gt;&lt;br /&gt;
       &amp;lt;/Description&amp;gt;&lt;br /&gt;
     &amp;lt;/em:targetApplication&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Front End MetaData --&amp;gt;&lt;br /&gt;
     &amp;lt;em:name&amp;gt;IBM ThinkPad 41 Keys&amp;lt;/em:name&amp;gt;&lt;br /&gt;
     &amp;lt;em:description&amp;gt;Two Browser Navigation Keys&amp;lt;/em:description&amp;gt;&lt;br /&gt;
     &amp;lt;em:creator&amp;gt;Paul Bolle&amp;lt;/em:creator&amp;gt;&lt;br /&gt;
     &amp;lt;em:homepageURL&amp;gt;http://www.example.com/tp41keys.xpi&amp;lt;/em:homepageURL&amp;gt;&lt;br /&gt;
   &amp;lt;/Description&amp;gt;&lt;br /&gt;
 &amp;lt;/RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome/content/tp41keysOverlay.xul&lt;br /&gt;
 &amp;lt;?xml version='1.0'?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE overlay&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;overlay id='tp41keysOverlay'&lt;br /&gt;
     xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'&amp;gt;&lt;br /&gt;
 &amp;lt;!-- For Firefox --&amp;gt;&lt;br /&gt;
     &amp;lt;keyset id='mainKeyset'&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41BackKey' keycode='VK_F21' command='Browser:Back' /&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41ForwardKey' keycode='VK_F22' command='Browser:Forward' /&amp;gt;&lt;br /&gt;
     &amp;lt;/keyset&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/overlay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat .mozilla/firefox/*.default/extensions/tp41keys\@tp41keys.org &lt;br /&gt;
 ~/tp41.xpi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ibm-acpi hint==&lt;br /&gt;
&lt;br /&gt;
I would like to add a hint under ibm-acpi to enable all hotkeys at boot, but I can not seem to get the HINT template to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It outputs:&lt;br /&gt;
&lt;br /&gt;
{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&lt;br /&gt;
&lt;br /&gt;
Any ideas on how to get this to work? Also, does it even belong in the page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 23:22, 10 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use ''ibm-apci'' as a module and have  {{path|/proc}} filesystem enabled, you can tune it by&lt;br /&gt;
adding to  {{path|/etc/modules.d/ibm_acpi}}:&lt;br /&gt;
&lt;br /&gt;
     post-install ibm-acpi /bin/echo enable,0x00d0 &amp;gt; /proc/acpi/ibm/hotkey&lt;br /&gt;
I added it after ''alias ibm-acpi ibm_acpi''. I'm not sure - if the order make sence. Params can be differ - it is an example.&lt;br /&gt;
&lt;br /&gt;
Also works fine with {{cmdroot|modprobe}} (don't forget to run  {{cmdroot|modules-update}} after editing  {{path|/etc/modules.d/*}}).&lt;br /&gt;
&lt;br /&gt;
(tested on Gentoo with vanilla kernel).&lt;/div&gt;</summary>
		<author><name>Alexdu</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=26120</id>
		<title>Talk:How to get special keys to work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=26120"/>
		<updated>2006-10-31T18:40:58Z</updated>

		<summary type="html">&lt;p&gt;Alexdu: /* ibm-acpi hint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
The xmodmap step doesn't seem to work when using the &amp;quot;kdb&amp;quot; driver of xorg. Here are the changes I needed to make to my setup to get the &amp;quot;back&amp;quot; and &amp;quot;forward&amp;quot; keys to work (in diff -u format);&lt;br /&gt;
&lt;br /&gt;
 --- xkb/symbols/inet.oud        2004-12-01 08:36:04.000000000 +0100&lt;br /&gt;
 +++ xkb/symbols/inet    2005-03-08 19:59:32.587636120 +0100&lt;br /&gt;
 @@ -1875,6 +1875,16 @@&lt;br /&gt;
      key &amp;lt;I76&amp;gt;  {       [ XF86AudioLowerVolume  ]       };&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
 +// IBM ThinkPad 41 Internet Keys&lt;br /&gt;
 +&lt;br /&gt;
 +partial alphanumeric_keys&lt;br /&gt;
 +xkb_symbols &amp;quot;tp41&amp;quot; {&lt;br /&gt;
 +    name[Group1]= &amp;quot;IBM ThinkPad 41 Internet Keys&amp;quot;;&lt;br /&gt;
 +&lt;br /&gt;
 +    key &amp;lt;I69&amp;gt;  {       [ F22           ]       };&lt;br /&gt;
 +    key &amp;lt;I6A&amp;gt;  {       [ F21           ]       };&lt;br /&gt;
 +};&lt;br /&gt;
 +&lt;br /&gt;
  // Trust&lt;br /&gt;
  &lt;br /&gt;
  partial alphanumeric_keys&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.lst.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.lst  2005-03-07 20:55:21.000000000 +0100&lt;br /&gt;
 @@ -97,6 +97,7 @@&lt;br /&gt;
    sven         SVEN Ergonomic 2500&lt;br /&gt;
    symplon      Symplon PaceBook (tablet PC)&lt;br /&gt;
    toshiba_s3000        Toshiba Satellite S3000&lt;br /&gt;
 +  tp41         IBM ThinkPad 41 Internet Keys&lt;br /&gt;
    trust                Trust Wireless Keyboard Classic&lt;br /&gt;
    trustda      Trust Direct Access Keyboard&lt;br /&gt;
    yahoo                Yahoo! Internet Keyboard&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.oud  2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg      2005-03-07 20:45:59.000000000 +0100&lt;br /&gt;
 @@ -120,7 +120,7 @@&lt;br /&gt;
                qtronix \&lt;br /&gt;
                samsung4500 samsung4510 \&lt;br /&gt;
                sk1300 sk2500 sk6200 sk7100 \&lt;br /&gt;
 -              sven symplon toshiba_s3000 trust trustda yahoo&lt;br /&gt;
 +              sven symplon toshiba_s3000 tp41 trust trustda yahoo&lt;br /&gt;
 &lt;br /&gt;
  ! model         =       symbols&lt;br /&gt;
    $inetkbds     =       +inet(%m)&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.xml.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.xml  2005-03-07 20:52:35.000000000 +0100&lt;br /&gt;
 @@ -975,6 +975,13 @@&lt;br /&gt;
      &amp;lt;/model&amp;gt;&lt;br /&gt;
      &amp;lt;model&amp;gt;&lt;br /&gt;
        &amp;lt;configItem&amp;gt;&lt;br /&gt;
 +        &amp;lt;name&amp;gt;tp41&amp;lt;/name&amp;gt;&lt;br /&gt;
 +        &amp;lt;description&amp;gt;IBM Thinkpad 41 Internet Keys&amp;lt;/description&amp;gt;&lt;br /&gt;
 +        &amp;lt;description xml:lang=&amp;quot;nl&amp;quot;&amp;gt;IBM ThinkPad 41 internet toetsen&amp;lt;/description&amp;gt;&lt;br /&gt;
 +      &amp;lt;/configItem&amp;gt;&lt;br /&gt;
 +    &amp;lt;/model&amp;gt;&lt;br /&gt;
 +    &amp;lt;model&amp;gt;&lt;br /&gt;
 +      &amp;lt;configItem&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;trust&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;description&amp;gt;Trust Wireless Keyboard Classic&amp;lt;/description&amp;gt;&lt;br /&gt;
          &amp;lt;description xml:lang=&amp;quot;fr&amp;quot;&amp;gt;clavier classique Trust Wireless&amp;lt;/description&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Do not forget to add something like &amp;quot;+inet(tp41)&amp;quot; to /etc/X11/xorg.conf:&lt;br /&gt;
        (...)&lt;br /&gt;
        Option      &amp;quot;XkbLayout&amp;quot; &amp;quot;us_intl+inet(tp41)&amp;quot;&lt;br /&gt;
        (...)&lt;br /&gt;
&lt;br /&gt;
== Not T41 specific ==&lt;br /&gt;
&lt;br /&gt;
These keys are hardly T41 specific, they can also be found on the T30, T40, T42 and I'm sure several other ThinkPads in the X, R and G lineup.&lt;br /&gt;
&lt;br /&gt;
Actually, the above patches could be completed with the information of the other special keys found on some Thinkpads (which is listed in [[How_to_get_special_keys_to_work#xmodmap_configuration]]) and submitted as a request for enhancement with [http://bugs.freedesktop.org xorg's bugzilla]. However, firefox doesn't yet recognize keysyms like XF86Back, XF86Forward, so then firefox still needs to be patched manually (unless an enhancement is requested for firefox too).&lt;br /&gt;
&lt;br /&gt;
== Fake ACPI events? ==&lt;br /&gt;
&lt;br /&gt;
Not all keys generate ACPI events. Maybe it is feasible to have the ibm-acpi module check the CMOS (instead of having tpb checking /dev/nvram) and generate fake ACPI events for those keys. Even if it is feasible, that is probably way to hacky for a kernel module ... Still, it would be nice to only have to use scripts triggered by ACPI events and not both scripts for ACPI events and scripts for tpb.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file from which you can derive a table of CMOS states. You'd only have to figure the who is who of CMOS bits and write a daemon (or daemon like shell script) checking them regularly. This should be about what you suggest since tpb does the same thing with the bios ram. Of course generating ACPI events can not be done like that (or can it?), but you could trigger the ACPI action scripts directly then.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:02, 14 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It may be possible (I have a 770x, so don't have the special keys) to add the keys as real ACPI events, by altering the DSDT.  I've done this to enable ACPI events for Fn-(every labelled F key),Home,End,PgUp,PgDn on mine, and they aren't labelled with anything physically (no thinklight and physical brightness control).  The Embedded Controller  reports all events, including keys, by calling one of the _Qxx functions (you'll find a whole pile in the sourcecode for the DSDT).  If you then insert a fucntion in the same scope as the others like:-&lt;br /&gt;
 Method (_Q12, 0, NotSerialized) { \_SB.HKEY.MHKQ (0x1003) } //Fn-F3&lt;br /&gt;
when executed, ibm-acpi will then report an acpi event numbered 0x0001003.  You should find some functions, e.g. _Q1B For Fn-F12 identical to this.&lt;br /&gt;
&lt;br /&gt;
I found some IBM DSDT's had functions that made MKHQ calls for EC functions _Q63, _Q64, _Q4E, _Q4F, but did nothing on mine---maybe these are a good starting point.  Add a whole pile, and see if you get lucky! (At your own risk, of course... :/  But it should be pretty safe).&lt;br /&gt;
&lt;br /&gt;
Yes, the above sounds pretty identical to tpb, except with /proc/ibm/ecdump instead of /dev/nvram.  The above works very nicely, however there's luck involved in finding the right number, even if it exists!&lt;br /&gt;
&lt;br /&gt;
[[User:lentinj|lentinj]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fn+F6 does not seem to generate an event on t41p even if the mask is set to 0xffff and experimental=1 is passed to ibm_acpi&lt;br /&gt;
[[User:tf|tf]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bind Fn to super or hyper ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
Is it possible to bind Fn via Xmodmap to a key modifier such as hyper or super? Thanks&lt;br /&gt;
[[User:Oub|Oub]] 13:14, 6 February 2006 (CET): &lt;br /&gt;
----&lt;br /&gt;
I doubt it. The event for the {{key|Fn}} key is generated at release (as opposed to holding it where it serves it's usual special function). Hence you can't use it as a modifier. [[User:Wyrfel|Wyrfel]] 22:52, 6 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Bind Fn 12 say to F34 ==&lt;br /&gt;
Thanks Wyrfel for your reply, in order to display my question better, I use a new header: can I bind all the Fn Fx to hay F34 and the like?&lt;br /&gt;
[[User:Oub|Oub]] 21:33, 10 February 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
You can do this with all key '''combinations''' that support xmodmap (see the table). That means you can't do it with {{key|Fn}}}{{key|F12}}, because that combination doesn't generate a key event at all (it only generates an APM/ACPI event. Hence there is nothing vor xmodmap to remap.&lt;br /&gt;
&lt;br /&gt;
But what is your wider focus goal? I'm sure that what you want to do can be realized, anyway: You can write an ACPI script and event file for {{key|Fn}}{{key|F12}} and have the script start some tool that sends a F34 key to the X server. I'm sure this is possible.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 00:03, 11 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Can't bind Fn 12 ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
I  am using a R51 and I have compiled ibm-acpi monolithic in the kernel (not as module, maybe this is a mistake?). Anyway, I am using &lt;br /&gt;
suspend2, which I compiled in the kernel as well. Now I have bound &lt;br /&gt;
''to hibernate '' first to Fn 4, with the following script&lt;br /&gt;
 event=button[ /]sleep  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
This works fine. Now I want to do the same for Fn12, so following the key table I did:  &lt;br /&gt;
&lt;br /&gt;
 event=button[/] ibm/hotkey HKEY 00000080 0000100c  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
But that does not work. What is the problem? I tried even   &lt;br /&gt;
 echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey &lt;br /&gt;
without success. Can anybody help me? &lt;br /&gt;
[[User:Oub|Oub]] 16:27, 4 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
The proper event line is&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
Also, make sure that you are not using [thinkpad-acpi]. If &amp;lt;tt&amp;gt;event=button[ /]sleep&amp;lt;/tt&amp;gt; works for {{key|Fn}}{{key|F4}}, that indicates that you do. It might block the ibm-acpi driver. Check your kernel config and disable any thinkpad acpi driver except ibm-acpi.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 21:58, 4 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:Hello&lt;br /&gt;
:&lt;br /&gt;
:It is odd, I am pretty sure, that I do not use [thinkpad-acpi], but [ibm-acpi], although event=button[ /]sleep works for FnF4, in any case I found out that &lt;br /&gt;
:&lt;br /&gt;
: event=(button/power|ibm/hotkey HKEY 00000080 0000100c)&lt;br /&gt;
:&lt;br /&gt;
:Works! What do you think of adding a subsection to the [[How to get special keys to work]] page, with some examples, like the following:&lt;br /&gt;
:&lt;br /&gt;
:from ''/etc/acpi/events/battery'':&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
 action=/usr/local/sbin/hibernate&lt;br /&gt;
:from ''/etc/acpi/events/lid''&lt;br /&gt;
 event=button/lid&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:from ''/etc/acpi/events/sleepbtn''&lt;br /&gt;
 event=(button/sleep|ibm/hotkey HKEY 00000080 00001004)&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:&lt;br /&gt;
:(Also ''event=button/sleep '' works for me)&lt;br /&gt;
:and then restart acpi:&lt;br /&gt;
:&lt;br /&gt;
 /etc/init.d/acpid restart&lt;br /&gt;
:&lt;br /&gt;
:[[User:Oub|Oub]] 13:22, 5 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
What you do with&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
is to make a logical nonexclusive OR between&lt;br /&gt;
 event=button/power&lt;br /&gt;
and&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
. If the first works, the whole thing works. So that's pretty logical.&lt;br /&gt;
&lt;br /&gt;
Please, do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep thinkpad-acpi}} and do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep ibm-acpi}}. What is the output in either case?&lt;br /&gt;
&lt;br /&gt;
I see no sense in putting examples to the page that only confuse people because they are not correct. ibm-acpi generates the events listed in the table and nothing else. If you get something like &amp;lt;tt&amp;gt;button/sleep&amp;lt;/tt&amp;gt; it's not ibm-acpi generating it. You are running Debian, right? Let's hope they didn't patch the driver to generate different events.&lt;br /&gt;
&lt;br /&gt;
Also, you can always do {{cmdroot|tail -f /var/log/acpid}} to have a life view of the generated events.&lt;br /&gt;
&lt;br /&gt;
I am pretty sure that you are using thinkpad-acpi or - if not so - that something else must interfere.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
:Hi &lt;br /&gt;
:&lt;br /&gt;
:Ok I admit everything is very odd. For the start, I seem to use &lt;br /&gt;
:ibm-acpi. As I said I am Debian,  but I compiled my own kernel :(2.6.10)(but not as a module, maybe this was a bad idee??)  and I used :the ibm-acpi driver which comes shipped with that kernel. I did not :download the driver from the official http://ibm-acpi.sourceforge.net/ :site. Here is the output of &lt;br /&gt;
:&lt;br /&gt;
:dmesg | grep acpi&lt;br /&gt;
 Kernel command line: ro  root=/dev/hda6 acpi_sleep=s3_bios&lt;br /&gt;
 tbxface-0118 [02] acpi_load_tables      : ACPI Tables successfully acquired&lt;br /&gt;
 evxfevnt-0094 [03] acpi_enable           : Transition to ACPI mode successful&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [df6ddaa8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1464768]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146bba8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b628]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b3e8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b268]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146dde8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470d68]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470568]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c14719a8]&lt;br /&gt;
 ibm_acpi: IBM ThinkPad ACPI Extras v0.8&lt;br /&gt;
 ibm_acpi: http://ibm-acpi.sf.net/&lt;br /&gt;
 acpi_bus-0081 [08] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 ibm_acpi: dock device not present&lt;br /&gt;
&lt;br /&gt;
:I don't understand the errors but anyway. Now the odd thing is that indeed the following works&lt;br /&gt;
:&lt;br /&gt;
 event=button[ /]sleep&lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
:but   &lt;br /&gt;
 event=button[/]sleep  &lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
&lt;br /&gt;
:Does not work. But from what you said, using the ibm_acpi neither of '''these strings ''' should  work? So I don't understand what is going on. [[User:Oub|Oub]] 20:28, 6 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With any reasonably new kernel (2.6.16 in Thinkpad terms :-) ) and a good DSDT (say, like the one that comes inside the T43), you can get two classes of events: ACPI events (as in native ACPI events), and ibm-acpi hotkey events.&lt;br /&gt;
&lt;br /&gt;
This has nothing to do with thinkpad-acpi.&lt;br /&gt;
&lt;br /&gt;
Look under /proc/acpi/buttons.  If you have sleep and maybe hibernate/suspend in there (I don't know how fn+f12 is called when properly supported through ACPI DSDT, the T43 doesn't support it like that), then your Thinkpad can, and will generate proper ACPI events without the help of ibm-acpi.  This is valid for a complete ACPI config of kernel 2.6.16 with all modules loaded.&lt;br /&gt;
&lt;br /&gt;
And it will generate regular ibm-acpi hotkey events if you enable the feature and use the correct mask, which may or may not confuse the thinkpad (I am not sure the correct DSDT handlers the BIOS expect to run are called in this case).&lt;br /&gt;
&lt;br /&gt;
-- [[User:Hmh|hmh]] 2006-05-26 13:20 UTC&lt;br /&gt;
&lt;br /&gt;
==Turn on/off Wifi on Fn5 ==&lt;br /&gt;
Hi&lt;br /&gt;
&lt;br /&gt;
I hope this is the last question. I use a crude way to activate and deactivate my wificard: I remove and insert the relevant modules, with 2 simple scripts. Now the question is how can I bind Fn5 so, that it turns on and off the wificard? With my approach I need to fire up two scripts, and that I cannot bind to one button. Thanks &lt;br /&gt;
[[User:Oub|Oub]] 17:57, 5 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
Try a {{cmdroot|cat /proc/acpi/ibm/bluetooth}}. Maybe it returns the state. If not, the other way would be to check if the USB bluetooth controller device is listed in {{path|/proc/bus/usb}} somewhere. It shouldn't be there if bluetooth is switched off and should be there if it is on.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Split page?==&lt;br /&gt;
This page is getting too long. Maybe we should split it. I'd suggest moving the &amp;quot;Example applications&amp;quot; to a seperate page. &lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 22:46, 3 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==DIY Firefox 1.5 xpi==&lt;br /&gt;
Here's how I maneged a Firefox 1.5 compatible plugin (source: google). Note that the wiki eats some of the xml tags (so look at the source too)&lt;br /&gt;
&lt;br /&gt;
 $ ls -1R tp41.xpi&lt;br /&gt;
 tp41.xpi/:&lt;br /&gt;
 chrome&lt;br /&gt;
 chrome.manifest&lt;br /&gt;
 install.rdf&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome:&lt;br /&gt;
 content&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome/content:&lt;br /&gt;
 tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome.manifest&lt;br /&gt;
 content     tp41keys    chrome/content/&lt;br /&gt;
 overlay chrome://browser/content/browser.xul chrome://tp41keys/content/tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/install.rdf&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;RDF xmlns=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
      xmlns:em=&amp;quot;http://www.mozilla.org/2004/em-rdf#&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;Description about=&amp;quot;urn:mozilla:install-manifest&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;em:id&amp;gt;tp41keys@tp41keys.org&amp;lt;/em:id&amp;gt;&lt;br /&gt;
     &amp;lt;em:version&amp;gt;1.0&amp;lt;/em:version&amp;gt;&lt;br /&gt;
     &amp;lt;em:type&amp;gt;2&amp;lt;/em:type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Target Application this extension can install into,&lt;br /&gt;
          with minimum and maximum supported versions. --&amp;gt;&lt;br /&gt;
     &amp;lt;em:targetApplication&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;&lt;br /&gt;
         &amp;lt;em:id&amp;gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&amp;lt;/em:id&amp;gt;&lt;br /&gt;
         &amp;lt;em:minVersion&amp;gt;1.0+&amp;lt;/em:minVersion&amp;gt;&lt;br /&gt;
         &amp;lt;em:maxVersion&amp;gt;1.5.0.*&amp;lt;/em:maxVersion&amp;gt;&lt;br /&gt;
       &amp;lt;/Description&amp;gt;&lt;br /&gt;
     &amp;lt;/em:targetApplication&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Front End MetaData --&amp;gt;&lt;br /&gt;
     &amp;lt;em:name&amp;gt;IBM ThinkPad 41 Keys&amp;lt;/em:name&amp;gt;&lt;br /&gt;
     &amp;lt;em:description&amp;gt;Two Browser Navigation Keys&amp;lt;/em:description&amp;gt;&lt;br /&gt;
     &amp;lt;em:creator&amp;gt;Paul Bolle&amp;lt;/em:creator&amp;gt;&lt;br /&gt;
     &amp;lt;em:homepageURL&amp;gt;http://www.example.com/tp41keys.xpi&amp;lt;/em:homepageURL&amp;gt;&lt;br /&gt;
   &amp;lt;/Description&amp;gt;&lt;br /&gt;
 &amp;lt;/RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome/content/tp41keysOverlay.xul&lt;br /&gt;
 &amp;lt;?xml version='1.0'?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE overlay&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;overlay id='tp41keysOverlay'&lt;br /&gt;
     xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'&amp;gt;&lt;br /&gt;
 &amp;lt;!-- For Firefox --&amp;gt;&lt;br /&gt;
     &amp;lt;keyset id='mainKeyset'&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41BackKey' keycode='VK_F21' command='Browser:Back' /&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41ForwardKey' keycode='VK_F22' command='Browser:Forward' /&amp;gt;&lt;br /&gt;
     &amp;lt;/keyset&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/overlay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat .mozilla/firefox/*.default/extensions/tp41keys\@tp41keys.org &lt;br /&gt;
 ~/tp41.xpi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ibm-acpi hint==&lt;br /&gt;
&lt;br /&gt;
I would like to add a hint under ibm-acpi to enable all hotkeys at boot, but I can not seem to get the HINT template to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It outputs:&lt;br /&gt;
&lt;br /&gt;
{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&lt;br /&gt;
&lt;br /&gt;
Any ideas on how to get this to work? Also, does it even belong in the page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 23:22, 10 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use ''ibm-apci'' as a module and have  {{path|/proc}} filesystem enabled, you can tune it by&lt;br /&gt;
adding to  {{path|/etc/modules.d/ibm_acpi}}:&lt;br /&gt;
&lt;br /&gt;
     post-install ibm-acpi /bin/echo enable,0x00d0 &amp;gt; /proc/acpi/ibm/hotkey&lt;br /&gt;
I added it after ''alias ibm-acpi ibm_acpi''. I'm not sure - if it make sence. Params can be differ - it is an example.&lt;br /&gt;
&lt;br /&gt;
Also works fine with {{cmdroot|modprobe}} (don't forget to run  {{cmdroot|modules-update}} after editing  {{path|/etc/modules.d/*}}).&lt;br /&gt;
&lt;br /&gt;
(tested on Gentoo with vanilla kernel).&lt;/div&gt;</summary>
		<author><name>Alexdu</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=26119</id>
		<title>Talk:How to get special keys to work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=26119"/>
		<updated>2006-10-31T18:33:55Z</updated>

		<summary type="html">&lt;p&gt;Alexdu: /* ibm-acpi hint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
The xmodmap step doesn't seem to work when using the &amp;quot;kdb&amp;quot; driver of xorg. Here are the changes I needed to make to my setup to get the &amp;quot;back&amp;quot; and &amp;quot;forward&amp;quot; keys to work (in diff -u format);&lt;br /&gt;
&lt;br /&gt;
 --- xkb/symbols/inet.oud        2004-12-01 08:36:04.000000000 +0100&lt;br /&gt;
 +++ xkb/symbols/inet    2005-03-08 19:59:32.587636120 +0100&lt;br /&gt;
 @@ -1875,6 +1875,16 @@&lt;br /&gt;
      key &amp;lt;I76&amp;gt;  {       [ XF86AudioLowerVolume  ]       };&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
 +// IBM ThinkPad 41 Internet Keys&lt;br /&gt;
 +&lt;br /&gt;
 +partial alphanumeric_keys&lt;br /&gt;
 +xkb_symbols &amp;quot;tp41&amp;quot; {&lt;br /&gt;
 +    name[Group1]= &amp;quot;IBM ThinkPad 41 Internet Keys&amp;quot;;&lt;br /&gt;
 +&lt;br /&gt;
 +    key &amp;lt;I69&amp;gt;  {       [ F22           ]       };&lt;br /&gt;
 +    key &amp;lt;I6A&amp;gt;  {       [ F21           ]       };&lt;br /&gt;
 +};&lt;br /&gt;
 +&lt;br /&gt;
  // Trust&lt;br /&gt;
  &lt;br /&gt;
  partial alphanumeric_keys&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.lst.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.lst  2005-03-07 20:55:21.000000000 +0100&lt;br /&gt;
 @@ -97,6 +97,7 @@&lt;br /&gt;
    sven         SVEN Ergonomic 2500&lt;br /&gt;
    symplon      Symplon PaceBook (tablet PC)&lt;br /&gt;
    toshiba_s3000        Toshiba Satellite S3000&lt;br /&gt;
 +  tp41         IBM ThinkPad 41 Internet Keys&lt;br /&gt;
    trust                Trust Wireless Keyboard Classic&lt;br /&gt;
    trustda      Trust Direct Access Keyboard&lt;br /&gt;
    yahoo                Yahoo! Internet Keyboard&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.oud  2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg      2005-03-07 20:45:59.000000000 +0100&lt;br /&gt;
 @@ -120,7 +120,7 @@&lt;br /&gt;
                qtronix \&lt;br /&gt;
                samsung4500 samsung4510 \&lt;br /&gt;
                sk1300 sk2500 sk6200 sk7100 \&lt;br /&gt;
 -              sven symplon toshiba_s3000 trust trustda yahoo&lt;br /&gt;
 +              sven symplon toshiba_s3000 tp41 trust trustda yahoo&lt;br /&gt;
 &lt;br /&gt;
  ! model         =       symbols&lt;br /&gt;
    $inetkbds     =       +inet(%m)&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.xml.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.xml  2005-03-07 20:52:35.000000000 +0100&lt;br /&gt;
 @@ -975,6 +975,13 @@&lt;br /&gt;
      &amp;lt;/model&amp;gt;&lt;br /&gt;
      &amp;lt;model&amp;gt;&lt;br /&gt;
        &amp;lt;configItem&amp;gt;&lt;br /&gt;
 +        &amp;lt;name&amp;gt;tp41&amp;lt;/name&amp;gt;&lt;br /&gt;
 +        &amp;lt;description&amp;gt;IBM Thinkpad 41 Internet Keys&amp;lt;/description&amp;gt;&lt;br /&gt;
 +        &amp;lt;description xml:lang=&amp;quot;nl&amp;quot;&amp;gt;IBM ThinkPad 41 internet toetsen&amp;lt;/description&amp;gt;&lt;br /&gt;
 +      &amp;lt;/configItem&amp;gt;&lt;br /&gt;
 +    &amp;lt;/model&amp;gt;&lt;br /&gt;
 +    &amp;lt;model&amp;gt;&lt;br /&gt;
 +      &amp;lt;configItem&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;trust&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;description&amp;gt;Trust Wireless Keyboard Classic&amp;lt;/description&amp;gt;&lt;br /&gt;
          &amp;lt;description xml:lang=&amp;quot;fr&amp;quot;&amp;gt;clavier classique Trust Wireless&amp;lt;/description&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Do not forget to add something like &amp;quot;+inet(tp41)&amp;quot; to /etc/X11/xorg.conf:&lt;br /&gt;
        (...)&lt;br /&gt;
        Option      &amp;quot;XkbLayout&amp;quot; &amp;quot;us_intl+inet(tp41)&amp;quot;&lt;br /&gt;
        (...)&lt;br /&gt;
&lt;br /&gt;
== Not T41 specific ==&lt;br /&gt;
&lt;br /&gt;
These keys are hardly T41 specific, they can also be found on the T30, T40, T42 and I'm sure several other ThinkPads in the X, R and G lineup.&lt;br /&gt;
&lt;br /&gt;
Actually, the above patches could be completed with the information of the other special keys found on some Thinkpads (which is listed in [[How_to_get_special_keys_to_work#xmodmap_configuration]]) and submitted as a request for enhancement with [http://bugs.freedesktop.org xorg's bugzilla]. However, firefox doesn't yet recognize keysyms like XF86Back, XF86Forward, so then firefox still needs to be patched manually (unless an enhancement is requested for firefox too).&lt;br /&gt;
&lt;br /&gt;
== Fake ACPI events? ==&lt;br /&gt;
&lt;br /&gt;
Not all keys generate ACPI events. Maybe it is feasible to have the ibm-acpi module check the CMOS (instead of having tpb checking /dev/nvram) and generate fake ACPI events for those keys. Even if it is feasible, that is probably way to hacky for a kernel module ... Still, it would be nice to only have to use scripts triggered by ACPI events and not both scripts for ACPI events and scripts for tpb.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file from which you can derive a table of CMOS states. You'd only have to figure the who is who of CMOS bits and write a daemon (or daemon like shell script) checking them regularly. This should be about what you suggest since tpb does the same thing with the bios ram. Of course generating ACPI events can not be done like that (or can it?), but you could trigger the ACPI action scripts directly then.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:02, 14 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It may be possible (I have a 770x, so don't have the special keys) to add the keys as real ACPI events, by altering the DSDT.  I've done this to enable ACPI events for Fn-(every labelled F key),Home,End,PgUp,PgDn on mine, and they aren't labelled with anything physically (no thinklight and physical brightness control).  The Embedded Controller  reports all events, including keys, by calling one of the _Qxx functions (you'll find a whole pile in the sourcecode for the DSDT).  If you then insert a fucntion in the same scope as the others like:-&lt;br /&gt;
 Method (_Q12, 0, NotSerialized) { \_SB.HKEY.MHKQ (0x1003) } //Fn-F3&lt;br /&gt;
when executed, ibm-acpi will then report an acpi event numbered 0x0001003.  You should find some functions, e.g. _Q1B For Fn-F12 identical to this.&lt;br /&gt;
&lt;br /&gt;
I found some IBM DSDT's had functions that made MKHQ calls for EC functions _Q63, _Q64, _Q4E, _Q4F, but did nothing on mine---maybe these are a good starting point.  Add a whole pile, and see if you get lucky! (At your own risk, of course... :/  But it should be pretty safe).&lt;br /&gt;
&lt;br /&gt;
Yes, the above sounds pretty identical to tpb, except with /proc/ibm/ecdump instead of /dev/nvram.  The above works very nicely, however there's luck involved in finding the right number, even if it exists!&lt;br /&gt;
&lt;br /&gt;
[[User:lentinj|lentinj]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fn+F6 does not seem to generate an event on t41p even if the mask is set to 0xffff and experimental=1 is passed to ibm_acpi&lt;br /&gt;
[[User:tf|tf]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bind Fn to super or hyper ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
Is it possible to bind Fn via Xmodmap to a key modifier such as hyper or super? Thanks&lt;br /&gt;
[[User:Oub|Oub]] 13:14, 6 February 2006 (CET): &lt;br /&gt;
----&lt;br /&gt;
I doubt it. The event for the {{key|Fn}} key is generated at release (as opposed to holding it where it serves it's usual special function). Hence you can't use it as a modifier. [[User:Wyrfel|Wyrfel]] 22:52, 6 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Bind Fn 12 say to F34 ==&lt;br /&gt;
Thanks Wyrfel for your reply, in order to display my question better, I use a new header: can I bind all the Fn Fx to hay F34 and the like?&lt;br /&gt;
[[User:Oub|Oub]] 21:33, 10 February 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
You can do this with all key '''combinations''' that support xmodmap (see the table). That means you can't do it with {{key|Fn}}}{{key|F12}}, because that combination doesn't generate a key event at all (it only generates an APM/ACPI event. Hence there is nothing vor xmodmap to remap.&lt;br /&gt;
&lt;br /&gt;
But what is your wider focus goal? I'm sure that what you want to do can be realized, anyway: You can write an ACPI script and event file for {{key|Fn}}{{key|F12}} and have the script start some tool that sends a F34 key to the X server. I'm sure this is possible.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 00:03, 11 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Can't bind Fn 12 ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
I  am using a R51 and I have compiled ibm-acpi monolithic in the kernel (not as module, maybe this is a mistake?). Anyway, I am using &lt;br /&gt;
suspend2, which I compiled in the kernel as well. Now I have bound &lt;br /&gt;
''to hibernate '' first to Fn 4, with the following script&lt;br /&gt;
 event=button[ /]sleep  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
This works fine. Now I want to do the same for Fn12, so following the key table I did:  &lt;br /&gt;
&lt;br /&gt;
 event=button[/] ibm/hotkey HKEY 00000080 0000100c  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
But that does not work. What is the problem? I tried even   &lt;br /&gt;
 echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey &lt;br /&gt;
without success. Can anybody help me? &lt;br /&gt;
[[User:Oub|Oub]] 16:27, 4 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
The proper event line is&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
Also, make sure that you are not using [thinkpad-acpi]. If &amp;lt;tt&amp;gt;event=button[ /]sleep&amp;lt;/tt&amp;gt; works for {{key|Fn}}{{key|F4}}, that indicates that you do. It might block the ibm-acpi driver. Check your kernel config and disable any thinkpad acpi driver except ibm-acpi.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 21:58, 4 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:Hello&lt;br /&gt;
:&lt;br /&gt;
:It is odd, I am pretty sure, that I do not use [thinkpad-acpi], but [ibm-acpi], although event=button[ /]sleep works for FnF4, in any case I found out that &lt;br /&gt;
:&lt;br /&gt;
: event=(button/power|ibm/hotkey HKEY 00000080 0000100c)&lt;br /&gt;
:&lt;br /&gt;
:Works! What do you think of adding a subsection to the [[How to get special keys to work]] page, with some examples, like the following:&lt;br /&gt;
:&lt;br /&gt;
:from ''/etc/acpi/events/battery'':&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
 action=/usr/local/sbin/hibernate&lt;br /&gt;
:from ''/etc/acpi/events/lid''&lt;br /&gt;
 event=button/lid&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:from ''/etc/acpi/events/sleepbtn''&lt;br /&gt;
 event=(button/sleep|ibm/hotkey HKEY 00000080 00001004)&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:&lt;br /&gt;
:(Also ''event=button/sleep '' works for me)&lt;br /&gt;
:and then restart acpi:&lt;br /&gt;
:&lt;br /&gt;
 /etc/init.d/acpid restart&lt;br /&gt;
:&lt;br /&gt;
:[[User:Oub|Oub]] 13:22, 5 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
What you do with&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
is to make a logical nonexclusive OR between&lt;br /&gt;
 event=button/power&lt;br /&gt;
and&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
. If the first works, the whole thing works. So that's pretty logical.&lt;br /&gt;
&lt;br /&gt;
Please, do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep thinkpad-acpi}} and do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep ibm-acpi}}. What is the output in either case?&lt;br /&gt;
&lt;br /&gt;
I see no sense in putting examples to the page that only confuse people because they are not correct. ibm-acpi generates the events listed in the table and nothing else. If you get something like &amp;lt;tt&amp;gt;button/sleep&amp;lt;/tt&amp;gt; it's not ibm-acpi generating it. You are running Debian, right? Let's hope they didn't patch the driver to generate different events.&lt;br /&gt;
&lt;br /&gt;
Also, you can always do {{cmdroot|tail -f /var/log/acpid}} to have a life view of the generated events.&lt;br /&gt;
&lt;br /&gt;
I am pretty sure that you are using thinkpad-acpi or - if not so - that something else must interfere.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
:Hi &lt;br /&gt;
:&lt;br /&gt;
:Ok I admit everything is very odd. For the start, I seem to use &lt;br /&gt;
:ibm-acpi. As I said I am Debian,  but I compiled my own kernel :(2.6.10)(but not as a module, maybe this was a bad idee??)  and I used :the ibm-acpi driver which comes shipped with that kernel. I did not :download the driver from the official http://ibm-acpi.sourceforge.net/ :site. Here is the output of &lt;br /&gt;
:&lt;br /&gt;
:dmesg | grep acpi&lt;br /&gt;
 Kernel command line: ro  root=/dev/hda6 acpi_sleep=s3_bios&lt;br /&gt;
 tbxface-0118 [02] acpi_load_tables      : ACPI Tables successfully acquired&lt;br /&gt;
 evxfevnt-0094 [03] acpi_enable           : Transition to ACPI mode successful&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [df6ddaa8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1464768]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146bba8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b628]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b3e8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b268]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146dde8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470d68]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470568]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c14719a8]&lt;br /&gt;
 ibm_acpi: IBM ThinkPad ACPI Extras v0.8&lt;br /&gt;
 ibm_acpi: http://ibm-acpi.sf.net/&lt;br /&gt;
 acpi_bus-0081 [08] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 ibm_acpi: dock device not present&lt;br /&gt;
&lt;br /&gt;
:I don't understand the errors but anyway. Now the odd thing is that indeed the following works&lt;br /&gt;
:&lt;br /&gt;
 event=button[ /]sleep&lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
:but   &lt;br /&gt;
 event=button[/]sleep  &lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
&lt;br /&gt;
:Does not work. But from what you said, using the ibm_acpi neither of '''these strings ''' should  work? So I don't understand what is going on. [[User:Oub|Oub]] 20:28, 6 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With any reasonably new kernel (2.6.16 in Thinkpad terms :-) ) and a good DSDT (say, like the one that comes inside the T43), you can get two classes of events: ACPI events (as in native ACPI events), and ibm-acpi hotkey events.&lt;br /&gt;
&lt;br /&gt;
This has nothing to do with thinkpad-acpi.&lt;br /&gt;
&lt;br /&gt;
Look under /proc/acpi/buttons.  If you have sleep and maybe hibernate/suspend in there (I don't know how fn+f12 is called when properly supported through ACPI DSDT, the T43 doesn't support it like that), then your Thinkpad can, and will generate proper ACPI events without the help of ibm-acpi.  This is valid for a complete ACPI config of kernel 2.6.16 with all modules loaded.&lt;br /&gt;
&lt;br /&gt;
And it will generate regular ibm-acpi hotkey events if you enable the feature and use the correct mask, which may or may not confuse the thinkpad (I am not sure the correct DSDT handlers the BIOS expect to run are called in this case).&lt;br /&gt;
&lt;br /&gt;
-- [[User:Hmh|hmh]] 2006-05-26 13:20 UTC&lt;br /&gt;
&lt;br /&gt;
==Turn on/off Wifi on Fn5 ==&lt;br /&gt;
Hi&lt;br /&gt;
&lt;br /&gt;
I hope this is the last question. I use a crude way to activate and deactivate my wificard: I remove and insert the relevant modules, with 2 simple scripts. Now the question is how can I bind Fn5 so, that it turns on and off the wificard? With my approach I need to fire up two scripts, and that I cannot bind to one button. Thanks &lt;br /&gt;
[[User:Oub|Oub]] 17:57, 5 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
Try a {{cmdroot|cat /proc/acpi/ibm/bluetooth}}. Maybe it returns the state. If not, the other way would be to check if the USB bluetooth controller device is listed in {{path|/proc/bus/usb}} somewhere. It shouldn't be there if bluetooth is switched off and should be there if it is on.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Split page?==&lt;br /&gt;
This page is getting too long. Maybe we should split it. I'd suggest moving the &amp;quot;Example applications&amp;quot; to a seperate page. &lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 22:46, 3 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==DIY Firefox 1.5 xpi==&lt;br /&gt;
Here's how I maneged a Firefox 1.5 compatible plugin (source: google). Note that the wiki eats some of the xml tags (so look at the source too)&lt;br /&gt;
&lt;br /&gt;
 $ ls -1R tp41.xpi&lt;br /&gt;
 tp41.xpi/:&lt;br /&gt;
 chrome&lt;br /&gt;
 chrome.manifest&lt;br /&gt;
 install.rdf&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome:&lt;br /&gt;
 content&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome/content:&lt;br /&gt;
 tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome.manifest&lt;br /&gt;
 content     tp41keys    chrome/content/&lt;br /&gt;
 overlay chrome://browser/content/browser.xul chrome://tp41keys/content/tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/install.rdf&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;RDF xmlns=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
      xmlns:em=&amp;quot;http://www.mozilla.org/2004/em-rdf#&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;Description about=&amp;quot;urn:mozilla:install-manifest&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;em:id&amp;gt;tp41keys@tp41keys.org&amp;lt;/em:id&amp;gt;&lt;br /&gt;
     &amp;lt;em:version&amp;gt;1.0&amp;lt;/em:version&amp;gt;&lt;br /&gt;
     &amp;lt;em:type&amp;gt;2&amp;lt;/em:type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Target Application this extension can install into,&lt;br /&gt;
          with minimum and maximum supported versions. --&amp;gt;&lt;br /&gt;
     &amp;lt;em:targetApplication&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;&lt;br /&gt;
         &amp;lt;em:id&amp;gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&amp;lt;/em:id&amp;gt;&lt;br /&gt;
         &amp;lt;em:minVersion&amp;gt;1.0+&amp;lt;/em:minVersion&amp;gt;&lt;br /&gt;
         &amp;lt;em:maxVersion&amp;gt;1.5.0.*&amp;lt;/em:maxVersion&amp;gt;&lt;br /&gt;
       &amp;lt;/Description&amp;gt;&lt;br /&gt;
     &amp;lt;/em:targetApplication&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Front End MetaData --&amp;gt;&lt;br /&gt;
     &amp;lt;em:name&amp;gt;IBM ThinkPad 41 Keys&amp;lt;/em:name&amp;gt;&lt;br /&gt;
     &amp;lt;em:description&amp;gt;Two Browser Navigation Keys&amp;lt;/em:description&amp;gt;&lt;br /&gt;
     &amp;lt;em:creator&amp;gt;Paul Bolle&amp;lt;/em:creator&amp;gt;&lt;br /&gt;
     &amp;lt;em:homepageURL&amp;gt;http://www.example.com/tp41keys.xpi&amp;lt;/em:homepageURL&amp;gt;&lt;br /&gt;
   &amp;lt;/Description&amp;gt;&lt;br /&gt;
 &amp;lt;/RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome/content/tp41keysOverlay.xul&lt;br /&gt;
 &amp;lt;?xml version='1.0'?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE overlay&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;overlay id='tp41keysOverlay'&lt;br /&gt;
     xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'&amp;gt;&lt;br /&gt;
 &amp;lt;!-- For Firefox --&amp;gt;&lt;br /&gt;
     &amp;lt;keyset id='mainKeyset'&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41BackKey' keycode='VK_F21' command='Browser:Back' /&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41ForwardKey' keycode='VK_F22' command='Browser:Forward' /&amp;gt;&lt;br /&gt;
     &amp;lt;/keyset&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/overlay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat .mozilla/firefox/*.default/extensions/tp41keys\@tp41keys.org &lt;br /&gt;
 ~/tp41.xpi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ibm-acpi hint==&lt;br /&gt;
&lt;br /&gt;
I would like to add a hint under ibm-acpi to enable all hotkeys at boot, but I can not seem to get the HINT template to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It outputs:&lt;br /&gt;
&lt;br /&gt;
{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&lt;br /&gt;
&lt;br /&gt;
Any ideas on how to get this to work? Also, does it even belong in the page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 23:22, 10 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
If you use ''ibm-apci'' as a module and have ''/proc'' filesystem enabled, you can tune it by&lt;br /&gt;
adding to ''/etc/modules.d/ibm_acpi'':&lt;br /&gt;
&lt;br /&gt;
     post-install ibm-acpi /bin/echo enable,0x00d0 &amp;gt; /proc/acpi/ibm/hotkey&lt;br /&gt;
I added it after ''alias ibm-acpi ibm_acpi''. I'm not sure - if it make sence. Params can be differ - it is an example.&lt;br /&gt;
&lt;br /&gt;
Also works fine with ''modprobe'' (don't forget to run ''modules-update'' after editing ''/etc/modules.d/*'').&lt;br /&gt;
&lt;br /&gt;
(tested on Gentoo with vanilla kernel)&lt;/div&gt;</summary>
		<author><name>Alexdu</name></author>
		
	</entry>
</feed>