Нет символов коробки после изменения шрифта Grub по умолчанию

Мне удалось изменить шрифт Grub по умолчанию, используя

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

, а затем добавив следующую строку в / etc / default / grub:

GRUB_FONT=/boot/grub/grubfont.pf2

И конечно

sudo update-grub

И новый шрифт действительно появился и все (не забудьте выбрать моноширинный шрифт). Но , символы «коробки» (вокруг записей) никогда не отображаются правильно. Я думаю, что большинство шрифтов просто не имеют этого набора символов. Есть ли способ, которым я могу добавить эти символы? Может быть, даже скопировать их из шрифта unicode.pf2 по умолчанию? Если это на самом деле невозможно, знаете ли вы какие-нибудь шрифты, которые имеют эти символы?

Обновление:

Я пробовал много разных вещей, таких как преобразование из ttf в bdf и затем в pf2, и я попытался преобразовать только символы ascii с помощью опции --range=0x0-0x7f, но ни один из них, похоже, не работал идеально. У меня такое ощущение, что это потому, что я генерирую шрифт большего размера, чем по умолчанию, и поэтому глифы по умолчанию использовать нельзя.

Я попытаюсь выяснить, смогу ли я заставить его работать с меньшим размером шрифта, хотя это было одной из причин, по которой я хотел изменить шрифт.

13
задан 24 October 2015 в 20:39

7 ответов

В теории grub-mkfont позволяет передавать несколько шрифтов. В этом случае, если вы можете одновременно передать ссылку на Unifont или другой шрифт с более широким покрытием. Полученный шрифт Grub будет представлять собой комбинацию покрытия обоих входных шрифтов.

Примечание: недавнее улучшение производительности загрузчика шрифтов Grub при загрузке означает, что глифы в файле шрифта Grub должны быть в определенном порядке возрастания, но, к сожалению, изменения не были внесены в утилиту grub-mkfont в то же время время! Теперь это ошибка:

  • Ошибка # 729470 "grub-mkfont выводит шрифты, которые grub не может использовать (символы шрифта не в порядке возрастания: 0 < = 0 ) "

Кстати, если вам интересно, эта ошибка была обнаружена из-за экспериментов по исследованию использования Ubuntu Font Family в разработке Ubuntu Моно-шрифт в меню загрузки Grub и попадание точно в ту же проблему, в которую вы только что попали!

0
ответ дан 24 October 2015 в 20:39

Это можно отобразить правильно, загрузив и шрифт по умолчанию, и нужный шрифт.

Затем установите шрифт на нужный шрифт.

Если символы для поля не найдены, стандартный шрифт, который также загружается, будет действовать по умолчанию, и необходимые символы будут предоставлены.

0
ответ дан 24 October 2015 в 20:39

По сути, вы хотите использовать оператор диапазона, чтобы ограничить количество символов, содержащихся в вашем новом шрифте grub. Если вы не используете оператор диапазона, вы получите все глифы, включая ошибочные или неправильные элементы box, из целевого шрифта.

Например:

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

Сгенерирует шрифт только с символами ASCII, все, что не имеет ваш шрифт, должно изящно распадаться на шрифт по умолчанию, поэтому должны появляться поля и стрелки по умолчанию. Пожалуйста, смотрите этот сайт для получения дополнительной информации:

http://grub.enbug.org/gfxterm

0
ответ дан 24 October 2015 в 20:39

Если вы запустите grub-mkfont с флагом -v , он покажет вам, сколько символов вы получили. Если вы получите больше тысячи, там должен быть пограничный персонаж. Ограничение диапазона только ухудшит ситуацию. Шрифт DejaVuSansMono правильно отображает все символы и содержит более 3000 символов в .pf2. Многие другие шрифты получают правильные стрелки, но не границу.

0
ответ дан 24 October 2015 в 20:39

IIRC Я столкнулся с тем, что вы описываете при использовании всех глифов:


(источник: xrmb2. net )

Может быть, это проблема с grub-mkfont, может быть, это связано со шрифтом, я не знаю. : (

Что сработало для меня:

  1. Использование gbdfed для создания файла 'bdf' из шрифта консоли (например, '/ usr / share / consolefonts / Lat15- VGA16.psf '): Файл> Импорт> Консольный шрифт, затем Файл> Сохранить как ...
  2. Преобразование только символов ASCII с помощью grub-mkfont:

    [ 113]
0
ответ дан 24 October 2015 в 20:39

Я понимаю, что этот поток является древним, но я читал его сегодня и придумал другой ответ, еще не предоставленный..., таким образом, здесь это:

, Если Вы получаете нечетные символы в GRUB после изменяющихся шрифтов, это - потому что те символы не существовали в .ttf файле, Вы раньше создавали .pf2 файл.

символы, используемые для создания границы:

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

другие обычно отсутствующие символы из .ttf файла являются стрелками, которые являются:

  • U+2191
  • U+2193

можно использовать FontForge (программное обеспечение с открытым исходным кодом), чтобы скопировать и вставить те символы от .ttf, которому включали символы в .ttf, который Вы пытаетесь использовать, который не делает. После генерации нового .ttf с FontForge можно использовать личинку-mkfont для создания .pf2 файла, который имеет все соответствующие символы.

0
ответ дан 24 October 2015 в 20:39

использовать шрифт Unicode. Это работало почти нормально (например, arialuni.ttf, отображает все символы по мере необходимости). Моя проблема в небольшом большем интервале символов ... и это происходит с каждым протестированным шрифтом.

0
ответ дан 24 October 2015 в 20:39

Другие вопросы по тегам:

Похожие вопросы: