Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Linux From Scratch (version 6.8)
Назад Глава 7. Настройка скриптов загрузки системы Вперед

7.5. Конфигурирование консоли Linux

В этом разделе рассказывается, как сконфигурировать загрузочные скрипты 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:
    cat > /etc/sysconfig/console < "EOF"
    # Begin /etc/sysconfig/console
    
    UNICODE="1"
    KEYMAP="de-latin1"
    KEYMAP_CORRECTIONS="euro2"
    LEGACY_CHARSET="iso-8859-15"
    FONT="LatArCyrHeb-16 -m 8859-15"
    
    # End /etc/sysconfig/console
    EOF
    
  • В некоторых раскладках есть "мертвые" клавиши (т. е. клавиши, которые сами не выдают символы, но их нажатие влияет на символы, выдаваемые следующей клавишей), либо определены правила композиции (например, "Нажмите 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 или в консоли последовательного доступа. К таким ситуациям не относятся два ограничения, указанные в приведенном выше списке последними.


Предыдущий раздел: Оглавление Следующий раздел:
Конфигурирование скрипта setclock   Конфигурирование скрипта sysklogd