>Number:         153459
>Category:       kern
>Synopsis:       [kbdmux][patch] add option to specify built-in keymap
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Dec 27 00:20:08 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Anonymous
>Release:        FreeBSD 9.0-CURRENT amd64
>Organization:
>Environment:
- single user mode
- a user unable to use anything but his custom dvorak keymap
- the code/comments are borrowed from atkbd/ukbd
>Description:
A user has to rely on kbdmux(4) for
- ddb(4)
- newcons(4)
- sysutils/uhidd, cc_attach

So, provide a way similar to (ATKBD|SUNKBD|UKBD)_DFLT_KEYMAP to specify
default keymap(5) for kbdmux(4) to reduce pain when switching drivers.
>How-To-Repeat:
>Fix:
--- a.diff begins here ---
Index: sys/conf/files
===================================================================
--- sys/conf/files      (revision 216710)
+++ sys/conf/files      (working copy)
@@ -107,6 +107,10 @@
        compile-with    "${AWK} -f $S/teken/gensequences $S/teken/sequences > 
teken_state.h" \
        no-obj no-implicit-rule before-depend                              \
        clean           "teken_state.h"
+kbdmuxmap.h                    optional        kbdmux_dflt_keymap      \
+       compile-with    "/usr/sbin/kbdcontrol -L ${KBDMUX_DFLT_KEYMAP} | sed -e 
's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static 
accentmap_t.* = /static accentmap_t accent_map = /' > kbdmuxmap.h"              
    \
+       no-obj no-implicit-rule before-depend                           \
+       clean           "kbdmuxmap.h"
 usbdevs.h                      optional usb                               \
        dependency      "$S/tools/usbdevs2h.awk $S/dev/usb/usbdevs" \
        compile-with    "${AWK} -f $S/tools/usbdevs2h.awk $S/dev/usb/usbdevs 
-h" \
Index: sys/conf/options
===================================================================
--- sys/conf/options    (revision 216710)
+++ sys/conf/options    (working copy)
@@ -754,6 +757,8 @@
 KBD_MAXWAIT            opt_kbd.h
 KBD_RESETDELAY         opt_kbd.h
 KBDIO_DEBUG            opt_kbd.h
+
+KBDMUX_DFLT_KEYMAP     opt_kbdmux.h
 
 # options for the Atheros driver
 ATH_DEBUG              opt_ath.h
Index: sys/dev/kbdmux/kbdmux.c
===================================================================
--- sys/dev/kbdmux/kbdmux.c     (revision 216710)
+++ sys/dev/kbdmux/kbdmux.c     (working copy)
@@ -33,6 +33,7 @@
 
 #include "opt_compat.h"
 #include "opt_kbd.h"
+#include "opt_kbdmux.h"
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -54,6 +55,14 @@
 #include <sys/taskqueue.h>
 #include <sys/uio.h>
 #include <dev/kbd/kbdreg.h>
+
+/* the initial key map, accent map and fkey strings */
+#ifdef KBDMUX_DFLT_KEYMAP
+#define KBD_DFLT_KEYMAP
+#include "kbdmuxmap.h"
+#endif
+
+/* the following file must be included after "kbdmuxmap.h" */
 #include <dev/kbd/kbdtables.h>
 
 #define KEYBOARD_NAME  "kbdmux"
Index: sys/modules/kbdmux/Makefile
===================================================================
--- sys/modules/kbdmux/Makefile (revision 216710)
+++ sys/modules/kbdmux/Makefile (working copy)
@@ -4,7 +4,7 @@
 .PATH: ${.CURDIR}/../../dev/kbdmux
 
 KMOD=  kbdmux
-SRCS=  kbdmux.c opt_compat.h opt_kbd.h bus_if.h device_if.h
+SRCS=  kbdmux.c opt_compat.h opt_kbd.h opt_kbdmux.h bus_if.h device_if.h
 
 .if !defined(KERNBUILDDIR)
 opt_compat.h:
Index: sys/conf/NOTES
===================================================================
--- sys/conf/NOTES      (revision 216710)
+++ sys/conf/NOTES      (working copy)
@@ -1373,6 +1373,10 @@
 options        KBD_DISABLE_KEYMAP_LOAD # refuse to load a keymap
 options        KBD_INSTALL_CDEV        # install a CDEV entry in /dev
 
+device         kbdmux                  # keyboard multiplexer
+options        KBDMUX_DFLT_KEYMAP      # specify the built-in keymap
+makeoptions    KBDMUX_DFLT_KEYMAP=it.iso
+
 options        FB_DEBUG                # Frame buffer debugging
 
 device         splash                  # Splash screen and screen saver support
--- a.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to