Package: console-tools
Version: 1:0.2.3dbs-56
Followup-For: Bug #312844
I'm having exactly the same problem while attempting to build a kernel
for the psion 5mx (http://linux-7110.sourceforge.net/)
This contains a number of special keycodes for controlling things like
backlight, contrast, power off etc.
The codes are thing like:
altgr keycode 61 = 0xf03 # Backlight
loadkeys --mktable keymap_psion_us.map >keymap_psion_us.c
For console-tools_0.2.3-23.3 this build the map file correctly.
For console-tools_0.2.3dbs-56 this replaces all the 0xff0? values with
0xf020
- 0xf200, 0xf117, 0xf114, 0xf200, 0xf118, 0xff03, 0xf10d, 0xfc00,
+ 0xf200, 0xf117, 0xf114, 0xf200, 0xf118, 0xf020, 0xf10d, 0xfc00,
And console-tools_0.2.3dbs-60 has the same problem except that it
additionally requires you to run this as root otherwise you get:
$ ./console-tools_0.2.3dbs-60/bin/loadkeys --mktable keymap_psion_us.map
Couldnt get a file descriptor referring to the console
KDGKBMODE: Bad file descriptor
loadkeys: error reading keyboard mode
$
The following patch to the function add_number fixes this issue (but may
cause other problems)
--- ksyms.c.orig 2006-04-01 09:32:27.000000000 +0100
+++ ksyms.c 2006-04-01 10:02:15.000000000 +0100
@@ -1826,7 +1826,7 @@
}
if (kbd_mode != K_UNICODE && KTYP(code) < syms_size)
return code;
- return ksymtocode(codetoksym(code));
+ return code;
}
int
The cause here is that the 0xf03 in the map file is being converted into
a symbol and then back into the code. And it therefore rejected if there
is no mapping for this character.
I also don't understand why there are all the:
ioctl(fd, KDGKBMODE, &kbd_mode);
when we are running with --mktable. AFAICT we shouldn't even be touching
the console (nor require running as root).
I think this is probably the underlying cause although I'm not
completely clear how this should be fixed. I think that if we are
running with --mktable we should not be looking at the console at all
but maybe need to consider whether -u was on the commandline?
(When I'm building the psion-5mx kernel I'm doing a cross compile. So
not only is loadkeys looking at the console on the wrong machine, it's
the wrong architecture and hardware as well)
Tim.
-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.4.27-3-686
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1)
Versions of packages console-tools depends on:
ii console-common 0.7.49 Basic infrastructure for text cons
ii debconf 1.4.30.13 Debian configuration management sy
ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries an
ii libconsole 1:0.2.3dbs-56 Shared libraries for Linux console
ii sysvinit 2.86.ds1-1 System-V like init
-- no debconf information
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]