Acerca das Fontes do Console

Um sistema LFS pode ser usado sem uma área de trabalho gráfica e, a menos ou até que instale o um ambiente gráfico, você terá que trabalhar no console. A maioria, se não todos, dos PCs inicializa com uma fonte 8x16 - qualquer que seja o tamanho atual da tela. Existem umas poucas coisas que você pode fazer para alterar a exibição no console. A maioria delas envolve mudar a fonte, porém a primeira altera a linha de comando usada pelo GRUB.

Configurando uma resolução menor de tela no grub

As telas modernas frequentemente tem muito mais pixeis que as telas usadas no passado. Se a tua tela for da largura de mil e seiscentos (1.600) pixeis, uma fonte 8x16 te dará duzentas (200) colunas de texto - a menos que o teu monitor seja enorme, o texto será pequeno. Uma das maneiras de se contornar isso é a de se dizer ao GRUB e ao núcleo para usar uma resolução menor, tal como 1.024x768 ou 800x600; ou mesmo 640x480. Mesmo se a tua tela não tiver uma proporção de aspecto de 4:3, isso deveria funcionar.

Se você tiver seguido o livro LFS para configurar teu núcleo com SimpleDRM habilitado e o controlador dedicado de núcleo para tua GPU (por exemplo, i915 ou AMDGPU) for construído como um módulo de núcleo, antes que o controlador dedicado seja carregado, o controlador SimpleDRM será usado para exibição. O controlador SimpleDRM em si não consegue mudar a resolução, de forma que você precisa dizer ao GRUB para configurar a resolução adequada antes de carregar o núcleo modificando a linha set gfxpayload=1024x768x32 no arquivo grub.cfg.

Quando o controlador dedicado da GPU começa a funcionar (tão logo que o núcleo ou o módulo seja carregado, dependendo se você o tiver construído como parte da imagem do núcleo ou como um módulo), ele tira o controle de exibição do controlador SimpleDRM e muda a resolução de exibição. Para fazê-lo usar a resolução que você quer, edite novamente o arquivo grub.cfg para inserir um parâmetro video= na linha de comando do núcleo, por exemplo root=/dev/sda2 video=DP-1:800x600 ro. Observe que é necessário especificar explicitamente o nome de saída como DP-1 aqui: um parâmetro video= sem um nome de saída é reconhecido somente pelo GRUB (como um apelido obsoleto de set gfxpayload=) e completamente ignorado pelo núcleo. O conteúdo de /sys/class/drm/ pode ser útil para descobrir o nome da saída gerada; por exemplo, o subdiretório card1-DP-1 indica uma saída gerada chamada DP-1. Para alinhar o nome da saída gerada com teu monitor, instale o utilitário edid-decode e execute o comando edid-decode /sys/class/drm/card<ID da placa>-<nome da saída gerada>/edid para mostrar as informações (incluindo o nome do modelo e as resoluções suportadas) acerca do monitor conectado na saída.

Se decidir que deseja fazer isso, você pode então (como o(a) usuário(a) root) editar /boot/grub/grub.cfg.

Usando as fontes psf padrão

No LFS o pacote kbd é usado. As fontes que ele fornece são as Fontes de Tela do PC, geralmente chamadas de PSF, e elas foram instaladas no /usr/share/consolefonts. Onde essas incluem uma tabela de mapeamento Unicode, o sufixo do arquivo frequentemente é mudado para .psfu, apesar de pacotes tais como o terminus-font (veja-se abaixo) não adicionarem o 'u'. Essas fontes geralmente são comprimidas com o gzip para economizar espaço, porém isso não é essencial.

As telas de texto iniciais do PC tinham oito (08) cores; ou dezesseis (16) cores se as versões brilhantes das oito (08) cores originais fossem usadas. Uma fonte PSF pode incluir até duzentos e cinquenta e seis (256) caracteres (tecnicamente, glifos) enquanto permite dezesseis (16) cores; ou até quinhentos e doze (512) caracteres (caso no qual, as cores brilhantes não estarão disponíveis). Claramente, essas fontes de console não podem ser usadas para exibir texto CJK - isso precisaria de centenas de glifos disponíveis.

Algumas fontes no kbd conseguem cobrir mais que quinhentos e doze (512) pontos de código ('caracteres'), com graus variantes de fidelidade: Unicode contém vários pontos de código de espaço em branco os quais podem todos serem mapeados para um espaço; variedades de traços podem ser mapeados para um sinal de menos; aspas inteligentes podem ser mapeadas para as aspas ASCII regulares em vez de para o que é usado para "ponto de código não presente ou inválido"; e aquelas letras cirílicas ou gregas que se parecem com letras latinas podem ser mapeadas nelas, de forma que 'A' também pode cumprir o dever para o A cirílico e grego Alfa; e 'P' também pode cumprir o dever para o cirílico ER e grego RHO. Infelizmente, onde uma fonte tenha sido criada a partir de um arquivo BDF (o método no terminus e no console-setup do Debian) tal mapeamento dos pontos de código adicionais em um glifo existente nem sempre é feito, apesar das fontes ter-vXXn do terminus fazerem isso bem.

Existem mais que cento e vinte (120) combinações de fonte e tamanho no kbd: frequentemente uma fonte é fornecida em vários tamanhos de caracteres; e, de vez em quando, as variedades cobrem subconjuntos diferentes do Unicode. A maioria é da largura de oito (08) pixeis, em alturas de oito (08) até dezesseis (16) pixeis; porém, existem umas poucas que são da largura de nove (09) pixeis; algumas outras são 12x22; e mesmo uma, (latarcyrheb-sun32.psfu), que foi escalada até 16x32. Usar uma fonte maior é outra maneira de tornar o texto mais fácil de ler em uma tela grande.

Testando fontes diferentes

Você consegue testar as fontes como um(a) usuário(a) normal. Se tiver uma fonte que não tenha sido instalada, [então] você consegue carregá-la com:

setfont /caminho/para/sua_fonte.ext

Para as fontes já instaladas você precisa somente do nome; assim, usando gr737a-9x16.psfu.gz como um exemplo:

setfont gr737a-9x16

Para ver os glifos na fonte, use:

showconsolefont

Se a fonte aparentar como se pudesse ser útil, você pode então ir em frente para testá-la mais minuciosamente.

Quando você encontrar uma fonte que desejar usar, como o(a) usuário(a) root edite o /etc/sysconfig/console conforme descrito na seção 9.6.5 do LFS ../../../../lfs/view/12.3/chapter09/usage.html .

Para fontes não fornecidas com o pacote kbd, você precisará opcionalmente comprimi-la(s) com o gzip e então instalá-la(s) como o(a) usuário(a) root.

Editando fontes usando o psf-tools

Apesar de algumas fontes de console serem criadas a partir de arquivos "BDF", que é um formato de texto com valores hexadecimais para os pixeis em cada linha do caractere, existem ferramentas mais modernas disponíveis para editar fontes "psf". O pacote psftools te permite despejar uma fonte para uma representação de texto com um travessão para um pixel que esteja desligado (preto); e uma cerquilha para um pixel que esteja ligado (branco). Você consegue então editar o arquivo de texto para adicionar mais caracteres; ou remodelá-los; ou mapear pontos extras de código para eles; e, então, criar uma fonte "psf" nova com as suas mudanças.

Usando fontes a partir da fonte Terminus

O pacote Fonte Terminus fornece fontes de mapa de bits de largura fixa projetadas para trabalho longo (oito (08) horas ou mais por dia) com computadores. Sob "Character variants" naquela página está uma lista de remendos (no diretório alt/). Se estiver usando um navegador gráfico para olhar para aquela página, [então] você consegue ver o que os remendos fazem; por exemplo, "ll2" torna o "l" mais visivelmente diferente de "i" e "1".

Por padrão, terminus-fonts tentará criar vários tipos de fontes e falhará se bdftopcf oriundo do Aplicativos do Xorg não tiver sido instalado. O script configure somente é realmente útil se você for em frente para instalar todas as fontes (console e mapa de bits do X11) nos diretórios corretos, como em uma distribuição. Para construir somente as fontes PSF e as dependências delas, execute:

make psf

Isso criará mais que duzentas e quarenta (240) fontes ter-*.psf. O sufixo 'b' indica brilhante; 'n' indica normal. Você consegue então testá-las para ver se alguma se adéqua às suas exigências. A menos que esteja criando uma distribuição, parece não fazer sentido instalá-las todas.

Como um exemplo, para instalar a última dessas fontes, você pode gzipá-la e, então, como o(a) usuário(a) root:

install -v -m644 ter-v32n.psf.gz /usr/share/consolefonts