Nach dem Ändern der Standard-Grub-Schriftart werden keine Box-Zeichen angezeigt

13

Ich konnte die Standardschriftart von Grub mithilfe von ändern

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

und füge dann die folgende Zeile zu / etc / default / grub hinzu:

GRUB_FONT=/boot/grub/grubfont.pf2

Und natürlich

sudo update-grub

Und die neue Schriftart wurde angezeigt und alles (denken Sie daran, eine monospaced Schriftart zu wählen). Aber die „Box“ Zeichen (rund um die Einträge) nie richtig angezeigt. Ich denke, die meisten Schriftarten haben einfach keinen Zeichensatz. Kann ich diese Zeichen auf irgendeine Weise hinzufügen? Vielleicht sogar aus der Standardschrift unicode.pf2 kopieren? Wenn dies nicht möglich ist, kennen Sie Schriftarten mit diesen Zeichen?

Aktualisieren:

Ich habe viele verschiedene Dinge ausprobiert, wie das Konvertieren von ttf nach bdf und dann nach pf2, und ich habe versucht, nur die ASCII-Zeichen mit der Option zu konvertieren --range=0x0-0x7f, aber keine davon schien perfekt zu funktionieren. Ich habe das Gefühl, dass dies daran liegt, dass ich eine größere Schriftart als die Standardschrift generiere und die Standard-Glyphen daher nicht verwendet werden können.

Ich werde versuchen zu sehen, ob ich es mit einer kleineren Schriftgröße zum Laufen bringen kann, obwohl dies einer der Gründe war, warum ich die Schrift ändern wollte.

LasseValentini
quelle
1
Probieren Sie BURG, es ist sehr schön und hat viele Themen
Extender
Aber OP möchte die Schriftart ändern - nicht das Thema GRUB. Irrelevant.
WindowsEscapist

Antworten:

8

Theoretisch grub-mkfont können mehrere Schriftarten übergeben werden. In diesem Fall, wenn Sie gleichzeitig einen Link zu Unifont oder einer anderen Schriftart mit größerer Abdeckung übergeben können. Die erzeugte Grub-Schriftart ist eine Kombination aus der Abdeckung beider Eingabeschriftarten.

Hinweis: Eine kürzliche Leistungsverbesserung beim Laden von Grub-Schriftarten während des Startvorgangs hat zur Folge, dass die Glyphen in einer Grub-Schriftdatei in einer bestimmten aufsteigenden Reihenfolge angezeigt werden müssen. Leider wurde die Änderung nicht gleichzeitig am grub-mkfontDienstprogramm vorgenommen! Dies ist jetzt ein Fehler:

  • Fehler # 729470 "grub-mkfont gibt Schriften aus, die grub nicht verwenden kann (Schriftzeichen nicht in aufsteigender Reihenfolge: 0 <= 0)"

Übrigens, wenn Sie interessiert sind, wurde dieser Fehler aufgrund von Experimenten entdeckt, bei denen die Verwendung der Ubuntu-Schriftfamilie in Ubuntu Mono in den Grub-Startmenüs untersucht wurde und genau dasselbe Problem auftrat, das Sie gerade getroffen haben!

sladen
quelle
1
Ich lasse es ruhen, bis sie die Ubuntu Mono-Schrift in Grub geladen haben - danach habe ich sowieso zuerst gesucht :) Vielen Dank.
LasseValentini
9

Grundsätzlich möchten Sie den Bereichsoperator verwenden, um die Zeichen zu begrenzen, die Ihre neue Grub-Schriftart enthält. Wenn Sie den Bereichsoperator nicht verwenden, erhalten Sie alle Glyphen einschließlich der fehlerhaften oder falschen Feldelemente aus Ihrer Zielschriftart.

Beispielsweise:

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

Wird eine Schriftart mit nur ASCII-Zeichen generiert, sollte alles, was Ihre Schriftart nicht enthält, ordnungsgemäß in die Standardschrift verwandelt werden, sodass Felder und Pfeile aus der Standardschrift stammen sollten. Weitere Informationen finden Sie auf dieser Website:

http://grub.enbug.org/gfxterm

Martin Owens -doctormo-
quelle
1
Das würde Sinn machen, aber ich habe immer noch die seltsamen Glyphen, vielleicht weil die Unicode-Schriftart überhaupt nicht geladen ist? Ich werde versuchen, die Standardschrift zurückzusetzen, und es erneut versuchen.
LasseValentini
1
Vielleicht solltest du zuerst eine Konsolenschrift laden und dann deine ttf ascii only Schrift laden.
Martin Owens -doctormo-
1
Haben Sie versucht, mehrere Schriftarten zu laden? Die Unicode-Schriftart /usr/share/grub/unicode.pf2 sollte die Box- und Pfeilzeichen enthalten, die Sie benötigen. Sie sollten in der Lage sein, die Schriftarten mit loadfont nacheinander zu laden, bis Sie den gewünschten Effekt erzielen.
Martin Owens -doctormo-
5

IIRC Ich bin auf das gestoßen, was Sie beschreiben, wenn Sie alle Glyphen verwenden:


(Quelle: xrmb2.net )

Vielleicht ist es ein Problem mit grub-mkfont, vielleicht hat es mit der Schriftart zu tun, ich weiß es nicht. :(

Was hat bei mir funktioniert:

  1. So gbdfedgenerieren Sie die 'bdf'-Datei aus einer Konsolenschriftart (z. B.' /usr/share/consolefonts/Lat15-VGA16.psf '): Datei> Importieren> Konsolenschriftart, dann Datei> Speichern unter ...
  2. Nur die ASCII-Zeichen konvertieren mit grub-mkfont:

    grub-mkfont --output=out.pf2 --range=0x0-0x7f out.bdf
Drehmoment
quelle
1
Es scheint, dass mein Hauptproblem darin besteht, dass ich eine OpenType-Schriftart (ttf) und keine für Konsolen entwickelte Schriftart verwenden möchte. Ich habe das oben genannte mit einer ttf-Datei versucht, aber es hat bei diesem speziellen Problem nicht geholfen. Vielen Dank für die Lösung eines ähnlichen Problems :).
LasseValentini
3

Wenn Sie grub-mkfont mit der Option -v ausführen, wird angezeigt , wie viele Glyphen Sie erhalten. Wenn du mehr als tausend bekommst, sollte der Grenzcharakter drin sein. Die Einschränkung der Reichweite wird die Situation nur verschlimmern. Die DejaVuSansMono-Schriftart zeigt alle Zeichen korrekt an und enthält über 3000 Glyphen in der PF2-Datei. Bei vielen anderen Schriftarten werden die Pfeile richtig angezeigt, der Rand jedoch nicht.

daithib8
quelle
2

Verwenden Sie eine Unicode-Schriftart. Das hat fast einwandfrei funktioniert (z. B. arialuni.ttf, zeigt alle erforderlichen Zeichen an). Mein Problem ist der geringfügig größere Zeichenabstand. Dies passiert bei jeder getesteten Schriftart.

sarathkcm
quelle
1

Sie können dies erreichen, indem Sie sowohl die Standardschrift als auch die gewünschte Schrift laden .

Stellen Sie dann die Schriftart auf die gewünschte Schriftart ein.

Wenn die Zeichen für das Feld nicht gefunden werden, wird die ebenfalls geladene reguläre Schriftart als Standard verwendet und die erforderlichen Zeichen werden bereitgestellt.

mchid
quelle
0

Mir ist klar, dass dieser Thread uralt ist, aber ich habe ihn heute gelesen und eine andere Antwort gefunden, die noch nicht bereitgestellt wurde ... also hier ist er:

Wenn in GRUB nach dem Ändern der Schriftarten ungerade Zeichen angezeigt werden, sind diese Zeichen in der .ttf-Datei, die Sie zum Erstellen der .pf2-Datei verwendet haben, nicht vorhanden.

Die Zeichen, die zum Erstellen des Rahmens verwendet werden, sind:

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

Die anderen häufig fehlenden Zeichen in einer .ttf-Datei sind die folgenden Pfeile:

  • U + 2191
  • U + 2193

Sie können FontForge (Open Source-Software) verwenden, um die Zeichen aus einer .ttf-Datei zu kopieren und einzufügen, die die Zeichen enthält, die in der .ttf-Datei enthalten sind, die Sie verwenden möchten. Nachdem Sie mit FontForge eine neue .ttf-Datei erstellt haben, können Sie mit grub-mkfont eine .pf2-Datei mit allen entsprechenden Zeichen erstellen.

notorious.dds
quelle