FreeBSD - руссификация

Опубликовано

FreeBSD для работы в консоли способна использовать только однобайтную кодировку символов. Тоесть для того чтобы иметь возможность видеть русские символы в текстовой консоли нам придется использовать кодировку KOI8-R. Данная кодировка являеться устаревшей, и на данный момент рекомендуеться использовать UTF-8, что описанно в соответствующей статье на сайте. Но если требуеться использовать именно KOI8-R то тогда эта статья актуальна.

Собственно русифицировать консоль можно на стадии установки системы (или после установки) через sysinstall, но это не дает никакого понимания "как это устроено". Поэтому мы пройдем все шаги руссификации вручную, исправляя файлы /etc/rc.conf и /etc/ttys, а так же нам придется менять локаль пользователю системы.

В случае если используется FreeBSD 9той ветки или выше - данный этап следует пропустить и переходить сразу к редактированию rc.conf. Если же FreeBSD младше 9той ветки то тогда изменим тип терминала с стандартного cons25 на cons25r. Залогинившись в качестве root используем редактор ee и исправляем /etc/ttys следующим образом:

# ee /etc/ttys

Находим в файле следующие строки:

...
ttyv0   "/usr/libexec/getty Pc"         cons25  on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv2   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv3   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv4   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv5   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv6   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv7   "/usr/libexec/getty Pc"         cons25  on  secure
... 

Строки ttyv0-7 означают виртуальные консоли, переключаться между которыми можно при помощи клавиш Alt+F1-F8. Меняем в этих строках столбец cons25 на cons25r, чтобы получилось следующее:

...
ttyv0   "/usr/libexec/getty Pc"         cons25r on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv2   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv3   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv4   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv5   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv6   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv7   "/usr/libexec/getty Pc"         cons25r on  secure
... 

Остальное содержимое файла изменять не нужно. Сохраняем файл и выходим из редактора ee. Следующий шаг заключается в указании системе шрифтов и раскладки клавиатуры. Для этого мы редактируем rc.conf и добавляем в него следующие строки:

# ee /etc/rc.conf

 

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

Параметры font8x8, font8x14 и font8x16 задают шрифты для дисплея. Параметр scrnmap отвечает за перекодировку символов из koi8-r в cp866, keymap задает собственно раскладку клавиатуры. Перекодировка из koi8-r в cp866 в процессе отрисовки симоволов нужна для того чтобы не возникало проблем с псевдографическими символами в консоли, так же для решения некоторых еще некоторых проблем.

Чтобы изменения вступили в действие следует перезагрузить систему.

После перезапуска, чтобы пользователь имел возможность работать с русскими знаками, следует задать класс описаный в /etc/login.conf. Для изменения параметров учетной записи пользователя мы будем использовать утилиту pw. Логинимся в качестве root и набираем команду с аргументами:

# pw usermod ИМЯ_ПОЛЬЗОВАТЕЛЯ -L russian

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

[Наверх страницы]