[iPAQ] Ann: kbdd, serial keyboard alternate "driver"

From: Nils Faerber <nils.faerber_at_kernelconcepts.de>
Date: Sat, 24 Apr 2004 18:32:31 +0200

Hi!
For the last few weeks I experimented with serial keyboards. I found
that the current solution using specialised kernel drivers is quite
unsatisfactory.

The kernel drivers are IMHO inconvenient to accomodate for changes and
difficult to use. I also do not see any real need for kernel drivers
since we already have a good serial driver; at least for most serial
keyboards.
So I tried a userspace only approach.

My current result can be found here:

        http://www.handhelds.org/~nils/kbdd-0.01.tar.bz2

This is far from complete and still needs a lot of work. But following
an old open source tradition to release early, here we go ;)

Theory of operation:
The BlueZ people had a quite similar problem to support keyboards while
implementing Bluetooth HID support. They had the additional problem that
they needed a userspace process to translate between the Bluetooth HID
and Linux input HID.
So they created a quite clean approach, the uinput, i.e. user space
input, device.
Using uinput a userspace process can register and feed an arbitrary
input device, i.e. anything that the Linux input system supports.

kbdd uses this interface and registers a keyboard device, reads the
serial protocol from a serial keyboard, translates the result into
keyboard events and sends them to uinput.

This approach will thus not only work for X11 but also for raw console
and even Qt/embedded - just like the kernel drivers do/did.

Requirements:
You have to have the uinput kernel driver installed and ready for
operation! Along with uinput you will need the input core modules as
well as the keybdev module.
I have added the uinput driver to the hh.org kernel CVS tree some time
ago but I think it is not yet compiled by default.

Todo:
Currently there are just two keyboard types supported, the Compaq/HP
foldadable keyboard and the Snap'n'Type keyboard. Support for more types
can be added quite easily.
One major problem I currently cannot solve are keytables!
This is really driving me crazy and also one reason to publish this work
now: Could someone please help me fixing those tables!?

What happens now is that the english keyboard mapping works quite
perfectly. This is the default kernel keytable and also the default
X-server mapping. But I have German keyboards. With some configurations
I can at least get the Umlauts to work but up to now failed all the time
getting AltGR to work properly!

So here we are ;)
I wish much fun testing it, any feedback is absolutely welcome and if
someone comes up with a solution to this ugly table/mapping problem
PLEASE contact me!

CU
  nils faerber

-- 
kernel concepts          Tel: +49-271-771091-12
Dreisbachstr. 24         Fax: +49-271-771091-19
D-57250 Netphen          Mob: +49-176-21024535
--
Received on Sat Apr 24 2004 - 16:32:35 EDT

This archive was generated by hypermail 2.2.0 : Mon Jul 25 2005 - 18:33:25 EDT