Zobacz /ubuntu/630118/ i /ubuntu/328463/ .
Wydaje się, że ten problem jest spowodowany niedopasowaniem nazw czcionek, których konfiguracja konsoli oczekuje w porównaniu z tym, co jest /usr/share/consolefonts/
, i dlatego została skopiowana, /etc/console-setup/
gdy wybierzesz czcionkę do użycia (użycia
dpkg-reconfigure console-setup
).
Jeśli pójdziesz do konsoli i zrobisz strace /lib/udev/console-setup-tty fbcon
, możesz zobaczyć, że próbuje otworzyć czcionki takie jak to:
/etc/console-setup/Lat15-TerminusBold11x22.psf
Ale jeśli /etc/console-setup/
zajrzysz do środka, znajdziesz tam tylko garść czcionek (tych, które wybrałeś) i wyglądają one mniej więcej tak:
/etc/console-setup/Lat15-TerminusBold22x11.psf.gz
Jeden ma wysokość x szerokość, a drugi szerokość x wysokość.
Problem można rozwiązać na kilka sposobów.
(1) /lib/udev/console-setup-tty
można naprawić - jest to bardziej trwałe rozwiązanie.
(2) Możesz ręcznie zmienić /etc/default/console-setup
, odwracając wysokość i szerokość w FONTSIZE. Należy to zrobić przy każdej zmianie czcionek za pomocą dpkg-reconfigure console-setup
. Ale gdy komputer uruchomi się ponownie, ta preferencja zostanie zachowana.
(3) Możesz zainstalować czcionki, których oczekuje konsola setup-tty. To właśnie nazywam opcją „przesady”. Zrobiłem tak:
W /etc/rc.local:
# install console fonts and then set up console
/etc/console-setup/fonts.sh install
/lib/udev/console-setup-tty fbcon
Utwórz skrypt o nazwie /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
Aby uzyskać szybkie pragmatyczne rozwiązanie, zrobiłbym # 2, z komentarzem w pliku, że może być konieczne powtórzenie, jeśli wybierzesz inną czcionkę (zakładając, że komentarz również nie zostanie zastąpiony).
Ale # 3 działa dobrze przy minimalnym zamieszaniu lub bałaganie.