Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> настройка —> UTF-8 console

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

Автор: Dominator.


Началось все с того, что потребовалась работа с ntfs и ext разделами под FreeBSD. Иксы использовать не хотелось - жрут много ресурсов. Полазил по гуглу, обработал информацию и решил написать статью о том, как я прикрутил UTF-8 в консоли FreeBSD.

Итак, приступим

Способ 1:

Делаем:
make -C /usr/ports/sysutils/jfbterm install clean

Собираем со всеми опциями.

Собрали, выполняем:
cap_mkdb /usr/share/misc/termcap

В файле /usr/local/etc/jfbterm.conf ищем строчку:
encoding: locale

Меняем ее на:
encoding: UTF-8

Ищем:
# UTF-8

Раскомменчиваем данную секцию, у меня оказалась раскомменченной строчка:
encoding.UTF-8: UTF-8,iso10646.1

Выставляем локаль(для /bin/csh):
setenv LANG ru_RU.UTF-8

Запускаем:
jfbterm

Наслаждаемся. Пользуйтесь ;-)

UPD 16.02.2011

Способ 2:

cd /usr/ports/sysutils/screen/ && make install clean

Ставим локаль и добавляем запуск screen в ~/.profile (для sh)

   # экспортируем локаль и тип терминала
   export LANG=ru_RU.UTF-8 TERM=xterm
   screen -wipe
  # запускаем сессию 'desktop', если уже не запущена
   if ! screen -S desktop -ls | fgrep -q desktop; then
      screen -S desktop -dm
   fi
   # подсоединяемся к сессии 'desktop'
   if vidcontrol -i adapter >&- 2>&-
   then
      # в syscons используем локаль koi8-r
      LC_CTYPE=ru_RU.KOI8-R TERM=cons25r \
      exec screen -x desktop
   else
      # в X'ах используем дефолтную локаль
      exec screen -x desktop
   fi

UPD 21.01.13:
На FreeBSD amd64 сделали поддержку vesa. Проверено на FreeBSD 9.0 amd64

UPD для FreeBSD 10 и выше юникод поддерживается из коробки

В /boot/loader.conf надо добавить строчку:
kern.vty=vt

В /etc/login.conf надо добавить:
rus-utf|RUS UTF-8:\
	:charset=UTF-8:\
	:lang=ru_RU.UTF-8:\
	:tc=default:

После выполнить:
cap_mkdb /etc/login.conf
pw usermod <username> -L rus-utf



размещено: 2010-12-06,
последнее обновление: 2016-03-25,
автор: Dominator


Vladimir, 2011-01-24 в 7:30:47

Если лениво руками каждый раз при входе на терминал набирать jfbterm, автозапуск в csh можно прикрутить так: в файл пользователя ~/.cshrc добавить следующий цикл
foreach t (\"ttyv0\" ....)
   if ($tty == $t) break
       jfbterm
       logout
   endif
end

где ... соответственно \"ttyv1\" \"ttyv2\" и т.д. сколько надо до 7

jeweller, 2011-01-27 в 16:36:50

под консолью при запуске например mc пишет что не найден jfbterm-color
в эмуляторе терминала по ссш цепляюсь и под тем же рутом mc запускается в том же jfbterm

Dominator, 2011-01-28 в 6:56:01

У меня все пашет. Кому не нравится jfbterm может использовать screen

jeweller, 2011-01-28 в 12:12:00

в миднайт коммандере под jfbterm не работают клавишу page up page down :)) вероятно надо прописать их значения в termcap?

jeweller , 2011-01-28 в 12:21:26

а не гоню:)) не работает только клавише end.
за статью спасибо

jeweller, 2011-01-31 в 11:43:19

кстати при использовании jfbterm к этой консоли уже через watch -cW ttyvx не подключишься..

Dominator, 2011-02-09 в 20:36:00

На днях допишу про юникод с утилитой screen

skeletor, 2011-03-29 в 17:58:39

Интересно, как поведёт оно себя в single mode?

Dominator, 2011-03-29 в 18:08:56

Монтируешь /usr и запускаешь

Salimk, 2011-06-27 в 10:52:00

я у себя сделал так и пашет норм
/etc/login.conf:
russian-utf8|Russian UTF-8 Users Accounts:\
 :charset=UTF-8:\
 :lang=ru_RU.UTF-8:\
 :lc_all=ru_RU.UTF-8:\
 :tc=default:

# cap_mkdb /etc/login.conf
/etc/profile:
MM_CHARSET=UTF-8; export MM_CHARSET


# pw usermod Юзвер -L russian-utf8

k-nike, 2013-01-21 в 8:34:15

Что дает поддержка vesa?

Dominator, 2013-01-21 в 10:31:24

Поддержка vesa дает возможность запуска jfbterm. На FreeBSD amd64 с vesa раньше были проблемы (на 8.0-RELEASE amd64 jfbterm не собирался, сетуя на то, что vesa доступна только для i386), недавно эти проблемы решили.

oklas, 2016-03-20 в 9:14:57

Для чего опции ядра TEKEN_UTF8 и TEKEN_XTERM?
Что будет или не будет с utf8 если их не задать?

oklas, 2016-03-20 в 9:45:17

Нашлось: Enable experimental features of the syscons terminal emulator (teken). В общем опции для терминал эмулятора teken. А что это такое? Зачем оно надо? Где ещё используется?

oklas, 2016-03-20 в 9:56:52

Встречается в инструкциях некоторых авторов по настройке utf8, что дескать надо в ядре устанавливать. Но похоже это не надо, это что-то похоже устарелое что-ли? Всё что делает, так это только конвертацию некоторых символов в восьмибитные по таблице, или заменяет на вопросики, в этом самом teken и больше ничего.

oklas, 2016-03-20 в 10:16:03

Для физического монитора похоже.

oklas, 2016-03-20 в 10:30:33

Это я по поводу TEKEN_UTF8 в сорцах 9.3 посмотрел, а по поводу TEKEN_XTERM здесь написано: https://wiki.freebsd.org/SysconsUnicodeProject

Dominator, 2016-03-25 в 14:38:37

oklas, у меня TEKEN не завелся, да и времени было не так много.
А с переходом на десятку необходимость в оном отпала - KMS устраивает на 100%



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0372 секунд
Из них PHP: 22%; SQL: 78%; Число SQL-запросов: 76 шт.
У Вас отключено GZIP-сжатие в браузере. Размер страницы 26406