ubuntu vivid disrgards-console-setup dopo il riavvio

4

Una domanda precedente a Ubuntu Server disrgards console-setup quando il riavvio in VirtualBox si riferisce a Ubuntu versione 12. Il (uno) risposta parla dell'installazione di un lavoro di upstart in /etc/init/console-font.conf .

Ho Ubuntu versione 15, su una macchina fisica non virtuale (anche se probabilmente non è rilevante). Quel file esiste, ma ovviamente Ubuntu 15 si avvia con systemd non upstart e il job upstart viene completamente ignorato.

Quindi qual è la soluzione a questo problema per Ubuntu versione 15 con systemd? Come posso convincere Ubuntu a mantenere il set di caratteri con dpkg-reconfigure console-setup al riavvio?

    
posta user2057220 30.05.2015 - 08:39

1 risposta

1

Vedi link e Ubuntu Server disrgards console-setup quando il riavvio in VirtualBox

Questo problema sembra essere causato da una mancata corrispondenza nella denominazione dei caratteri quella console-setup si aspetta vs cosa sono in /usr/share/consolefonts/ , e quindi copiato in /etc/console-setup/ quando si seleziona un font da usare (usando % Co_de%).

Se vai su una console e fai un dpkg-reconfigure console-setup , puoi vedere che sta tentando di aprire tipi di carattere come questo:

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

Ma se guardi in strace /lib/udev/console-setup-tty fbcon , ce ne sono solo una manciata i font in là (quelli che hai scelto), e sembrano più simili a questo:

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

Uno ha altezza x larghezza e l'altro ha larghezza x altezza.

Il problema può essere risolto in alcuni modi.

(1) /etc/console-setup/ potrebbe essere corretto - Questo è il più soluzione permanente, a monte.

(2) È possibile modificare manualmente /lib/udev/console-setup-tty , invertendo il valore altezza e larghezza in FONTSIZE. Questo dovrà essere fatto ogni volta che tu cambia i caratteri usando /etc/default/console-setup . Ma quando il riavvio della macchina, tale preferenza viene mantenuta.

(3) È possibile installare i font che la console-setup-tty si aspetta. Questo è ciò che chiamo l'opzione "overkill". L'ho fatto in questo modo:

In /etc/rc.local:

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

Crea uno script chiamato dpkg-reconfigure console-setup :

#!/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/-x.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

Per una rapida soluzione pragmatica, farei # 2, con un commento nel file potrebbe essere necessario rifare se si sceglie un font diverso (assumendo il anche il commento non viene sovrascritto).

Ma # 3 funziona bene con il minimo sforzo o confusione.

    
risposta data Alan Porter 14.06.2015 - 01:06

Leggi altre domande sui tag