Sin caracteres de cuadro después de cambiar la fuente predeterminada de Grub


13

He podido cambiar la fuente predeterminada de Grub, usando

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

y luego agregando la siguiente línea a / etc / default / grub:

GRUB_FONT=/boot/grub/grubfont.pf2

Y por supuesto

sudo update-grub

Y la nueva fuente apareció y todo (recuerde elegir una fuente monoespaciada). Pero , los caracteres de "cuadro" (alrededor de las entradas) nunca se muestran correctamente. Supongo que la mayoría de las fuentes simplemente no tienen ese conjunto de caracteres. ¿Hay alguna manera de agregar estos caracteres? ¿Quizás incluso copiarlos de la fuente predeterminada unicode.pf2? Si esto no es realmente posible, ¿conoce alguna fuente que tenga estos caracteres?

Actualizar:

He intentado muchas cosas diferentes, como convertir de ttf a bdf y luego a pf2, y he intentado convertir solo los caracteres ascii con la opción --range=0x0-0x7f, pero ninguno de ellos parecía hacer que funcionara perfectamente. Tengo la sensación de que es porque estoy generando una fuente más grande que la predeterminada y, por lo tanto, los glifos predeterminados no se pueden usar.

Intentaré ver si puedo hacer que funcione con un tamaño de fuente más pequeño, aunque esta fue una de las razones por las que quería cambiar la fuente.


1
Prueba BURG es muy agradable y tiene muchos temas
Extender el

Pero OP quiere cambiar la fuente, no el tema GRUB. Irrelevante.
WindowsEscapist

Respuestas:


8

En teoría grub-mkfont permite pasar múltiples fuentes. En este caso, si puede pasar un enlace a Unifont u otra fuente con una cobertura más amplia al mismo tiempo. La fuente Grub producida será una combinación de la cobertura de ambas fuentes de entrada.

Nota: una mejora reciente en el rendimiento del cargador de fuentes de tiempo de arranque Grub significa que los glifos en un archivo de fuentes Grub deben estar en un orden ascendente específico, ¡pero desafortunadamente el cambio no se realizó en la grub-mkfontutilidad al mismo tiempo! Esto ahora es un error:

  • Error # 729470 "grub-mkfont genera fuentes que grub no puede usar (caracteres de fuente que no están en orden ascendente: 0 <= 0)"

Por cierto, si está interesado, este error se descubrió debido a los experimentos que investigaron el uso de la fuente Ubuntu Mono de Ubuntu Font Family en desarrollo en los menús de arranque de Grub y se encontró exactamente el mismo problema que acaba de encontrar.


1
Lo dejaré descansar hasta que carguen la fuente Ubuntu Mono en grub; de todos modos, eso era lo que buscaba en primer lugar :) Muchas gracias.
LasseValentini

9

Básicamente, lo que desea hacer es utilizar el operador de rango para limitar los caracteres que contiene su nueva fuente de grub. Si no utiliza el operador de rango, obtendrá todos los glifos, incluidos los elementos de cuadro erróneos o incorrectos de su fuente de destino.

Por ejemplo:

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

Generará una fuente con solo caracteres ASCII, cualquier cosa que no tenga su fuente debe decaer con gracia a la fuente predeterminada, por lo que los cuadros y las flechas deben venir del predeterminado. Consulte este sitio web para obtener más información:

http://grub.enbug.org/gfxterm


1
Eso tendría sentido, pero todavía tengo glifos extraños, ¿tal vez porque la fuente Unicode no está cargada? Intentaré volver a configurar la fuente predeterminada y volveré a intentarlo.
LasseValentini

1
Tal vez debería cargar una fuente de consola primero y luego cargar su fuente ttf ascii only.
Martin Owens -doctormo-

1
¿Has intentado cargar varias fuentes? la fuente unicode /usr/share/grub/unicode.pf2 debe contener el cuadro y los caracteres de flecha que necesita. Debería poder cargar las fuentes usando loadfont una tras otra hasta que obtenga el efecto deseado.
Martin Owens -doctormo-

5

IIRC Me encontré con lo que usted describe cuando usa todos los glifos:


(fuente: xrmb2.net )

Tal vez sea un problema grub-mkfont, tal vez tenga que ver con la fuente, no lo sé. :(

Lo que funcionó para mí:

  1. Utilizando gbdfedpara generar el archivo 'bdf' desde una fuente de consola (p. Ej. '/Usr/share/consolefonts/Lat15-VGA16.psf'): Archivo> Importar> Fuente de consola, luego Archivo> Guardar como ...
  2. Convirtiendo solo los caracteres ASCII con grub-mkfont:

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

1
Parece que mi principal problema es que quiero usar una fuente OpenType (ttf), y no una fuente diseñada para consolas. He intentado lo anterior con un archivo ttf, pero no ayudó en este problema en particular. Muchas gracias por una solución a un problema similar :).
LasseValentini

3

Si ejecuta grub-mkfont con el indicador -v , le mostrará cuántos glifos obtiene. Si obtienes más de mil, el personaje de la frontera debería estar allí. Limitar el rango solo empeorará las cosas. La fuente DejaVuSansMono muestra todos los caracteres correctamente y tiene más de 3000 glifos en el .pf2. Muchas otras fuentes tienen las flechas correctas pero no el borde.


2

use una fuente Unicode ... Eso funcionó casi bien (como arialuni.ttf, muestra todos los caracteres según sea necesario) ... Mi problema es con el pequeño espacio entre caracteres más grande ... y eso sucede con cada fuente que probé.


1

Puede hacer que esto se muestre correctamente cargando tanto la fuente predeterminada como la fuente deseada.

Luego, configure la fuente a la fuente deseada.

Cuando no se encuentran los caracteres para el cuadro, la fuente normal que también se carga actuará como predeterminada y se proporcionarán los caracteres necesarios.


0

Me doy cuenta de que este hilo es antiguo, pero lo estaba leyendo hoy y se me ocurrió otra respuesta aún no proporcionada ... así que aquí está:

Si obtiene caracteres extraños en GRUB después de cambiar las fuentes, es porque esos caracteres no existían en el archivo .ttf que utilizó para crear el archivo .pf2.

Los caracteres utilizados para crear el borde son:

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

Los otros caracteres que faltan comúnmente en un archivo .ttf son las flechas que son:

  • U + 2191
  • U + 2193

Puede usar FontForge (software de código abierto) para copiar y pegar esos caracteres de un .ttf que tiene los caracteres incluidos en el .ttf que está tratando de usar y que no. Después de generar un nuevo .ttf con FontForge puede usar grub-mkfont para crear su archivo .pf2 que tenga todos los caracteres apropiados.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.