** Description changed:

+ (kbd)
+ [Impact]
+ 
+  * kbd_mode -u is documented to break keyboards in modes other than xlate and 
unicode, while it is still called by some scripts. Those scripts are called 
transitively by maintainer scripts such as the one already fixed in 
console-setup. 
+  * To avoid accidentally breaking keyboards a -f option is added to force 
such breaking mode changes. Without -f only the safe mode changes are performed 
and an error is printed when the requested mode change is not safe. Next 
upstream version will also exit with error, but the cherry-picked fix makes 
kbd_mode return success even when the mode switch is not performed to avoid 
regressions of scripts.
+ 
+ [Test case]
+ 
+  * Verify that safe mode switches work and dangerous ones are skipped
+ without -f. Please note that the test will temporarily break the
+ system's keyboard and it is recommended to run the test in a VM.
+ 
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -C /dev/tty4; echo $?
+ The keyboard is in Unicode (UTF-8) mode
+ 0
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -a -C /dev/tty4; echo $?
+ 0
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -a -C /dev/tty4; echo $?
+ 0
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -C /dev/tty4
+ The keyboard is in xlate (8-bit) mode
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -u -C /dev/tty4; echo $?
+ 0
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -C /dev/tty4
+ The keyboard is in Unicode (UTF-8) mode
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -u -C /dev/tty0; echo $?
+ The keyboard is in some unknown mode
+ Changing to the requested mode may make your keyboard unusable, please use -f 
to force the change.
+ 0
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -f -u -C /dev/tty0; echo $?
+ 0
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -C /dev/tty0
+ The keyboard is in Unicode (UTF-8) mode
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -s -C /dev/tty0
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -C /dev/tty0
+ The keyboard is in raw (scancode) mode
+ rbalint@MacBookAir-test:~$ sudo kbd_mode -u -C /dev/tty0; echo $?
+ The keyboard is in raw (scancode) mode
+ Changing to the requested mode may make your keyboard unusable, please use -f 
to force the change.
+ 0
+ 
+ [Regression Potential]
+ 
+  * kbd_mode stops performing breaking mode switches and this may make
+ scripts ineffective when trying to perform a breaking change. This is
+ the intention of the change and the emitter error helps in finding the
+ offending script.
+ 
+ The following packages found to call kbd_mode directly:
+ console-setup
+ xinit
+ console-cyrillic
+ initramfs-tools
+ dracut
+ console-tools
+ xview
+ ubiquity's embedded console-setup copy
+ console-data
+ vnc4
+ 
+ The console related packages are expected to execute only safe mode
+ changes because they should operate on consoles only and the rest seem
+ to be safe, too.
+ 
  (console-setup)
  [Impact]
  
   * keyboard-configuration's postinst changes keyboard mode breaking X
  keys.
  
  [Test Case]
  
   * Ssh to a system or open a terminal and unset DISPLAY
  
      $ echo $DISPLAY
  
      $
  
   * Check kbd mode, should be raw (set by kbd_mode -s) or unknown:
     $ sudo kbd_mode
     The keyboard is in some unknown mode
     $ sudo kbd_mode
     The keyboard is in raw (scancode) mode
     $
  
-    On Xenial X runs on VT7 thus the graphical environment is not affected in 
the default configuration, but the keyboard-configuration postinst maintaner 
script still changes mode on vt1-6, thus at the beginning set VT1 to raw mode 
to observe the change:
-    $  sudo kbd_mode -s -C /dev/tty1
-    $ sudo kbd_mode -C /dev/tty1
-    The keyboard is in raw (scancode) mode
+    On Xenial X runs on VT7 thus the graphical environment is not affected in 
the default configuration, but the keyboard-configuration postinst maintaner 
script still changes mode on vt1-6, thus at the beginning set VT1 to raw mode 
to observe the change:
+    $  sudo kbd_mode -s -C /dev/tty1
+    $ sudo kbd_mode -C /dev/tty1
+    The keyboard is in raw (scancode) mode
  
   * Install or reinstall kbd-configuration
  
     $ sudo apt install --reinstall keyboard-configuration
     ...
     Setting up keyboard-configuration (1.178ubuntu11) ...
     Your console font configuration will be updated the next time your system
     boots. If you want to update it now, run 'setupcon' from a virtual console.
     ...
  
   * With the fixed package you should see the note above and the kbd mode
  must stay the same (on Xenial check VT1: sudo kbd_mode -C /dev/tty1):
  
     $ sudo kbd_mode
     The keyboard is in raw (scancode) mode
     $
  
   * The unfixed package sets the kbd mode to unicode:
  
     $  sudo kbd_mode
     The keyboard is in Unicode (UTF-8) mode
     $
  
  [Regression Potential]
  
   * The change may break debian-installer changing the keyboard mode, this 
should also be tested.
   * In general changing the postinst script may make the package unable to 
install, but this is tested in generic environment and the change to the 
postinst script is very small.
  
  [Original Bug Text]
  WORKAROUND:
  
  sudo kbd_mode -s
  
  ORIGINAL DESCRIPTION:
  
  I'm running Ubuntu Lucid development branch.
  
  Pressing alt-f2 switches the screen to the second virtual terminal.
  Alt-f3 does the same to the third and so on. I expected alt-f2 to open
  the run dialog.
  
  I'm pretty sure that my keyboard is not malfunctioning as I can use all
  my applications normally. (Pressing O and Ctrl-O do not have the same
  effect.)
  
  I'm not sure which package I should file this bug against. I'll happily
  do an apport-collect once I know.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/520546

Title:
  Alt+KEY incorrectly behaves like Ctrl+Alt+KEY, and/or unwanted VT
  switch from Alt+Left/Right

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/console-setup/+bug/520546/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to