ดู/ubuntu/630118/และ/ubuntu/328463/
ปัญหานี้ดูเหมือนว่าจะเกิดจากความไม่ตรงกันในการตั้งชื่อของแบบอักษรที่การตั้งค่าคอนโซลคาดว่าจะเทียบกับสิ่งที่มีอยู่ใน/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 นี่คือสิ่งที่ฉันเรียกว่าตัวเลือก "overkill" ฉันทำแบบนี้:
ใน /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 ใช้งานได้ดีกับความยุ่งยากหรือความยุ่งเหยิงน้อยที่สุด