Nessun carattere di casella dopo aver modificato il font Grub predefinito


13

Sono stato in grado di cambiare il carattere predefinito di Grub, usando

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

e quindi aggiungendo la seguente riga a / etc / default / grub:

GRUB_FONT=/boot/grub/grubfont.pf2

E naturalmente

sudo update-grub

E il nuovo carattere è apparso e tutto (ricordati di scegliere un carattere a spaziatura fissa). Tuttavia , i caratteri "box" (attorno alle voci) non vengono mai visualizzati correttamente. Immagino che la maggior parte dei caratteri semplicemente non abbia quel set di caratteri. C'è un modo in cui posso aggiungere questi personaggi? Forse anche copiarli dal carattere unicode.pf2 predefinito? Se questo non è davvero possibile, conosci qualche carattere che ha questi personaggi?

Aggiornare:

Ho provato molte cose diverse, come la conversione da ttf a bdf e poi a pf2, e ho provato a convertire solo i caratteri ASCII con l'opzione --range=0x0-0x7f, ma nessuno di loro sembrava farlo funzionare perfettamente. Ho la sensazione che sia perché sto generando un carattere più grande di quello predefinito e quindi i glifi predefiniti non possono essere utilizzati.

Proverò a vedere se riesco a farlo funzionare con una dimensione del carattere più piccola, anche se questo è stato uno dei motivi per cui volevo cambiare il carattere.


1
Prova BURG è molto carino e ha molti temi
Extender

Ma OP vuole cambiare il carattere, non il tema GRUB. Irrilevante.
WindowsEscapist

Risposte:


8

In teoria grub-mkfont consente il passaggio di più caratteri. In questo caso, se è possibile passare un collegamento a Unifont o un altro carattere con una copertura più ampia contemporaneamente. Il carattere Grub prodotto sarà una combinazione della copertura di entrambi i caratteri di input.

Nota: un recente miglioramento delle prestazioni del caricatore di font Grub all'avvio significa che i glifi in un file di font Grub devono essere in un ordine crescente specifico, ma sfortunatamente la modifica non è stata apportata grub-mkfontall'utilità allo stesso tempo! Questo è ora un bug:

  • Bug # 729470 "grub-mkfont restituisce caratteri che grub non può usare (caratteri non in ordine crescente: 0 <= 0)"

A proposito, se sei interessato, questo errore è stato scoperto a causa di esperimenti con l'indagine sull'uso del carattere Ubuntu Mono in sviluppo della famiglia di caratteri Ubuntu nei menu di avvio di Grub e ha colpito esattamente lo stesso problema che hai appena riscontrato!


1
Lascerò riposare fino a quando non avranno caricato il carattere Ubuntu Mono in grub - questo è quello che stavo cercando in primo luogo :) Grazie mille.
LasseValentini,

9

Fondamentalmente quello che vuoi fare è usare l'operatore di intervallo per limitare i caratteri che contiene il tuo nuovo font grub. Se non usi l'operatore di intervallo, otterrai tutti i glifi, inclusi gli elementi di casella errati o errati dal tuo carattere di destinazione.

Per esempio:

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

Genererà un carattere con solo caratteri ASCII, tutto ciò che il tuo carattere non ha dovrebbe decadere con garbo al carattere predefinito, quindi caselle e frecce dovrebbero provenire dal valore predefinito. Si prega di consultare questo sito Web per ulteriori informazioni:

http://grub.enbug.org/gfxterm


1
Ciò avrebbe senso, ma sto ancora avendo gli strani glifi, forse perché il carattere unicode non è caricato affatto? Proverò a ripristinare il carattere predefinito e riprovare.
LasseValentini,

1
Forse dovresti prima caricare un carattere console e poi caricare solo il carattere ttf ascii.
Martin Owens -doctormo-

1
Hai provato a caricare più caratteri? il carattere unicode /usr/share/grub/unicode.pf2 deve contenere la casella e i caratteri freccia necessari. Dovresti essere in grado di caricare i caratteri usando loadfont uno dopo l'altro fino a ottenere l'effetto desiderato.
Martin Owens -ottoco-

5

IIRC Mi sono imbattuto in ciò che descrivi quando usi tutti i glifi:


(fonte: xrmb2.net )

Forse è un problema grub-mkfont, forse ha a che fare con il carattere, non lo so. :(

Cosa ha funzionato per me:

  1. Utilizzo gbdfedper generare il file 'bdf' da un font della console (es. '/Usr/share/consolefonts/Lat15-VGA16.psf'): File> Importa> Font console, quindi File> Salva con nome ...
  2. Convertire solo i caratteri ASCII con grub-mkfont:

    grub-mkfont --output=out.pf2 --range=0x0-0x7f out.bdf

1
Sembra che il mio problema principale sia che voglio usare un font OpenType (ttf) e non un font progettato per console. Ho provato quanto sopra con un file ttf, ma non ha aiutato su questo particolare problema. Grazie mille per la soluzione a un problema simile però :).
LasseValentini,

3

Se esegui grub-mkfont con il flag -v ti mostrerà quanti glifi ottieni. Se ne ottieni più di mille, il personaggio di confine dovrebbe essere lì dentro. Limitare la portata non farà che peggiorare le cose. Il font DejaVuSansMono mostra correttamente tutti i caratteri e ha oltre 3000 glifi in .pf2. Molti altri caratteri ottengono le frecce giuste ma non il bordo.


2

usa un carattere unicode .. Funzionava quasi bene (come arialuni.ttf, mostra tutti i caratteri come richiesto) .. Il mio problema è con la spaziatura dei caratteri un po 'più grande ... e questo succede con ogni carattere che ho testato.


1

Puoi farlo visualizzare correttamente caricando sia il carattere predefinito che il carattere desiderato.

Quindi, imposta il carattere sul carattere desiderato.

Quando i caratteri per la casella non vengono trovati, il carattere normale che viene anche caricato fungerà da predefinito e verranno forniti i caratteri necessari.


0

Mi rendo conto che questo thread è antico, ma lo stavo leggendo oggi e ho trovato un'altra risposta non ancora fornita ... quindi eccola:

Se ottieni caratteri strani in GRUB dopo aver cambiato i caratteri, è perché quei caratteri non esistevano nel file .ttf che hai usato per creare il file .pf2.

I caratteri utilizzati per creare il bordo sono:

  • U + 2501
  • U + 2503
  • U + 250F
  • U + 2513
  • U + 2517
  • U + 251b

Gli altri caratteri comunemente mancanti da un file .ttf sono le frecce che sono:

  • U + 2191
  • U + 2193

È possibile utilizzare FontForge (software open source) per copiare e incollare quei caratteri da un .ttf che ha i caratteri inclusi nel .ttf che si sta tentando di utilizzare, ma che non lo è. Dopo aver generato un nuovo .ttf con FontForge puoi usare grub-mkfont per creare il tuo file .pf2 che contiene tutti i caratteri appropriati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.