[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#619711: console-setup: breaks copying keymap to initramfs



reassign 619711 initramfs-tools
thanks

On Sat, Mar 26, 2011 at 12:49:24PM +0100, Mario 'BitKoenig' Holbe wrote:
> 
> if a system's keymap needs to be loaded during the initramfs stage,
> initramfs-tools' /usr/share/initramfs-tools/hooks/keymap looks for 
> 	/etc/console-setup/cached.kmap.gz
> and copies it to the initramfs.

I had no idea that initramfs-tools does this.  I think this was wrong 
even with old version of console-setup because in some situations 
cached.kmap.gz will not correspond to the actual configuration and in 
some versions of the package it was even possible for this file not to 
exist.
 
> console-setup 1.71 changed the name of this file to
> 	/etc/console-setup/cached_${CHARMAP}_$backspace$VARIANT.kmap.gz
> i.e. something like
> 	/etc/console-setup/cached_ISO-8859-15_del.kmap.gz

The new version of console-setup tries to guess good values for several 
configuration options if values are not provided in its configuration 
files.  Because of this, it is possible (when the system environment 
changes - locale and/or terminal settings) that a new keymap will be 
required even when the user has not changed anything in the 
configuration files of console-setup.  Hence, it would be impossible for 
console-setup to tell whether cached.kmap.gz can be used or the keymap 
has to be regenerated.
 
> There are several alternatives to fix this bug like
> * symlinking the new name to the old
> * moving the keymap-copying from initramfs-tools to console-setup
> * updating initramfs-tools to honor the new keymap name

It will be difficult for initramfs-tools to tell what is the correct 
name of the cached keymap.  Symlinking the new name to the old is 
unreliable so I'd prefer not to implement this.  Because of this in 
version 1.72 of console-setup a new option of setupcon is implemented 
--save-keyboard.  Suppose you want to save the keymap in 
/tmp/initrd/etc/console-setup/cached.kmap.gz.  Then simply use the 
following command:

setupcon --save-keyboard /tmp/initrd/etc/console-setup/cached.kmap.gz

Alternatively, instead of --save-keyboard you can use --setup-dir.  I 
will explain this second option in a separate bug report.  Both new 
options of setupcon are for now undocumented because I want to know 
first that they will be useful.

Anton Zinoviev




Reply to: