На днях принесли мне ноут с FreeBSD и попросили сделать так, что бы в консоли можно было писать русскими виндовыми буквами.

Ну и пользуясь случаем, я сразу же написал эту статью.

Сначала я сделал человеку кодировку UTF8, но ему не понравилось и я по быстрому переделал на cp1251.

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

Поехали..

# mcedit /etc/login.conf

Жмём F7, ищем russian.
Здесь копируем и добавляем старый код, доводим его до вида:

russian|Russian Users Accounts:\
        :charset=KOI8-R:\
        :lang=ru_RU.KOI8-R:\
        :lc_all=ru_RU.KOI8-R:\
        :tc=default:
 
utfrus|Russian UTF Accounts:\
            :charset=UTF-8:\
            :lang=ru_RU.UTF-8:\
            :lc_all=ru_RU.UTF-8:\
            :tc=default:
 
winrus|Russian Win Accounts:\
        :charset=CP1251:\
        :lang=ru_RU.CP1251:\
        :lc_all=ru_RU.CP1251:\
        :tc=default:

Теперь нам нужно закачать два файлика и выложить и в соответствующие папки:

# cd /usr/share/syscons/keymaps
# wget http://noted.org.ua/files/ru.cp1251.kbd
# cd /usr/share/syscons/scrnmaps
# wget http://noted.org.ua/files/win2cpp866.scm

Далее для win делаем в /etc/rc.conf:

keymap=ru.cp1251 
scrnmap="win2cpp866" 
font8x16=cp866b-8x16 
font8x14=cp866-8x14 
font8x8=cp866-8x8

А для UTF8:

keymap="ru.koi8-r"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="koi8-r2cp866"

После чего обязательно делаем:

# cap_mkdb /etc/login.conf

И вот тут самое главное. Определяемся какую мы хотим кодировку и далаем следующее:

# pw usermod -n $your_login -L russian

Выше приведенная строчка указывает на то что у пользователя будет KOI8-R кодировка. Для того что бы установить ему UTF-8 кодировку, необходимо выхолнить:

# pw usermod -n $your_login -L utfrus

И для windows cp1251 кодировки, соответственно:

# pw usermod -n $your_login -L winrus

На этом этапе, консоль уже знает что к чему, вам нужно лишь перелогиниться и проверить:

# ^D
$ ^D
$ locale
LANG=ru_RU.CP1251
LC_CTYPE="ru_RU.CP1251"
LC_COLLATE="ru_RU.CP1251"
LC_TIME="ru_RU.CP1251"
LC_NUMERIC="ru_RU.CP1251"
LC_MONETARY="ru_RU.CP1251"
LC_MESSAGES="ru_RU.CP1251"
LC_ALL=ru_RU.CP1251

Как видите у меня сейчас стоит CP1251 — это удобно когда приносят винт с фильмами снятый с windows машины. Нормальное отображение русских имен файлов гарантировано. Можно конечно примонтировать систему по другому, но сейчас речь не об этом.

Теперь остались мелкие штрихи:

# cat /etc/csh.login
##KOI8-R
#setenv LANG ru_RU.KOI8-R
#setenv MM_CHARSET KOI8-R
#setenv LC_ALL=ru_RU.KOI8-R
##UTF-8
#setenv LANG ru_RU.UTF-8
#setenv MM_CHARSET UTF-8
#setenv LC_ALL=ru_RU.UTF-8
##WIN
setenv LANG ru_RU.CP1251
setenv MM_CHARSET CP1251
setenv LC_ALL=ru_RU.CP1251
 
# cat /etc/profile
##KOI8-R
#LANG=ru_RU.KOI8-R; export LANG
#LC_ALL=ru_RU.KOI8-R; export LC_ALL
#MM_CHARSET=ru_RU.KOI8-R; export MM_CHARSET
##UTF-8
#LANG=ru_RU.UTF-8; export LANG
#LC_ALL=ru_RU.UTF-8; export LC_ALL
#MM_CHARSET=ru_RU.UTF-8; export MM_CHARSET
##WIN
LANG=ru_RU.CP1251; export LANG
LC_ALL=ru_RU.CP1251; export LC_ALL
MM_CHARSET=CP1251; export MM_CHARSET

Теперь бонус для Виндузятников. Портируем windows шритфы на FreeBSD.

1. Записываем на флешку или диск содержимое папки C://Windows/Fonts в рабочей windows. Вставляем диск или флешку в комп с FreeBSD.
2. монтируем его и:

# cd /cdrom/fonts
# mkdir /usr/X11R6/lib/X11/fonts/win-ttf
# cp *.ttf /usr/X11R6/lib/X11/fonts/win-ttf
# cd /usr/X11R6/lib/X11/fonts/win-ttf 
# mkfontscale 
# mkfontdir

Теперь в фал /etc/X11/xorg.conf (ваш рабочий, он может быть у вас в другом месте), добавляем в секцию Files строку:

FontPath "/usr/X11R6/lib/X11/fonts/win-ttf"

Теперь что бы не перезагружать ИКСЫ сделаем:

# fc-cache -v -f

И добавим последние штрихи:

# cat ~user/.xsession
##KOI8-R
#export LANG='ru_RU.KOI8-R'
#export LC_ALL='ru_RU.KOI8-R'
##UTF-8
#export LANG='ru_RU.UTF-8'
#export LC_ALL='ru_RU.UTF-8'
##WIN
export LANG='ru_RU.CP1251'
export LC_ALL='ru_RU.CP1251'
#exec fluxbox
exec startkde

Теперь для файла .xinitrc, делаем тоже самое или как сделая я — символическую ссылку:

# ln -s ~user/.xsession ~user/.xinitrc

PS. Еще я рекомендовал бы доставить шрифты /usr/ports/x11-fonts/urwfonts(-ttf) — установятся в:/usr/local/lib/X11/fonts/URW/ и /usr/ports/x11-fonts/webfonts/ — установятся в: /usr/local/lib/X11/fonts/webfonts/. После чего не забыть их добавить в /etc/X11/xorg.conf файл.

После чего необходимо перезалогиниться и ВУАЛЯ!!!..

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/?p=1982


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

You must be logged in to post a comment.