web-dev-qa-db-fra.com

ubuntu vivid disrgards-console-setup après le redémarrage

Une question précédente de buntu Server annule la configuration de la console lors du redémarrage de VirtualBox concerne Ubuntu version 12. La (une) réponse parle de l'installation d'un travail upstart dans /etc/init/console-font.conf.

J'ai la version 15 d'Ubuntu, sur une machine physique et non virtuelle (bien que cela ne soit probablement pas pertinent). Ce fichier existe, mais bien entendu, Ubuntu 15 ne démarre pas avec systemd et le travail mis à jour est complètement ignoré.

Alors, quelle est la solution à ce problème pour Ubuntu version 15 avec systemd? Comment faire en sorte que Ubuntu conserve le jeu de polices avec dpkg-reconfigure console-setup après un redémarrage?

4
user2057220

Voir https://unix.stackexchange.com/questions/198791/ et le serveur Ubuntu annule la configuration de la console lors du redémarrage dans VirtualBox

Ce problème semble être dû à une incompatibilité dans l'attribution de noms aux polices attendues par la configuration de la console par rapport à celles contenues dans /usr/share/consolefonts/, et donc copiées dans /etc/console-setup/ lorsque vous choisissez une police à utiliser (avec dpkg-reconfigure console-setup).

Si vous allez sur une console et faites un strace /lib/udev/console-setup-tty fbcon, vous verrez qu'il tente d'ouvrir des polices comme celle-ci:

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

Mais si vous regardez dans /etc/console-setup/, il ne contient qu'une poignée de polices (celles que vous avez choisies) et elles ressemblent davantage à ceci:

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

L'un a la hauteur x la largeur et l'autre la largeur x la hauteur.

Le problème peut être résolu de plusieurs manières.

(1) /lib/udev/console-setup-tty pourrait être corrigé - C'est la solution la plus permanente, en amont.

(2) Vous pouvez modifier manuellement /etc/default/console-setup, en inversant la hauteur et la largeur dans FONTSIZE. Cela devra être fait chaque fois que vous modifierez les polices à l'aide de dpkg-reconfigure console-setup. Mais lorsque la machine redémarre, cette préférence est conservée.

(3) Vous pouvez installer les polices attendues par console-setup-tty. C'est ce que j'appelle l'option "overkill". Je l'ai fait comme ça:

Dans /etc/rc.local:

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

Créez un script appelé /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

Pour une solution pragmatique rapide, je ferais le n ° 2, avec un commentaire dans le fichier indiquant qu'il peut être nécessaire de le refaire si vous choisissez une police différente (en supposant que le commentaire ne soit pas également écrasé).

Mais # 3 fonctionne bien avec un minimum de tracas ou de dégâts.

1
Alan Porter