dadv: (chuck)
[personal profile] dadv

FreeBSD 8.x и версии новее поддерживают UTF-8 в консоли. Полная отрисовка юникодных шрифтов выполняется в графическом режиме, разумеется (framebuffer).

  • Сам по себе графический режим консоли штатно доступен с версии 3.0 и появился в системе 13 лет назад. Для его поддержки в 8.x нужно в конфигурацию ядра добавить опции:
    options SC_PIXEL_MODE
    options VESA

    Чтобы сделать графический режим консоли дефолтным, нужно в /boot/device.hints к стандартным флагам драйвера syscons 0x100 добавить значение 0x80:

    hint.sc.0.flags="0x180"

  • Для режима UTF-8 тип терминала в консоли меняется с cons25 на xterm (начиная с 9.0 по умолчанию xterm и нужна только вторая опция из двух):
    options         TEKEN_XTERM             # xterm-style terminal emulation
    options         TEKEN_UTF8              # UTF-8 output handling

    Так как теперь консоль будет xterm, в /etc/ttys надо заменить cons25 (или cons25r) на xterm.

  • Установить из портов sysutils/jfbterm, который и будет заниматься отрисовкой шрифтов в графическом режиме консоли.
  • Переменную LANG вместо ru_RU.KOI8-R нужно сделать равной ru_RU.UTF-8 средствами login class или выставив её после перезагрузки и логина в консоли вручную. После логина и проверки, что LANG=ru_RU.UTF-8, запускаем jfbterm. Он у меня перевел экран из дефолтного режима 800x600x32 в режим 1024x768x16 (для проверки режимов есть команды vidcontrol -i adapter </dev/ttyv0 и vidcontrol -i mode </dev/ttyv0). Теперь UTF-8 в консоли отрисовывается юникодными шрифтами.

Без jfbterm отрисовки шрифтов не будет и вместо кириллицы выдаются знаки вопроса.

Update. Вынес из комментария:

в файл /boot/device.hints добавить hint.sc.0.vesa_mode="0x1F0" - нужный нам режим "vidcontrol -i mode </dev/ttyv0" Что бы консоль грузилась сразу в нужном нам разрешении.

Date: 2012-03-16 21:59 (UTC)
From: [identity profile] chin-smoker.livejournal.com
Спасибо! Очень кстати... :)
какие еще ништаки в связи с этим можем получить? На вскидку...

Date: 2012-03-16 22:00 (UTC)
From: [identity profile] dadv.livejournal.com
Не знаю, я чисто для проверки всё это проделал. Мне utf-8 и в иксах-то не нужен, а не только в консоли.

UTF-8 в консоли FreeBSD

Date: 2012-04-03 00:21 (UTC)
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] someconservator referenced to your post from UTF-8 в консоли FreeBSD (http://someconservator.livejournal.com/19197.html) saying: [...] Оригинал взят у в UTF-8 в консоли FreeBSD [...]

Date: 2014-03-03 08:10 (UTC)
From: (Anonymous)
Хорошая статейка.
Единственное что могу дополнить - это надо в файл /boot/device.hints добавить hint.sc.0.vesa_mode="0x1F0" - нужный нам режим "vidcontrol -i mode </dev/ttyv0" Что бы консоль грузилась сразу в нужном нам разрешении.

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios