ubuntu vívida disrgards-console-setup após a reinicialização

4

Uma pergunta anterior no Ubuntu Server desconfigura a configuração do console quando a reinicialização no VirtualBox está relacionada ao Ubuntu versão 12. O (um) answer fala sobre a instalação de um job upstart em /etc/init/console-font.conf .

Eu tenho o Ubuntu versão 15, em uma máquina física e não virtual (embora isso possivelmente não seja relevante). Esse arquivo existe, mas é claro que o Ubuntu 15 inicializa com o systemd e não o upstart, e o job iniciante é completamente ignorado.

Então, qual é a correção para este problema para o Ubuntu versão 15 com o systemd? Como faço para o Ubuntu manter o conjunto de fontes com dpkg-reconfigure console-setup durante uma reinicialização?

    
por user2057220 30.05.2015 / 08:39

1 resposta

1

Veja o link e o Ubuntu Server desconfigura a configuração do console ao reinicializar no VirtualBox

Esse problema parece ser causado por uma incompatibilidade na nomenclatura de fontes que console-setup espera vs o que está em /usr/share/consolefonts/ , e assim copiado para /etc/console-setup/ quando você escolhe uma fonte para usar (usando dpkg-reconfigure console-setup ).

Se você for a um console e fizer um strace /lib/udev/console-setup-tty fbcon , você pode ver que está tentando abrir fontes como esta:

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

Mas se você olhar em /etc/console-setup/ , há apenas um punhado de fontes lá (as que você escolheu), e elas se parecem mais com isso:

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

Um tem altura x largura e o outro tem largura x altura.

O problema pode ser corrigido de algumas maneiras.

(1) /lib/udev/console-setup-tty pode ser corrigido - isso é o mais solução permanente a montante.

(2) Você pode alterar manualmente /etc/default/console-setup , revertendo o altura e largura em FONTSIZE. Isso precisará ser feito toda vez que você altere as fontes usando dpkg-reconfigure console-setup . Mas quando o máquina reinicializa, essa preferência é mantida.

(3) Você pode instalar as fontes que o console-setup-tty espera. este é o que eu chamo de opção "overkill". Eu fiz assim:

Em /etc/rc.local:

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

Crie um script chamado /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/-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

Para uma solução pragmática rápida, eu faria # 2, com um comentário no arquivo que pode ser necessário ser refeito se você escolher uma fonte diferente (assumindo a o comentário também não é sobrescrito).

Mas o # 3 funciona bem com o mínimo de barulho ou bagunça.

    
por Alan Porter 14.06.2015 / 01:06