В этом разделе рассказывается, как сконфигурировать загрузочные скрипты console и consolelog, в которых настраивается раскладка клавиатуры, консольный шрифт и задается, какие сообщения, выдаваемые ядром, должны выдаваться на консоль. Если не предполагается использовать символы, не являющиеся символами ASCII (например, символ авторских прав, символ британского фунта и символ евро) и клавиатура является клавиатурой U.S, то большую часть этого раздела можно пропустить. Без конфигурационного файла загрузочный скрипт console ничего не будет делать.
Скрипты console и consolelog читают из файла /etc/sysconfig/console информацию о конфигурации. Решите, какая раскладка клавиатуры и какой экранный шрифт будет использоваться. С этим вам могут помочь различные HOWTO, касающиеся конкретных языков, смотрите ссылку shttp://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. Если все еще есть сомнения, то посмотрите в директории /lib/kbd имеющиеся раскладки клавиатуры и экранные шрифты. Прочитайте страницы руководств loadkeys(1) и setfont(8), чтобы задать правильные аргументы для этих программ.
В файле /etc/sysconfig/console должны быть строки вида: VARIABLE="value" (ПЕРЕМЕННАЯ = "значение"). Можно использовать следующие переменные:
LOGLEVEL
В этой переменной указывается уровень сообщений, устанавливаемый dmesg, которые посылаются ядром на консоль. Допустимые уровни от "1" (нет сообщений) до "8". По умолчанию - "7".
KEYMAP
В этой переменной указываются аргументы программы loadkeys, как правило, имя таблицы раскладки, которая будет загружена, например, "es". Если эта переменная не задана, то скрипт загрузки не будет запускать программу loadkeys, и будет использоваться раскладка, определяемая в ядре по умолчанию.
KEYMAP_CORRECTIONS
Эта переменная (используется редко) указывает аргументы для второго обращения к программе loadkeys. Она полезна, если имеющаяся раскладка не полностью подходит и нужно сделать небольшие изменения. Например, чтобы включить знак евро в раскладку, которая обычно его не имеет, задайте для этой переменной значение "euro2".
FONT
В этой переменной указываются аргументы программы setfont. Обычно, здесь указывается имя шрифта "-m" и название отображения символов, которое будет загружено. Например, чтобы загрузить шрифт "lat1-16" и отображение символов "8859-1" (подходит для США), установите для этой переменной значение "lat1-16 -m 8859-1". В режиме UTF-8 ядро использует отображение символов для преобразования составных 8-битовых кодов клавиш, имеющихся в раскладке, в кодировку UTF-8, и, следовательно, в аргументе "-m" должна быть указана кодировка составных кодов клавиш, используемых в раскладке.
UNICODE
Установите для этой переменной значение "1", "yes" или " true " для того, чтобы перевести консоль в режим UTF-8. Это требуется для локалей, базирующихся на UTF-8, и не рекомендуется в остальных случаях.
LEGACY_CHARSET
Для многих раскладок клавиатуры, в пакете Kbd нет таблицы раскладки для Unicode. Загрузочный скрипт будет "на лету" конвертировать имеющуюся таблицу раскладки в UTF-8 , если для данной переменной указана кодировка, для которой нет доступной таблицы раскладки в UTF-8.
Немного примеров:
· Для настроек, не использующих Unicode, обычно требуются только переменные KEYMAP и FONT. Например, для настройки польского языка можно использовать:
· cat > /etc/sysconfig/console << "EOF"· # Begin /etc/sysconfig/console· · KEYMAP="pl2"· FONT="lat2a-16 -m 8859-2"· · # End /etc/sysconfig/console· EOF
· Как упоминалось выше, иногда необходимо немного изменить таблицу раскладки. В следующем примере к немецкой раскладке добавляется символ евро:
· cat > /etc/sysconfig/console << "EOF"· # Begin /etc/sysconfig/console· · KEYMAP="de-latin1"· KEYMAP_CORRECTIONS="euro2"· FONT="lat0-16 -m 8859-15"· · # End /etc/sysconfig/console· EOF
· Ниже пример кодировки Unicode для болгарского языка, для которого существует таблица раскладки UTF-8:
· cat > /etc/sysconfig/console << "EOF"· # Begin /etc/sysconfig/console· · UNICODE="1"· KEYMAP="bg_bds-utf8"· FONT="LatArCyrHeb-16"· · # End /etc/sysconfig/console· EOF
· Из-за того, что в предыдущем примере используется 512-символьный шрифт LatArCyrHeb-16, цвета повышенной яркости нельзя будет использовать в консоли Linux, если не используется фреймбуфер. Если кто-то хочет пользоваться цветами повышенной яркости, не хочет использовать фреймбуфер и не может обойтись без символов его родного языка, то имеется еще возможность использовать 256-символьный шрифт конкретного языка так, как это показано ниже:
· cat > /etc/sysconfig/console << "EOF"· # Begin /etc/sysconfig/console· · UNICODE="1"· KEYMAP="bg_bds-utf8"· FONT="cyr-sun16"· · # End /etc/sysconfig/console· EOF
· В следующем примере иллюстрируется автоматическое преобразование раскладки из ISO-8859-15 в UTF-8 и показано подключение "мертвых" клавиш в режиме Unicode:
В некоторых раскладках есть "мертвые" клавиши (т. е. клавиши, которые сами не выдают символы, но их нажатие влияет на символы, выдаваемые следующей клавишей), либо определены правила композиции (например, "Нажмите Ctrl + AE, чтобы на раскладке, используемой по умолчанию, получить Æ"). В Linux-2.6.37 мертвые клавиши и правила композиций интерпретируются правильно только тогда, когда исходные символы, используемые в композиции, не являются многобайтовыми. Этот недостаток не влияет на раскладки для европейских языков, поскольку символы ударения всегда добавляются к безударным символам ASCII, либо вместе объединяются два символа ASCII. Однако, в режиме UTF-8 есть проблема, например, с греческим языком, когда иногда нужно поставить символ ударения над буквой "альфа". Решение будет либо в том, чтобы не использовать UTF-8, либо установить систему X Window, в которой при обработке ввода нет таких ограничений.
Для китайского, японского, корейского и некоторых других языков невозможно настроить консоль Linux так, чтобы она отображала необходимые символы. Тем, кому нужны это языки, следует установить систему X Window, установить шрифты, имеющие необходимый диапазон символов, и пользоваться правильным методом ввода (например, SCIM, в котором поддерживается широкий спектр языков).
Замечание
Файл /etc/sysconfig/console используется только для локализации текстовой консоли Linux. Он никак не влияет на правильную настройку раскладки клавиатуры и терминальный шрифт, используемые в системе X Window, в сессиях ssh или в консоли последовательного доступа. К таким ситуациям не относятся два ограничения, указанные в приведенном выше списке последними.