Tidak ada karakter kotak setelah mengubah font Grub default

13

Saya sudah bisa mengubah font default Grub, dengan menggunakan

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

dan kemudian menambahkan baris berikut ke / etc / default / grub:

GRUB_FONT=/boot/grub/grubfont.pf2

Dan tentu saja

sudo update-grub

Dan font baru memang muncul dan semuanya (ingat untuk memilih font monospace). Namun , karakter "kotak" (di sekitar entri) tidak pernah ditampilkan dengan benar. Saya kira sebagian besar font tidak memiliki set karakter itu. Apakah saya bisa menambahkan karakter ini? Mungkin bahkan menyalinnya dari font unicode.pf2 default? Jika ini tidak benar-benar mungkin, apakah Anda tahu ada font yang punya karakter ini?

Memperbarui:

Saya telah mencoba banyak hal yang berbeda, seperti mengkonversi dari ttf ke bdf dan kemudian ke pf2, dan saya telah mencoba mengubah hanya karakter ascii dengan opsi --range=0x0-0x7f, tetapi tidak satupun dari mereka yang membuatnya bekerja dengan sempurna. Saya merasa itu karena saya menghasilkan font yang lebih besar dari default, dan karena itu mesin terbang default tidak dapat digunakan.

Saya akan mencoba melihat apakah saya dapat membuatnya bekerja dengan ukuran font yang lebih kecil, meskipun ini adalah salah satu alasan saya ingin mengubah font.

LasseValentini
sumber
1
Coba BURG yang sangat bagus dan memiliki banyak tema
Extender
Tapi OP ingin mengubah font - bukan tema GRUB. Tidak relevan.
WindowsEscapist

Jawaban:

8

Secara teori grub-mkfont memungkinkan lewat beberapa font. Dalam hal ini jika Anda dapat mengirimkan tautan ke Unifont atau font lain dengan jangkauan yang lebih luas secara bersamaan. Font Grub yang dihasilkan akan menjadi kombinasi dari cakupan kedua font input.

Catatan: peningkatan kinerja baru-baru ini ke pemuat font waktu boot Grub berarti bahwa mesin terbang dalam file font Grub harus dalam urutan menaik tertentu, tetapi sayangnya perubahan itu tidak dilakukan pada grub-mkfontutilitas pada saat yang sama! Ini sekarang bug:

  • Bug # 729470 "grub-mkfont menampilkan font yang tidak dapat digunakan grub (karakter font tidak dalam urutan naik: 0 <= 0)"

BTW, jika Anda tertarik, bug ini ditemukan karena percobaan dengan menyelidiki penggunaan Keluarga Font Ubuntu dalam pengembangan font Mono Ubuntu dalam menu boot Grub dan mengenai masalah yang persis sama dengan yang baru saja Anda tekan!

dibebani
sumber
1
Saya akan membiarkannya sampai mereka mendapatkan font Mono Ubuntu dimuat ke grub - itulah yang saya cari di tempat pertama :) Terima kasih banyak.
LasseValentini
9

Pada dasarnya yang ingin Anda lakukan adalah menggunakan operator rentang untuk membatasi karakter yang terdapat pada font grub baru Anda. Jika Anda tidak menggunakan operator jangkauan maka Anda akan mendapatkan semua mesin terbang termasuk elemen kotak yang salah atau salah dari font target Anda.

Sebagai contoh:

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

Akan menghasilkan font dengan hanya karakter ASCII, apa pun yang font Anda tidak miliki harus meluruh anggun ke font default sehingga kotak dan panah harus berasal dari default. Silakan lihat situs web ini untuk informasi lebih lanjut:

http://grub.enbug.org/gfxterm

Martin Owens -doctormo-
sumber
1
Itu masuk akal, tapi saya masih memiliki mesin terbang yang aneh, mungkin karena font unicode sama sekali tidak dimuat? Saya akan mencoba untuk mengatur kembali font default, dan coba ini lagi.
LasseValentini
1
Mungkin Anda harus memuat font konsol terlebih dahulu dan kemudian memuat font ttf ascii Anda saja.
Martin Owens -doctormo-
1
Sudahkah Anda mencoba memuat banyak font? font / usr/share/grub/unicode.pf2 unicode harus berisi karakter kotak dan panah yang Anda butuhkan. Anda harus dapat memuat font menggunakan loadfont satu demi satu sampai Anda mendapatkan efek yang diinginkan.
Martin Owens -doctormo-
5

IIRC Saya menemukan apa yang Anda gambarkan saat menggunakan semua mesin terbang:


(sumber: xrmb2.net )

Mungkin itu masalah dengan grub-mkfont, mungkin ada hubungannya dengan font, saya tidak tahu. :(

Apa yang berhasil untuk saya:

  1. Menggunakan gbdfeduntuk menghasilkan file 'bdf' dari font konsol (mis. '/Usr/share/consolefonts/Lat15-VGA16.psf'): File> Impor> Font Konsol, lalu File> Simpan Sebagai ...
  2. Konversi hanya karakter ASCII dengan grub-mkfont:

    grub-mkfont --output=out.pf2 --range=0x0-0x7f out.bdf
htorque
sumber
1
Tampaknya masalah utama saya adalah saya ingin menggunakan font OpenType (ttf), dan bukan font yang dirancang untuk konsol. Saya sudah mencoba yang di atas dengan file ttf, tetapi tidak membantu pada masalah khusus ini. Terima kasih banyak atas solusi untuk masalah serupa :).
LasseValentini
3

Jika Anda menjalankan grub-mkfont dengan flag -v, ia akan menunjukkan berapa banyak mesin terbang yang Anda dapatkan. Jika Anda mendapatkan lebih dari seribu, karakter perbatasan seharusnya ada di sana. Membatasi rentang hanya akan memperburuk keadaan. Font DejaVuSansMono menampilkan semua karakter dengan benar dan memiliki lebih dari 3000 mesin terbang di .pf2. Banyak font lain yang mendapatkan tanda panah dengan benar tetapi tidak pada perbatasan.

daithib8
sumber
2

gunakan font unicode .. Itu bekerja hampir baik-baik saja (seperti arialuni.ttf, menunjukkan semua karakter sesuai kebutuhan) .. Masalah saya adalah dengan spasi karakter yang lebih besar ... dan itu terjadi pada setiap font yang saya uji.

sarathkcm
sumber
1

Anda bisa mendapatkan ini untuk menampilkan dengan benar dengan memuat kedua font default dan font yang diinginkan.

Kemudian, atur font ke font yang diinginkan.

Ketika karakter untuk kotak tidak ditemukan, font biasa yang juga dimuat akan bertindak sebagai default dan karakter yang diperlukan akan disediakan.

mchid
sumber
0

Saya menyadari bahwa utas ini kuno, tetapi saya membacanya hari ini dan menemukan jawaban lain yang belum disediakan ... jadi ini dia:

Jika Anda mendapatkan karakter aneh di GRUB setelah mengubah font, itu karena karakter tersebut tidak ada di file .ttf yang Anda gunakan untuk membuat file .pf2.

Karakter yang digunakan untuk membuat perbatasan adalah:

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

Karakter umum lain yang hilang dari file .ttf adalah panah yaitu:

  • U + 2191
  • U + 2193

Anda dapat menggunakan FontForge (perangkat lunak sumber terbuka) untuk menyalin dan menempelkan karakter-karakter tersebut dari .ttf yang memiliki karakter yang disertakan ke .ttf yang Anda coba gunakan yang tidak. Setelah membuat .ttf baru dengan FontForge, Anda dapat menggunakan grub-mkfont untuk membuat file .pf2 Anda yang memiliki semua karakter yang sesuai.

notorious.dds
sumber