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.
Jawaban:
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-mkfont
utilitas pada saat yang sama! Ini sekarang bug: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!
sumber
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
sumber
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:
gbdfed
untuk menghasilkan file 'bdf' dari font konsol (mis. '/Usr/share/consolefonts/Lat15-VGA16.psf'): File> Impor> Font Konsol, lalu File> Simpan Sebagai ...grub-mkfont
:grub-mkfont --output=out.pf2 --range=0x0-0x7f out.bdf
sumber
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.
sumber
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.
sumber
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.
sumber
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:
Karakter umum lain yang hilang dari file .ttf adalah panah yaitu:
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.
sumber