Re: keymap set after file system decryption

From: Claude Buisson <clbuisson_at_orange.fr>
Date: Thu, 17 Dec 2015 12:51:52 +0100
On 12/17/2015 12:21, Trond Endrestøl wrote:
> On Thu, 17 Dec 2015 11:56+0100, Trond Endrestøl wrote:
>
>> On Wed, 16 Dec 2015 16:34-0800, Kevin Oberman wrote:
>>
>>> On Wed, Dec 16, 2015 at 7:34 AM, Carsten Kunze <carsten.kunze_at_arcor.de>
>>> wrote:
>>>
>>>> Trond Endrestøl <Trond.Endrestol_at_fagskolen.gjovik.no> wrote:
>>>>
>>>>> I guess we who live outside the US should take into account that PCs
>>>>> are initialised by firmware to the US keyboard layout and the 437 code
>>>>> page, courtesy of IBM, 1981.
>>>>
>>>> In 1981 I had accepted this.  Now it's simply a bug and I wonder it has
>>>> not been fixed in 22 years.  I'll file a bug report.
>>>>
>>>>> I'm not sure if the creators of (U)EFI has considered other keyboard
>>>>> layouts and/or code pages at boot time.
>>>>
>>>> I don't care for the BIOS here, the OS has to take care of it.  It may be
>>>> ok that at the boot prompt only US keymap is set.  But when the rc scripts
>>>> are running the keymap must be set correctly (as one of the first actions).
>>>>
>>>>> A bad workaround is to copy the suitable keymap from /usr/share... to
>>>>> /etc, along with /usr/sbin/kbdcontrol, and add a suitable line to one
>>>>> or either of /etc/rc.d/geli{,2}, e.g.:
>>>>>
>>>>> /etc/kbdcontrol -l /etc/german.iso.kbd
>>>>>
>>>>> kbdcontrol is linked only to libc:
>>>>>
>>>>> $ ldd `which kbdcontrol`
>>>>> /usr/sbin/kbdcontrol:
>>>>>          libc.so.7 => /lib/libc.so.7 (0x800827000)
>>>>
>>>> In my case it's simpler since I have /usr in /, but as you descripted
>>>> kbdcontrol must be in /sbin and the maps in /etc in the future.
>>>>
>>>> Carsten
>>>>
>>>
>>> You can specify your default keymap in your kernel config file.
>>> ATKBD_DFLT_KEYBD. It's possible that you might be able to set it in
>>> /boot/loader.conf, as well, but I'm not too sure of this. See atkbd(4).
>>
>> I can confirm that neither ATKBD_DFLT_KEYMAP nor UKBD_DFLT_KEYMAP, nor
>> SC_DFLT_FONT for that matter, works as intended.
>>
>> I have never had any success with:
>>
>> options		SC_DFLT_FONT
>> makeoptions	SC_DFLT_FONT=iso
>>
>> options		UKBD_DFLT_KEYMAP
>> makeoptions	UKBD_DFLT_KEYMAP=norwegian.iso
>>
>> options		ATKBD_DFLT_KEYMAP
>> makeoptions	ATKBD_DFLT_KEYMAP=norwegian.iso
>>
>> Please prove me wrong.
>
> A recent run in stable/10 using r292334, resulted in:
>
> --- ukbd.o ---
> cc  -c -O2 -pipe -fno-strict-aliasing  -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option  -Wno-error-tautological-compare -Wno-error-empty-body  -Wno-error-parentheses-equality -Wno-error-unused-function   -nostdinc  -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -gdwarf-2   /usr/src/sys/dev/usb/input/ukbd.c
> /usr/src/sys/dev/usb/input/ukbd.c:1216:18: error: use of undeclared identifier 'key_map'
>          sc->sc_keymap = key_map;
>                          ^
> /usr/src/sys/dev/usb/input/ukbd.c:1217:18: error: use of undeclared identifier 'accent_map'
>          sc->sc_accmap = accent_map;
>                          ^
>

If your system is configured with VT and not syscons, there exists no
such thing as norwegian.iso(.kbd), but you must use no(.kbd).
See /usr/share/vt/keymaps/INDEX.keymaps.

Furthermore, with VT, there is a chance that the system is configuerd
with kbdmux, which makes things more complicated. There exist patches in
bugzilla adding support of keyboard definitions to kbdmux.

Claude Buisson
Received on Thu Dec 17 2015 - 10:59:35 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC