[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Omnibook XE3 multimedia/onetouch keys revealed!



Well, 
after several hours of debugging/testing/experimenting I found what HP
could not tell straightforward. To enable the scancodes for the extra
keys one should write 0x59 to port 0x64 (kbd command register) and then
0x90 to port 0x60 (kbd command parameter register). For those who are
curious I debugged keyboard.exe which is part of the diagnostic tool
that you get when you press F10 on power up. The file is in the
hibernation partition which has a small FAT part in the beginning. 
All extra keys except volume up/down work (I'll try different values to
port 60 to get them working too). I've attached a kernel patch (2.4.x)
and key definitions for hotkeys (a program to get the newly working keys
doing nice things). You also need to add to your kernel parameters
"kbd-reset" because I've put the activation code in a keyboard reset
function which is not invoked by default on x86 (counting that BIOS has
already initialised the keyboard). 

PS: Could anyone with a non-XE3 Omnibook test this too, and tell me
whether it works. 

Pavel
--- pc_keyb.c.org	Sat Feb 23 01:06:54 2002
+++ pc_keyb.c	Sat Feb 23 01:08:40 2002
@@ -879,6 +879,10 @@
 		kbd_wait_for_input();
 	}
 
+	printk("HP Omnibook multimedia keys enabled.\n");
+	kbd_write_command_w(0x59);
+	kbd_write_output_w(0x90);
+
 	if (kbd_write_output_w_and_wait(KBD_CMD_ENABLE) != KBD_REPLY_ACK)
 		return "Enable keyboard: no ACK";
 
<?xml version="1.0"?>
<CONFIG model="HP Omnibook XE3">

  <PrevTrack    keycode="144"/>
  <Play         keycode="162"/>
  <Stop         keycode="164"/>
  <NextTrack    keycode="153"/>

  <VolUp        keycode="241" adj="5"/>
  <VolDown      keycode="242" adj="5"/>

  <WebBrowser   keycode="243"/>
  <Email        keycode="244"/>

</CONFIG>

Reply to: