参见/ubuntu/630118/和/ubuntu/328463/。
这个问题似乎是由于console-setup所期望的字体命名与in中的字体不匹配而引起的/usr/share/consolefonts/
,因此/etc/console-setup/
在您选择要使用的字体(使用dpkg-reconfigure console-setup
)时
将其复制到。
如果转到控制台并执行strace /lib/udev/console-setup-tty fbcon
,则可以看到它正在尝试打开如下字体:
/etc/console-setup/Lat15-TerminusBold11x22.psf
但是,如果您查看/etc/console-setup/
,那里只有少数几种字体(您选择的字体),它们看起来更像这样:
/etc/console-setup/Lat15-TerminusBold22x11.psf.gz
一个具有高度x宽度,另一个具有宽度x高度。
该问题可以通过几种方法解决。
(1)/lib/udev/console-setup-tty
可以解决-这是更永久的上游解决方案。
(2)您可以手动更改/etc/default/console-setup
,以FONTSIZE反转高度和宽度。每次使用更改字体时,都需要这样做dpkg-reconfigure console-setup
。但是,当计算机重新启动时,该首选项将保留。
(3)您可以安装console-setup-tty期望的字体。这就是我所说的“过度杀伤”选项。我这样做是这样的:
在/etc/rc.local中:
# install console fonts and then set up console
/etc/console-setup/fonts.sh install
/lib/udev/console-setup-tty fbcon
创建一个脚本/etc/console-setup/fonts.sh
:
#!/bin/bash
action=$1
srcdir="/usr/share/consolefonts"
parent="/etc/console-setup"
subdir="fonts"
case "$1" in
install)
# console fonts are not named properly in Ubuntu 15.04, compensate
[[ -d $parent/$subdir ]] || mkdir $parent/$subdir
for x in $( cd $srcdir ; ls -1 ) ; do
# rearrange the two numbers from HHxWW to WWxHH
y=$(echo "$x" | sed -e 's/^\([^-]*\)-\([^0-9]*\)\([0-9]*\)x\([0-9]*\).psf.gz/\1-\2\4x\3.psf.gz/g')
# whether the pattern above matches or not, we'll be uncompressing here
z=${y/.psf.gz/.psf}
[[ ! -f $parent/$subdir/$z ]] && zcat $srcdir/$x > $parent/$subdir/$z
[[ ! -L $parent/$z ]] && ln -sv $subdir/$z $parent/$z
done
;;
uninstall)
rm -rf $parent/$subdir
# only remove broken links (links to the fonts we removed above)
rm $(find -L $parent -type l)
;;
*)
echo "$(basename $0) install|uninstall"
;;
esac
exit 0
对于一个快速实用的解决方案,我会做#2,在文件中添加一个注释,如果您选择其他字体,可能需要重新做一遍(假设注释也不会被覆盖)。
但是#3运作得很好,没有什么大惊小怪的事情。