chuck

dadv


Choose your future

Choose to sysadmin


Previous Entry Share Next Entry
UTF-8 в консоли FreeBSD
chuck
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" Что бы консоль грузилась сразу в нужном нам разрешении.

  • 1
Спасибо! Очень кстати... :)
какие еще ништаки в связи с этим можем получить? На вскидку...

Не знаю, я чисто для проверки всё это проделал. Мне utf-8 и в иксах-то не нужен, а не только в консоли.

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

User someconservator referenced to your post from UTF-8 в консоли FreeBSD saying: [...] Оригинал взят у в UTF-8 в консоли FreeBSD [...]

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

  • 1
?

Log in

No account? Create an account