Linux on the Acer TravelMate C100
A quick Google turns up the following, which cover Linux installation
in detail...
Hardbuttons
2003-11-11
The Acer
Hotkey driver supports the C1xx series since around 0.5.0pre4,
and supports the hotkeys above the keyboard, and lets you turn the mail
light and wireless on and off.
Can't find anything for the tablet PC buttons. We'll have to
do something about that...
Automagically configuring for fixed or
wireless ethernet
2004-01-24
on Debian, the following can be used in /etc/networks/intefaces
# determine how to configure eth0 based on it's MAC address
auto eth0
mapping eth0
script /usr/share/doc/ifupdown/examples/get-mac-address.sh
map xx:xx:xx:xx:xx:xx wireless
map xx:xx:xx:xx:xx:xx fixed
# Fixed ethernet
iface fixed inet dhcp
# Wireless ethernet
iface wireless inet dhcp
pre-up /sbin/iwconfig eth0 essid XXXX key xxxxxxxxxx
On my installation get-mac-address.sh
needed to be chmod +x, possibly you want to copy it somewhere else
An input driver for the tablet buttons
2004-02-17
There a couple of references on the internet which describe these buttons as 'ACPI devices'
Looking at the DSDT with the iasl-linux-20030918 AML disassembler, I find:
Device (BTNS)
{
Name (_HID, "MSTabletPCButtons")
...
This just has methods for hardware resource configuration and enable/disable (_PRS, _SRS, _CRS, _INI, _DIS, _STA),
and nothing for actually dealing with the button state
Fortunately, the actual hardware is apparently trivial to reverse-engineer, the tablet buttons are read via an 8-bit latch,
(repeated across the whole range the device decodes), with an interrupt generated when the state changes
| bit |
key (0=pressed, 1=released) |
|
|
| 7 |
unused |
| 6 |
unused |
| 5 |
unused |
| 4 |
down |
| 3 |
key |
| 2 |
Fn |
| 1 |
up |
| 0 |
circle dot/circle cross |
So, improvising from the 8250_acpi driver and the existing input drivers, this patch (which applies to all 2.6.x kernels so far), adds an input driver for the tablet buttons
Using xev or the evbug module, you can see the key events generated when this module is loaded
These are described as 'Wistron Tablet PC Buttons' by the Windows driver, so it's possible they may turn up
on other manufacturers tablet PCs...
Curosities: We report I/O port base 0x450, whereas the AML seems to indicate the device only supports I/O port base 0x9450
Doing something useful with the input driver for the tablet buttons
2004-02-22
See if we can use hotkeys to make the tablet buttons do what they do for Windows
For reasons probably known only to XKB, the arbitary keycodes I've put in the input driver (227...231) appear as keycodes (214...218)
- A hotkeys definition file /usr/share/hotkeys/acertabletpc.def which does something with these keycodes
Start hotkeys -t acertabletpc.def --osd=off
[I needed the --osd=off or my X server just crashed. Charming.]
- Since I found the quoting in XML too hard, this just uses the shell script /usr/local/bin/tablet-buttons to do the actual work
- Which in turn uses xreplay to synthesize keypresses
To investigate:
What about lineakd?
Does xreplay need to be compiled with XK_MISCELLANY defined to enable it to generate control keys?
This is far too complex and fragile. There must be a better way?
using xreplay is not ideal, and X-specific. Can we synthesize keypress events in input layer?
ACPI always disabled in 2.6.2 and later
2004-02-22
A change in kernels 2.6.2 and later interacts with the BIOS ACPI tables (at least with the BIOS in my C100),
and causes ACPI to disable itself. This is (unsurprisingly) kind of critical to the correct functioning of the tablet buttons driver
This email describes the problem in more detail
Pending someone who knows what their doing fixing it, the following reverses the critical part of the change
--- linux/arch/i386/kernel/acpi/boot.c.orig 2004-02-22 21:34:26.000000000 +0000
+++ linux/arch/i386/kernel/acpi/boot.c 2004-02-22 21:34:41.000000000 +0000
@@ -424,7 +424,6 @@
*/
result = acpi_table_init();
if (result) {
- acpi_disabled = 1;
return result;
}