# Dracut config file customized for RedHat/Fedora.
# i18n
-keyboard_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP"
-i18n_vars="/etc/sysconfig/i18n:SYSFONT,SYSFONTACM-CONTRANS,UNIMAP"
+i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:FONT,FONTACM-FONT_MAP,FONT_UNIMAP"
#
# i18n
-keyboard_vars="/etc/conf.d/keymaps:keymap-KEYMAP,extended_keymaps-EXT_KEYMAPS"
-i18n_vars="/etc/conf.d/consolefont:consolefont-SYSFONT,consoletranslation-CONTRANS /etc/rc.conf:unicode-UNICODE"
+i18n_vars="/etc/conf.d/keymaps:keymap-KEYMAP,extended_keymaps-EXT_KEYMAPS /etc/conf.d/consolefont:consolefont-FONT,consoletranslation-FONT_MAP /etc/rc.conf:unicode-UNICODE"
#
# i18n
-keyboard_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS"
-i18n_vars="/etc/conf.d/consolefont:CONSOLEFONT-SYSFONT,CONSOLETRANSLATION-CONTRANS /etc/rc.conf:UNICODE"
+i18n_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS /etc/conf.d/consolefont:CONSOLEFONT-FONT,CONSOLETRANSLATION-FONT_MAP /etc/rc.conf:UNICODE"
-i18n_vars="/etc/sysconfig/language:RC_LANG-LANG,RC_LC_ALL-LC_ALL /etc/sysconfig/console:CONSOLE_UNICODEMAP-UNIMAP,CONSOLE_FONT-SYSFONT,CONSOLE_SCREENMAP-CONTRANS"
-keyboard_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP"
+i18n_vars="/etc/sysconfig/language:RC_LANG-LANG,RC_LC_ALL-LC_ALL /etc/sysconfig/console:CONSOLE_UNICODEMAP-FONT_UNIMAP,CONSOLE_FONT-FONT,CONSOLE_SCREENMAP-FONT_MAP /etc/sysconfig/keyboard:KEYTABLE-KEYMAP"
omit_dracutmodules+=" selinux "
hostonly="yes"
<variablelist>
<varlistentry>
<term>
- <envar>KEYMAP=</envar>
+ <envar>voonsole.keymap=</envar>
<replaceable><keymap base file name></replaceable>
</term>
<listitem>
- <para>keyboard translation table loaded by loadkeys; taken from keymaps directory; will be written to <filename>/etc/sysconfig/keyboard</filename> in the initramfs, e.g.: <programlisting>KEYMAP=de-latin1-nodeadkeys</programlisting></para>
+ <para>keyboard translation table loaded by loadkeys; taken from keymaps directory; will be written as <envar>KEYMAP</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs, e.g.: <programlisting>vconsole.keymap=de-latin1-nodeadkeys</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <envar>EXT_KEYMAPS=</envar>
+ <envar>vconsole.keymap.ext=</envar>
<replaceable><list of keymap base file names></replaceable>
</term>
<listitem>
- <para>list of extra keymaps to bo loaded (sep. by space); will be written to <filename>/etc/sysconfig/keyboard</filename> in the initramfs</para>
+ <para>list of extra keymaps to bo loaded (sep. by space); will be written as <envar>EXT_KEYMAP</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <envar>UNICODE=</envar>
+ <envar>vconsole.font.unicode=</envar>
<replaceable><1|0></replaceable>
</term>
<listitem>
- <para>boolean, indicating UTF-8 mode; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs</para>
+ <para>boolean, indicating UTF-8 mode; will be written as <envar>UNICODE</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <envar>SYSFONT=</envar>
+ <envar>vconsole.font=</envar>
<replaceable><font base file name></replaceable>
</term>
<listitem>
- <para>console font; taken from consolefonts directory; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs; e.g.: <programlisting>SYSFONT=LatArCyrHeb-16</programlisting></para>
+ <para>console font; taken from consolefonts directory; will be written as <envar>FONT</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs; e.g.: <programlisting>vconsole.font=LatArCyrHeb-16</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <envar>CONTRANS=</envar>
+ <envar>vconsole.font.map=</envar>
<replaceable><console map base file name></replaceable>
</term>
<listitem>
- <para>see description of '-m' parameter in setfont manual; taken from consoletrans directory; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs</para>
+ <para>see description of '-m' parameter in setfont manual; taken from consoletrans directory; will be written as <envar>FONT_MAP</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <envar>UNIMAP=</envar>
+ <envar>vconsole.font.unimap=</envar>
<replaceable><unicode table base file name></replaceable>
</term>
<listitem>
- <para>see description of '-u' parameter in setfont manual; taken from unimaps directory; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs</para>
+ <para>see description of '-u' parameter in setfont manual; taken from unimaps directory; will be written as <envar>FONT_UNIMAP</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <envar>LANG=</envar>
+ <envar>locale.LANG=</envar>
<replaceable><locale></replaceable>
</term>
<listitem>
- <para>taken from the environment; if no UNICODE is defined we set its value in basis of LANG value (whether it ends with ".utf8" (or similar) or not); will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs; e.g.: <programlisting>LANG=pl_PL.utf8</programlisting></para>
+ <para>taken from the environment; if no UNICODE is defined we set its value in basis of LANG value (whether it ends with ".utf8" (or similar) or not); will be written as <envar>LANG</envar> to <filename>/etc/locale.conf</filename> in the initramfs; e.g.: <programlisting>locale.LANG=pl_PL.utf8</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <envar>LC_ALL=</envar>
+ <envar>locale.LC_ALL=</envar>
<replaceable><locale></replaceable>
</term>
<listitem>
- <para>taken from the environment; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs</para>
+ <para>taken from the environment; will be written as <envar>LC_ALL</envar> to <filename>/etc/locale.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
</variablelist>
<para><envar>rd.zfcp</envar></para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>
+ <envar>KEYMAP</envar>
+ </term>
+ <listitem>
+ <para><envar>vconsole.keymap</envar></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <envar>KEYTABLE</envar>
+ </term>
+ <listitem>
+ <para><envar>vconsole.keymap</envar></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <envar>SYSFONT</envar>
+ </term>
+ <listitem>
+ <para><envar>vconsole.font</envar></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <envar>CONTRANS</envar>
+ </term>
+ <listitem>
+ <para><envar>vconsole.font.map</envar></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <envar>UNIMAP</envar>
+ </term>
+ <listitem>
+ <para><envar>vconsole.font.unimap</envar></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <envar>UNICODE</envar>
+ </term>
+ <listitem>
+ <para><envar>vconsole.font.unicode</envar></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <envar>EXT_KEYMAP</envar>
+ </term>
+ <listitem>
+ <para><envar>vconsole.keymap.ext</envar></para>
+ </listitem>
+ </varlistentry>
</variablelist>
</refsect2>
</refsect1>
# Console initialization - keyboard, font, etc.
-KERNEL=="tty0", RUN+="/lib/udev/console_init %k"
+KERNEL=="tty0", RUN+="/lib/udev/console_init $root/$name"
KEYMAP - keyboard translation table loaded by loadkeys
EXT_KEYMAPS - list of extra keymaps to bo loaded (sep. by space)
UNICODE - boolean, indicating UTF-8 mode
- SYSFONT - console font
- CONTRANS - see description of '-m' parameter in setfont manual
- UNIMAP - see description of '-u' parameter in setfont manual
+ FONT - console font
+ FONT_MAP - see description of '-m' parameter in setfont manual
+ FONT_UNIMAP - see description of '-u' parameter in setfont manual
The following are appended to EXT_KEYMAPS only during build time:
Mappings between variables listed in 2.1. and the ones spread around
your system are set up in /etc/dracut.conf.d/<foo>.conf. You need to
-assign mappings to fields keyboard_vars and i18n_vars. Here's an
-example:
+assign mappings to i18n_vars. Here's an example:
-keyboard_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS"
-i18n_vars="/etc/conf.d/consolefont:CONSOLEFONT-SYSFONT,CONSOLETRANSLATION-CONTRANS /etc/rc.conf:UNICODE"
+i18n_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS /etc/conf.d/consolefont:CONSOLEFONT-FONT,CONSOLETRANSLATION-FONT_MAP /etc/rc.conf:UNICODE"
First we've got name of file in host file system tree. After colon
there's mapping: <from>-<to>. If both variables have the same name you
If you create generic initramfs you can set up i18n by kernel
parameters using variables listed in 2.1. (except of UNIKEYMAP
-and GRP_TOGGLE) The recommended minimum is: SYSFONT, KEYMAP and UNICODE.
+and GRP_TOGGLE) The recommended minimum is: FONT and KEYMAP.
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
-[ -e /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
-[ -e /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard
+[ -e /etc/vconsole.conf ] && . /etc/vconsole.conf
DEFAULT_SYSFONT=LatArCyrHeb-16
DEFAULT_KEYMAP=/etc/sysconfig/console/default.kmap
-
set_keyboard() {
local param
# ex: ts=8 sw=4 sts=4 et filetype=sh
KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps
-DEFAULT_SYSFONT=LatArCyrHeb-16
-I18N_CONF="${initdir}/etc/sysconfig/i18n"
-KEYBOARD_CONF="${initdir}/etc/sysconfig/keyboard"
-
+DEFAULT_FONT=LatArCyrHeb-16
+I18N_CONF="${initdir}/etc/locale.conf"
+KEYBOARD_CONF="${initdir}/etc/vconsole.conf"
# This is from 10redhat-i18n.
findkeymap () {
install_base() {
dracut_install setfont loadkeys kbd_mode stty
- inst ${moddir}/console_init /lib/udev/console_init
+
+ if [ -x /lib/systemd/systemd-vconsole-setup ]; then
+ dracut_install /lib/systemd/systemd-vconsole-setup
+ inst_dir /lib/udev
+ ln -s /lib/systemd/systemd-vconsole-setup "${initdir}/lib/udev/console_init"
+ else
+ inst ${moddir}/console_init /lib/udev/console_init
+ fi
inst_rules ${moddir}/10-console.rules
inst_hook cmdline 20 "${moddir}/parse-i18n.sh"
}
}
install_local_keyboard() {
- local map
eval $(gather_vars ${keyboard_vars})
+ mksubdirs ${KEYBOARD_CONF}
+}
+
+install_local_i18n() {
+ local map
+ eval $(gather_vars ${i18n_vars})
+
# Gentoo user may have KEYMAP set to something like "-u pl2",
KEYMAP=${KEYMAP#-* }
# I'm not sure of the purpose of UNIKEYMAP and GRP_TOGGLE. They were in
inst_opt_decompress ${KEYMAPS}
- mksubdirs ${KEYBOARD_CONF}
- print_vars KEYMAP EXT_KEYMAPS >> ${KEYBOARD_CONF}
-}
+ [[ ${FONT} ]] || FONT=${DEFAULT_FONT}
+ FONT=${FONT%.psf*}
+ inst_opt_decompress ${kbddir}/consolefonts/${FONT}.*
-install_local_i18n() {
- eval $(gather_vars ${i18n_vars})
-
- [[ ${SYSFONT} ]] || SYSFONT=${DEFAULT_SYSFONT}
- SYSFONT=${SYSFONT%.psf*}
- inst_opt_decompress ${kbddir}/consolefonts/${SYSFONT}.*
-
- if [[ ${CONTRANS} ]]
+ if [[ ${FONT_MAP} ]]
then
- CONTRANS=${CONTRANS%.trans}
- inst ${kbddir}/consoletrans/${CONTRANS}.trans
+ FONT_MAP=${FONT_MAP%.trans}
+ inst ${kbddir}/consoletrans/${FONT_MAP}.trans
fi
- if [[ ${UNIMAP} ]]
+ if [[ ${FONT_UNIMAP} ]]
then
- UNIMAP=${UNIMAP%.uni}
- inst ${kbddir}/unimaps/${UNIMAP}.uni
+ FONT_UNIMAP=${FONT_UNIMAP%.uni}
+ inst ${kbddir}/unimaps/${FONT_UNIMAP}.uni
fi
if [[ ${UNICODE} ]]
fi
mksubdirs ${I18N_CONF}
- print_vars LC_ALL LANG UNICODE SYSFONT CONTRANS UNIMAP >> ${I18N_CONF}
+ mksubdirs ${KEYBOARD_CONF}
+ print_vars LC_ALL LANG >> ${I18N_CONF}
+ print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${KEYBOARD_CONF}
}
checks() {
return 1
}
- [[ ! ${hostonly} || ${keyboard_vars} && ${i18n_vars} ]] || {
- derror 'Please set up keyboard_vars and i18n_vars in configuration file.'
+ [[ ! ${hostonly} || ${i18n_vars} ]] || {
+ derror 'Please set up i18n_vars in configuration file.'
return 1
}
}
if [[ ${hostonly} ]]
then
- install_local_keyboard
install_local_i18n
else
install_all_kbd
# ex: ts=8 sw=4 sts=4 et filetype=sh
inst_key_val() {
- local value
- value=$(getarg $1)
- [ -n "${value}" ] && printf '%s="%s"\n' $1 ${value} >> $2
+ local _value
+ local _file
+ _file=$1
+ shift
+ _value=$(getarg $@)
+ if [ -n "${_value}" ]; then
+ printf '%s="%s"\n' $1 ${_value} >> $_file
+ fi
+ unset _file
+ unset _value
}
+inst_key_val /etc/vconsole.conf KEYMAP vconsole.keymap KEYTABLE
+inst_key_val /etc/vconsole.conf FONT vconsole.font SYSFONT
+inst_key_val /etc/vconsole.conf FONT_MAP vconsole.font.map CONTRANS
+inst_key_val /etc/vconsole.conf FONT_UNIMAP vconsole.font.unimap UNIMAP
+inst_key_val /etc/vconsole.conf UNICODE vconsole.font.unicode
+inst_key_val /etc/vconsole.conf EXT_KEYMAP vconsole.keymap.ext
-mkdir -p /etc/sysconfig
-inst_key_val KEYMAP /etc/sysconfig/keyboard
-inst_key_val EXT_KEYMAPS /etc/sysconfig/keyboard
-inst_key_val UNICODE /etc/sysconfig/i18n
-inst_key_val SYSFONT /etc/sysconfig/i18n
-inst_key_val CONTRANS /etc/sysconfig/i18n
-inst_key_val UNIMAP /etc/sysconfig/i18n
-inst_key_val LANG /etc/sysconfig/i18n
-inst_key_val LC_ALL /etc/sysconfig/i18n
+inst_key_val /etc/locale.conf LANG locale.LANG
+inst_key_val /etc/locale.conf LC_ALL locale.LC_ALL
-if [ -f /etc/sysconfig/i18n ]; then
- . /etc/sysconfig/i18n
+if [ -f /etc/locale.conf ]; then
+ . /etc/locale.conf
export LANG
export LC_ALL
fi