Description of problem: I want to set display font to ter-112n. fbcon loads and sets the default kernel font before LUKS password. ter-112n is never loaded, vconsole.font apparently has no effect. I would expect the udev rule in 10-console.rules to fire when kernel console driver loads, but it doesn't. Am I missing something in the general logic of the things, or...? Version-Release number of selected component (if applicable): all versions through 013 to 018 How reproducible: every time Additional info: $ cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.3.1-pf root=/dev/mapper/luks-UUID rd.luks.uuid=UUID rd.luks.key=s9.img:UUID=UUID acpi_osi=Linux pcie_aspm=force i915.i915_enable_rc6=1 i915.lvds_downclock=1 rd.driver.post=fbcon vconsole.font=ter-112n console=tty0 rd.plymouth=0
is the font in the initramfs? # lsinitrd <image> | fgrep ter-112n
Absolutely: $ ./lsinitrd.sh | grep ter-112n -rw-r--r-- 1 root root 3839 Aug 26 2011 usr/share/consolefonts/ter-112n.psf
can you add "rd.debug" to the kernel command line and attach /run/initramfs/init.log
This is still on my radar, you will get some debug output soonish. It most likely makes sense for me to test this against HEAD?
sure, if you want
This is still an issue with 022. set_font() never happens. BOOT_IMAGE=/vmlinuz-3.4.6-pf root=/dev/mapper/luks-MYUUID rd.luks.uuid=MYUUID rd.luks.key=s9.img:UUID=1234 acpi_osi=Linux pcie_aspm=force i915.i915_enable_rc6=1 i915.lvds_downclock=1 rd.driver.post=fbcon vconsole.font=ter-112n console=tty0 rd.plymouth=0 rd.debug + [ -f /etc/initrd-release ] + . /etc/initrd-release + NAME=Dracut + VERSION=dracut- + ID=dracut + VERSION_ID= + PRETTY_NAME=dracut- (Initramfs) + ANSI_COLOR=0;34 + [ -n dracut- ] + info dracut-dracut- + check_quiet + [ -z ] + DRACUT_QUIET=yes + getargbool 0 rd.info -y rdinfo + local _b + unset _b + local _default + _default=0 + shift + getarg rd.info -y rdinfo + debug_off + set +x + return 1 + _b= + [ 1 -ne 0 -a -z ] + _b=0 + [ -n 0 ] + [ 0 = 0 ] + return 1 + getargbool 0 rd.debug -y rdinitdebug + local _b + unset _b + local _default + _default=0 + shift + getarg rd.debug -y rdinitdebug + debug_off + set +x + return 0 + _b= + [ 0 -ne 0 -a -z ] + [ -n ] + return 0 + DRACUT_QUIET=no + getarg quiet + debug_off + set +x + return 1 + DRACUT_QUIET=yes + getarg loglevel= + debug_off + set +x + return 1 + a= + [ -n ] + export DRACUT_QUIET + echo <30>dracut: dracut-dracut- + [ yes != yes ] + source_conf /etc/conf.d + local f + [ /etc/conf.d ] + [ -d //etc/conf.d ] + return + getarg rd.break=cmdline rdbreak=cmdline + debug_off + set +x + return 1 + source_hook cmdline + local _dir + _dir=cmdline + shift + source_all /lib/dracut/hooks/cmdline + local f + local _dir + _dir=/lib/dracut/hooks/cmdline + shift + [ /lib/dracut/hooks/cmdline ] + [ -d //lib/dracut/hooks/cmdline ] + [ -e //lib/dracut/hooks/cmdline/01parse-kernel.sh ] + . //lib/dracut/hooks/cmdline/01parse-kernel.sh + getargs rd.driver.pre rdloaddriver= + debug_off + set +x + return 1 + getargs rd.driver.blacklist rdblacklist= + debug_off + set +x + return 1 + getargs rd.driver.post rdinsmodpost= + debug_off + set +x + return 0 + echo blacklist fbcon + _do_insmodpost=1 + [ -n 1 ] + initqueue --settled --unique --onetime insmodpost.sh + hookdir=/lib/dracut/hooks + export hookdir + [ ! -x /lib/systemd/systemd ] + [ 4 -gt 0 ] + qname=/settled + shift + [ 3 -gt 0 ] + unique=yes + shift + [ 2 -gt 0 ] + onetime=yes + shift + [ 1 -gt 0 ] + break + [ -z yes ] + job=insmodpost.sh + job=insmodpost.sh + exe=insmodpost.sh + shift + [ -x insmodpost.sh ] + command -v insmodpost.sh + exe=/sbin/insmodpost.sh + [ -n yes ] + echo [ -e "$job" ] && rm "$job" + [ -n ] + echo /sbin/insmodpost.sh + mv -f /tmp/740-insmodpost.sh.sh /lib/dracut/hooks/initqueue/settled/insmodpost.sh.sh + [ -z /settled ] + exit 0 + unset _do_insmodpost + [ -e //lib/dracut/hooks/cmdline/10parse-keydev.sh ] + . //lib/dracut/hooks/cmdline/10parse-keydev.sh + getargbool 1 rd.luks -n rd_NO_LUKS + local _b + unset _b + local _default + _default=1 + shift + getarg rd.luks -n rd_NO_LUKS + debug_off + set +x + return 1 + _b= + [ 1 -ne 0 -a -z ] + _b=1 + [ -n 1 ] + [ 1 = 0 ] + [ 1 = no ] + [ 1 = off ] + return 0 + getarg rd.luks.key + debug_off + set +x + return 0 + [ -n s9.img:UUID=1234 ] + exec + echo SUBSYSTEM!="block", GOTO="luks_keydev_end" + echo ACTION!="add|change", GOTO="luks_keydev_end" + getargs rd.luks.key + debug_off + set +x + return 0 + unset keypath keydev luksdev + splitsep : s9.img:UUID=1234 keypath keydev luksdev + debug_off + set +x + return 0 + info rd.luks.key: keypath='s9.img' keydev='UUID=1234' luksdev='' + check_quiet + [ -z yes ] + echo <30>dracut: rd.luks.key: keypath='s9.img' keydev='UUID=1234' luksdev='' + [ yes != yes ] + [ -z s9.img ] + [ -n UUID=1234 ] + udevmatch UUID=1234 + printf ENV{ID_FS_UUID}=="%s*" 1234 + printf , + command -v initqueue + printf -- RUN+="%s --unique --onetime /sbin/initqueue + printf -- --name probe-keydev-%%k + command -v probe-keydev + printf -- %s /dev/%%k %s %s"n /sbin/probe-keydev s9.img + unset arg keypath keydev luksdev + echo LABEL="luks_keydev_end" + exec + [ -e //lib/dracut/hooks/cmdline/10parse-root-opts.sh ] + . //lib/dracut/hooks/cmdline/10parse-root-opts.sh + getarg root= + debug_off + set +x + return 0 + root=/dev/mapper/luks-MYUUID + getarg rootflags= + debug_off + set +x + return 1 + rflags= + getarg rw + debug_off + set +x + return 1 + getarg ro + debug_off + set +x + return 1 + getarg rootfstype= + debug_off + set +x + return 1 + fstype= + [ -z ] + fstype=auto + [ -e //lib/dracut/hooks/cmdline/20parse-i18n.sh ] + . //lib/dracut/hooks/cmdline/20parse-i18n.sh + inst_key_val /etc/vconsole.conf KEYMAP vconsole.keymap KEYTABLE + local _value + local _file + local _default + _default= + shift + _file=/etc/vconsole.conf + shift + getarg KEYMAP vconsole.keymap KEYTABLE + debug_off + set +x + return 1 + _value= + [ -z ] + _value= + [ -n ] + unset _file + unset _value + inst_key_val /etc/vconsole.conf FONT vconsole.font SYSFONT + local _value + local _file + local _default + _default= + shift + _file=/etc/vconsole.conf + shift + getarg FONT vconsole.font SYSFONT + debug_off + set +x + return 0 + _value=ter-112n + [ -z ter-112n ] + [ -n ter-112n ] + printf %s="%s"n FONT ter-112n + unset _file + unset _value + inst_key_val /etc/vconsole.conf FONT_MAP vconsole.font.map CONTRANS + local _value + local _file + local _default + _default= + shift + _file=/etc/vconsole.conf + shift + getarg FONT_MAP vconsole.font.map CONTRANS + debug_off + set +x + return 1 + _value= + [ -z ] + _value= + [ -n ] + unset _file + unset _value + inst_key_val /etc/vconsole.conf FONT_UNIMAP vconsole.font.unimap UNIMAP + local _value + local _file + local _default + _default= + shift + _file=/etc/vconsole.conf + shift + getarg FONT_UNIMAP vconsole.font.unimap UNIMAP + debug_off + set +x + return 1 + _value= + [ -z ] + _value= + [ -n ] + unset _file + unset _value + inst_key_val 1 /etc/vconsole.conf UNICODE vconsole.unicode vconsole.font.unicode + local _value + local _file + local _default + _default=1 + shift + _file=/etc/vconsole.conf + shift + getarg UNICODE vconsole.unicode vconsole.font.unicode + debug_off + set +x + return 1 + _value= + [ -z ] + _value=1 + [ -n 1 ] + printf %s="%s"n UNICODE 1 + unset _file + unset _value + inst_key_val /etc/vconsole.conf EXT_KEYMAP vconsole.keymap.ext + local _value + local _file + local _default + _default= + shift + _file=/etc/vconsole.conf + shift + getarg EXT_KEYMAP vconsole.keymap.ext + debug_off + set +x + return 1 + _value= + [ -z ] + _value= + [ -n ] + unset _file + unset _value + inst_key_val /etc/locale.conf LANG locale.LANG + local _value + local _file + local _default + _default= + shift + _file=/etc/locale.conf + shift + getarg LANG locale.LANG + debug_off + set +x + return 1 + _value= + [ -z ] + _value= + [ -n ] + unset _file + unset _value + inst_key_val /etc/locale.conf LC_ALL locale.LC_ALL + local _value + local _file + local _default + _default= + shift + _file=/etc/locale.conf + shift + getarg LC_ALL locale.LC_ALL + debug_off + set +x + return 1 + _value= + [ -z ] + _value= + [ -n ] + unset _file + unset _value + [ -f /etc/locale.conf ] + . /etc/locale.conf + LANG=et_EE.UTF-8 + export LANG + export LC_ALL + [ -e //lib/dracut/hooks/cmdline/30parse-crypt.sh ] + . //lib/dracut/hooks/cmdline/30parse-crypt.sh ... Here we go to LUKS decryption already and rest of the log is unrelated. I also wonder why I'm forced to do rd.driver.post=fbcon for the module to load at all. I would expect it to be loaded automatically by udev. Or am I missing something?
Created attachment 599978 [details] Proposed patch Does this patch help?
Yes, this makes font switch work. Thanks!