Como altero permanentemente o tipo de fonte TTY do console para que ele permaneça após a reinicialização?

14

Estou executando o Ubuntu 15.04 64-bit Desktop Edition (um Linux baseado no Debian).

Eu usei sudo dpkg-reconfigure console-setupna linha de comando para alterar o tipo de fonte do console padrão para Terminus. Imediatamente depois, as fontes do console mudaram para a face mais nítida.

No entanto, depois de uma reinicialização, o Ctrl+ Alt+ F1me leva a uma janela do console que possui a fonte original mais estilosa, e não a minha opção selecionada.

O /etc/default/console-setuparquivo parece ter sido alterado para minhas escolhas.

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

Como altero permanentemente a fonte do console para usar minha fonte preferida?

Andy Fusniak
fonte
Esta resposta no askuntu pode ajudá-lo: askubuntu.com/a/396254/399775
toxefa
Portanto, parece que é um bug conhecido. Infelizmente, na pergunta askubuntu, a resposta sugerida é criar um script inicial. O Ubuntu 15.04 e o Debian adotaram o systemd e não usam mais o inicio.
precisa saber é o seguinte

Respostas:

6

Consulte /ubuntu/630118/ e /ubuntu/328463/ .

Esse problema parece ser causado por uma incompatibilidade na nomeação de fontes que a instalação do console espera versus o que está dentro /usr/share/consolefonts/e, portanto, copiada 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, poderá ver que ele está tentando abrir fontes como esta:

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

Mas se você procurar /etc/console-setup/, existem apenas algumas fontes (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-ttypode ser corrigido - Essa é a solução mais permanente e upstream.

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

(3) Você pode instalar as fontes que o console-setup-tty espera. Isso é o que chamo de opção "exagero". 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/\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

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

Mas # 3 funciona bem com o mínimo de confusão ou confusão.

Alan Porter
fonte
6

Encontrei recentemente esse problema na minha caixa do Ubuntu 15.04 de 64 bits. O setupconcomando definiu as fontes para o que eu havia definido dpkg-reconfigure console-setup.

Eu adicionei setupconao meu rc.local, mas isso deixou uma lacuna em que a fonte ainda estava errada (porque o rc.local é executado após a instalação do console), de modo que isso não foi suficiente para mim.

Então, eu decidi ir mais fundo. Eu editei meu /lib/systemd/system/console-setup.servicearquivo e anexei ExecStart=/bin/setupconao final do arquivo. Isso será chamado setupconquando o console estiver configurado, corrigindo as fontes na inicialização sem um intervalo de tempo.

MeetTitan
fonte
2

A solução mais simples que encontrei foi editar /etc/default/console-setuppara definir

FONT="Lat7-Terminus32x16.psf.gz"

e comente tudo o mais, exceto a ACTIVE_CONSOLESlinha.

Você pode aplicar isso imediatamente com setupcon, e ele será aplicado após a reinicialização.

A especificação do nome da fonte em vez dos componentes individuais soluciona a incompatibilidade de nomes descrita por Alan Porter.

David Faure
fonte