Bagaimana cara mengubah jenis font konsol TTY secara permanen sehingga tahan setelah reboot?

14

Saya menjalankan Ubuntu 15.04 64-bit Desktop Edition (Linux berbasis Debian).

Saya menggunakan sudo dpkg-reconfigure console-setupdari baris perintah untuk mengubah jenis font konsol standar ke Terminus. Segera setelah itu font konsol berubah menjadi wajah font yang lebih tajam.

Namun, setelah reboot Ctrl+ Alt+ F1membawa saya ke jendela konsol yang memiliki wajah font gaya tampilan yang lebih asli, bukan pilihan yang saya pilih.

The /etc/default/console-setupberkas tampaknya telah berubah menjadi pilihan saya.

# CONFIGURATION FILE FOR SETUPCON

# Consult the console-setup(5) manual page.

ACTIVE_CONSOLES="/dev/tty[1-6]"

CHARMAP="UTF-8"

CODESET="guess"
FONTFACE="Terminus"
FONTSIZE="8x16"

VIDEOMODE=

# The following is an example how to use a braille font
# FONT='lat9w-08.psf.gz brl-8x8.psf'

Bagaimana cara mengubah font konsol secara permanen untuk menggunakan font pilihan saya?

Andy Fusniak
sumber
Jawaban di askuntu ini dapat membantu Anda: askubuntu.com/a/396254/399775
toxefa
Jadi sepertinya itu adalah bug yang dikenal. Sayangnya dalam pertanyaan askubuntu, jawaban yang disarankan adalah membuat skrip pemula. Ubuntu 15.04 dan Debian sekarang telah mengadopsi systemd dan tidak lagi menggunakan pemula.
Andy Fusniak

Jawaban:

6

Lihat /ubuntu/630118/ dan /ubuntu/328463/ .

Masalah ini tampaknya disebabkan oleh ketidakcocokan dalam penamaan font yang konsol-setup harapkan vs apa yang ada /usr/share/consolefonts/, dan dengan demikian disalin ke /etc/console-setup/ketika Anda memilih font untuk digunakan (menggunakan dpkg-reconfigure console-setup).

Jika Anda pergi ke konsol dan melakukan strace /lib/udev/console-setup-tty fbcon, Anda dapat melihat bahwa ia mencoba untuk membuka font seperti ini:

/etc/console-setup/Lat15-TerminusBold11x22.psf

Tetapi jika Anda melihat ke dalam /etc/console-setup/, hanya ada beberapa font di sana (yang Anda pilih), dan mereka lebih terlihat seperti ini:

/etc/console-setup/Lat15-TerminusBold22x11.psf.gz

Satu memiliki tinggi x lebar, dan yang lainnya memiliki lebar x tinggi.

Masalahnya dapat diperbaiki dengan beberapa cara.

(1) /lib/udev/console-setup-ttydapat diperbaiki - Ini adalah solusi yang lebih permanen, hulu.

(2) Anda dapat mengubah secara manual /etc/default/console-setup, membalikkan tinggi dan lebar dalam FONTSIZE. Ini perlu dilakukan setiap kali Anda mengubah font menggunakan dpkg-reconfigure console-setup. Tetapi ketika mesin reboot, preferensi itu disimpan.

(3) Anda dapat menginstal font yang diharapkan oleh konsol-setup-tty. Inilah yang saya sebut opsi "berlebihan". Saya melakukannya seperti ini:

Di /etc/rc.local:

# install console fonts and then set up console
/etc/console-setup/fonts.sh install
/lib/udev/console-setup-tty fbcon

Buat skrip bernama /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

Untuk solusi pragmatis cepat, saya akan lakukan # 2, dengan komentar di file yang mungkin perlu dilakukan kembali jika Anda memilih font yang berbeda (dengan asumsi komentar tidak juga ditimpa).

Tetapi # 3 bekerja dengan baik dengan kerepotan atau kekacauan minimal.

Alan Porter
sumber
6

Saya baru-baru ini mengalami masalah ini di kotak Ubuntu 15.04 64 bit saya. The setupconperintah mengatur font untuk apa yang telah saya set dengan dpkg-reconfigure console-setup.

Saya menambahkan setupconke rc.local saya, tetapi meninggalkan celah di mana fontnya masih salah (karena rc.local dieksekusi setelah konsol diatur), jadi itu tidak cukup baik untuk saya.

Jadi, saya memutuskan untuk masuk lebih dalam. Saya mengedit /lib/systemd/system/console-setup.servicefile saya dan menambahkan ExecStart=/bin/setupconke akhir file. Itu akan memanggil setupconketika konsol diatur, memperbaiki font saat boot tanpa ada jeda waktu.

MeetTitan
sumber
2

Solusi paling sederhana yang saya temukan adalah mengedit /etc/default/console-setupuntuk diatur

FONT="Lat7-Terminus32x16.psf.gz"

dan mengomentari segala sesuatu selain ACTIVE_CONSOLESgaris.

Anda dapat menerapkan ini dengan segera setupcon, dan itu akan diterapkan setelah reboot juga.

Menentukan nama font daripada komponen individu bekerja di sekitar ketidakcocokan penamaan yang dijelaskan oleh Alan Porter.

David Faure
sumber