Wie ändere ich den TTY-Schriftartentyp der Konsole dauerhaft so, dass er nach dem Neustart erhalten bleibt?

14

Ich verwende Ubuntu 15.04 64-Bit Desktop Edition (Ein Debian-basiertes Linux).

Ich habe sudo dpkg-reconfigure console-setupüber die Befehlszeile den Standardschrifttyp der Konsole in Terminus geändert. Unmittelbar danach änderten sich die Schriften der Konsole in die schärfer aussehende Schrift.

Doch nach einem Neustart Ctrl+ Alt+ F1bringt mich zu einem Konsolenfenster, das den ursprünglichen chunkier sucht Artguß Gesicht hat, nicht meine ausgewählte Wahl.

Die /etc/default/console-setupDatei wurde anscheinend nach meinen Wünschen geändert.

# 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'

Wie ändere ich die Konsolenschriftart dauerhaft, um meine bevorzugte Schriftart zu verwenden?

Andy Fusniak
quelle
Diese Antwort auf askuntu kann Ihnen helfen: askubuntu.com/a/396254/399775
toxefa
Es scheint also ein bekannter Fehler zu sein. Leider wird in der Askubuntu-Frage vorgeschlagen, ein Start-Skript zu erstellen. Ubuntu 15.04 und Debian haben nun systemd übernommen und verwenden kein Upstart mehr.
Andy Fusniak

Antworten:

6

Siehe /ubuntu/630118/ und /ubuntu/328463/ .

Dieses Problem scheint durch eine Inkongruenz bei der Benennung der Schriften verursacht zu werden, die das Konsolen-Setup im Vergleich zu den vorhandenen Schriften erwartet /usr/share/consolefonts/, und wird daher kopiert, /etc/console-setup/wenn Sie eine Schriftart zur Verwendung auswählen (using dpkg-reconfigure console-setup).

Wenn Sie zu einer Konsole gehen und einen Befehl ausführen strace /lib/udev/console-setup-tty fbcon, können Sie feststellen, dass versucht wird, Schriftarten wie die folgenden zu öffnen:

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

Aber wenn Sie nachsehen /etc/console-setup/, sind nur eine Handvoll Schriften darin (die, die Sie ausgewählt haben), und sie sehen ungefähr so ​​aus:

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

Einer hat Höhe x Breite und der andere hat Breite x Höhe.

Das Problem kann auf verschiedene Arten behoben werden.

(1) /lib/udev/console-setup-ttykönnte behoben werden - Dies ist die dauerhaftere vorgelagerte Lösung.

(2) Sie können manuell ändern /etc/default/console-setupund die Höhe und Breite in FONTSIZE umkehren. Dies muss jedes Mal durchgeführt werden, wenn Sie die Schriftarten mit ändern dpkg-reconfigure console-setup. Beim Neustart des Computers bleibt diese Einstellung jedoch erhalten.

(3) Sie können die Schriften installieren, die console-setup-tty erwartet. Das nenne ich die "Overkill" -Option. Ich habe es so gemacht:

In /etc/rc.local:

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

Erstellen Sie ein Skript mit dem Namen /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

Für eine schnelle pragmatische Lösung würde ich # 2 mit einem Kommentar in der Datei tun, der möglicherweise erneut ausgeführt werden muss, wenn Sie eine andere Schriftart auswählen (vorausgesetzt, der Kommentar wird nicht überschrieben).

Aber # 3 funktioniert gut mit minimalem Aufwand oder Durcheinander.

Alan Porter
quelle
6

Ich habe vor kurzem dieses Problem auf meiner Ubuntu 15.04 64-Bit-Box festgestellt. Der setupconBefehl stellte die Schriftarten auf das ein, was ich mit eingestellt hatte dpkg-reconfigure console-setup.

Ich habe setupconzu meiner rc.local hinzugefügt , aber das hat eine Lücke hinterlassen, in der die Schriftart immer noch falsch war (weil rc.local ausgeführt wird, nachdem die Konsole eingerichtet wurde), also war das nicht gut genug für mich.

Also beschloss ich, tiefer zu gehen. Ich habe meine /lib/systemd/system/console-setup.serviceDatei bearbeitet und an ExecStart=/bin/setupcondas Ende der Datei angehängt . Das ruft auf, setupconwenn die Konsole eingerichtet wird, und korrigiert die Schriften beim Booten ohne Zeitlücke.

MeetTitan
quelle
2

Die einfachste Lösung, die ich gefunden habe, war das Bearbeiten /etc/default/console-setupzum Einstellen

FONT="Lat7-Terminus32x16.psf.gz"

und alles andere außer der ACTIVE_CONSOLESZeile auskommentieren.

Sie können dies sofort mit anwenden setupcon, und es wird auch nach dem Neustart angewendet.

Das Angeben des Schriftnamens anstelle der einzelnen Komponenten umgeht die von Alan Porter beschriebene Namensinkongruenz.

David Faure
quelle