bug#35583: Setting a GRUB keyboard-layout breaks GRUB… and Linux‽

2019-05-06 Thread Ludovic Courtès
Hi Tobias,

Tobias Geerinckx-Rice  skribis:

> However, today I tried to (re-)add it to GRUB, too, and ended up
> writing the following comment:
>
> (bootloader
>  (bootloader-configuration
>   (bootloader grub-efi-bootloader)
>   ;; XXX Strange bug: GRUB can read the LUKS passphrase, but
> afterwards (at
>   ;; the menu screen) no longer responds to key presses.  Even
> stranger: it
>   ;; makes my X230T's backspace key send ‘XF86ScreenSaver’s even on
> Linux.
>   ;; (keyboard-layout keyboard-layout)
>   (target "/boot/efi")
>   (timeout 1
>
> This is 100% reproducible.

Even in ‘guix system vm --full-boot’, right?

It could be that the XKB → GRUB conversion fails.  You can see
conversion process in (gnu bootloader grub).  In that case, that would
be a ‘grub-mklayout’ or a ‘ckbcomp’ bug.

I’ve only tested this stuff with standard keyboard layouts with one or
two options at most, so it may be that you’re pushing it to its limits.

I’m surprised what GRUB does has an impact on what Linux does
afterwards, though.

Thanks,
Ludo’.





bug#35583: Setting a GRUB keyboard-layout breaks GRUB… and Linux‽

2019-05-05 Thread Tobias Geerinckx-Rice

Guix,

Some (=none) of you might remember my X keyboard woes on #guix, 
where I was stuck without a backspace key or the key below it (\, 
|) on my ThinkPad X230T's US keyboard.  Both sent out 
‘XF86ScreenSaver’ codes instead.


I tried dozens of things, both in my system configuration and by 
running random stateful xkb commands (naughty), and managed to 
‘fix’ the bug without ever finding the cause (very naughty).


I think I was looking for it in all the wrong places.  Something 
goes wrong before the kernel even boots.  Here's my 
keyboard-layout:


(keyboard-layout
 (keyboard-layout
  "us" "dvp"   ; 
  kaufmann.no/roland/dvorak
  #:model "thinkpad"   ; pc104, pc105, thinkpad, 
  …
  #:options; list of XKB Option 
  strings
  (list "" ; unset all inherited 
  options
"caps:shiftlock"   ; Shift Lock affects all 
keys

"shift:breaks_caps"; Shift cancels Caps Lock
"compose:102"  ; next to left Shift on 
pc105

"lv3:ralt_switch"  ; key to choose 3rd level
"nbsp:level3n" ; nbsp @lv3, thin nbsp 
@lv4
"numpad:shift3"; Num Lock: Shift chooses 
lv3

"kpdl:semi"; key pad semicolon @lv3
"misc:typo"; add extra typographic 
chars

"ctrl:swapcaps"; onwards for great Emacs
"terminate:ctrl_alt_bksp")))   ; zap X just to watch it 
die


Here's what works just fine:

  (service slim-service-type
   (slim-configuration
(xorg-configuration
 (xorg-configuration
  (keyboard-layout keyboard-layout)
  …

However, today I tried to (re-)add it to GRUB, too, and ended up 
writing the following comment:


(bootloader
 (bootloader-configuration
  (bootloader grub-efi-bootloader)
  ;; XXX Strange bug: GRUB can read the LUKS passphrase, but 
  afterwards (at
  ;; the menu screen) no longer responds to key presses.  Even 
  stranger: it
  ;; makes my X230T's backspace key send ‘XF86ScreenSaver’s even 
  on Linux.

  ;; (keyboard-layout keyboard-layout)
  (target "/boot/efi")
  (timeout 1

This is 100% reproducible.

I'll try to narrow it down a bit, but the combination of losing my 
actual work-workstation (which is also my funstation) while 
entering my passphrase 5 times, every time, makes that an 
unpleasant and tedious affair.


Kind regards,

T G-R


signature.asc
Description: PGP signature