Nenhum caractere de caixa após alterar a fonte padrão do Grub

13

Eu consegui alterar a fonte padrão do Grub usando

grub-mkfont -s 16 -o /boot/grub/grubfont.pf2 font.tty

e, em seguida, adicionando a seguinte linha ao / etc / default / grub:

GRUB_FONT=/boot/grub/grubfont.pf2

E claro

sudo update-grub

E a nova fonte apareceu e tudo (lembre-se de escolher uma fonte monoespaçada). Mas , os caracteres "box" (em volta das entradas) nunca são exibidos corretamente. Eu acho que a maioria das fontes simplesmente não tem esse conjunto de caracteres. Existe alguma maneira que eu possa adicionar esses caracteres? Talvez até copiá-los da fonte padrão unicode.pf2? Se isso não for realmente possível, você conhece alguma fonte que tenha esses caracteres?

Atualização:

Eu tentei muitas coisas diferentes, como converter de ttf para bdf e depois para pf2, e tentei converter apenas os caracteres ascii com a opção --range=0x0-0x7f , mas nenhum deles parecia funcionar perfeitamente . Tenho a sensação de que é porque estou gerando uma fonte maior do que a padrão e, portanto, os glifos padrão não podem ser usados.

Vou tentar ver se consigo trabalhar com um tamanho de fonte menor, embora essa tenha sido uma das razões pelas quais eu quis mudar a fonte.

    
por LasseValentini 07.11.2010 / 00:58

6 respostas

7

Em teoria grub-mkfont permite passar várias fontes. Nesse caso, você pode passar um link para Unifont ou outra fonte com cobertura mais ampla ao mesmo tempo. A fonte Grub produzida será uma combinação da cobertura de ambas as fontes de entrada.

Nota: uma melhoria de desempenho recente no carregador de fontes Grub de inicialização significa que os glifos em um arquivo de fonte Grub devem estar em uma ordem ascendente específica, mas infelizmente a alteração não foi feita no utilitário grub-mkfont ao mesmo tempo Tempo! Isso agora é um bug:

  • Bug # 729470 "o grub-mkfont exibe fontes que o grub não pode usar (caracteres de fonte não estão em ordem crescente: 0 < = 0) "

BTW, se você estiver interessado, este bug foi descoberto por causa de experimentos com a investigação do uso da Família de Fontes do Ubuntu em desenvolvimento Fonte Ubuntu Mono nos menus de inicialização do Grub e atinge exatamente o mesmo problema que você acabou de atingir!

    
por sladen 21.03.2011 / 05:12
9

Basicamente, o que você quer fazer é usar o operador range para limitar os caracteres que sua nova fonte grub contém. Se você não usar o operador de intervalo, receberá todos os glifos, incluindo os elementos de caixa errados ou incorretos da fonte de destino.

Por exemplo:

grub-mkfont -s 16 --range=0x0-0x7f -o /boot/grub/grubfont.pf2 font.tty

Irá gerar uma fonte com apenas caracteres ASCII, qualquer coisa que sua fonte não tenha deve decair graciosamente para a fonte padrão, de modo que as caixas e as setas devam ser o padrão. Por favor, consulte este site para mais informações:

link

    
por Martin Owens -doctormo- 08.11.2010 / 09:56
5

IIRC Eu encontrei o que você descreve ao usar todos os glifos:

Talvez seja um problema com grub-mkfont , talvez tenha a ver com a fonte, não sei. : (

O que funcionou para mim:

  1. Usando gbdfed para gerar o arquivo 'bdf' de uma fonte do console (por exemplo, '/usr/share/consolefonts/Lat15-VGA16.psf'): Arquivo > Importar > Console Font, depois Arquivo > Salvar como ...
  2. Convertendo apenas os caracteres ASCII com grub-mkfont :

    grub-mkfont --output=out.pf2 --range=0x0-0x7f out.bdf
por htorque 07.11.2010 / 01:18
3

Se você executar grub-mkfont com o sinalizador -v , ele mostrará quantos glifos você recebe. Se você obtiver mais de mil, o personagem da borda deve estar lá. Limitar o alcance só piorará as coisas. A fonte DejaVuSansMono exibe todos os caracteres corretamente e possui mais de 3.000 glifos no .pf2. Muitas outras fontes acertam as setas, mas não a borda.

    
por daithib8 02.06.2011 / 21:34
2

use uma fonte unicode .. Isso funcionou quase bem (como arialuni.ttf, mostra todos os caracteres conforme necessário) .. Meu problema é com o pouco maior espaçamento de caracteres ... e isso acontece com todas as fontes que testei.

    
por sarathkcm 06.01.2012 / 22:05
1

Você pode fazer isso para exibir corretamente, carregando ambos a fonte padrão e a fonte desejada.

Em seguida, defina a fonte para a fonte desejada.

Quando os caracteres da caixa não forem encontrados, a fonte regular que também é carregada funcionará como padrão e os caracteres necessários serão fornecidos.

    
por mchid 02.07.2016 / 11:56