7.6. Настройка консоли Linux

7.6. Настройка консоли Linux

Этот раздел описывает настройку стартового скрипта console, который устанавливает раскладку клавиатуры и консольный шрифт. Если не-ASCII символы (британский фунт и символ Евро примеры не-ASCII символов) не будут использованы и используется клавиатура U.S, можете пропустить этот раздел. Без файла конфигурации стартовый скрипт console не будет ничего делать.

Скрипт console использует /etc/sysconfig/console в качестве файла конфигурации. Решите, какой шрифт и раскладка клавиатуры будут использованы. Языково-специфичный FAQ поможет в этом. Подготовленный файл /etc/sysconfig/console с известными настройками для некоторых стран был установлен в пакете LFS-Bootscripts, значит подходящий раздел может быть раскоментирован, если есть поддерживаемая страна. Если все еще сомневаетесь, обратитесь в директорию /usr/share/kbd для получения доступных раскладок клавиатуры и эранных шрифтов. Прочтите мануалы для loadkeys и setfont и определите корректные аргументы для этих программ. После определения создайте файл конфигурации следующей командой:

cat >/etc/sysconfig/console <<"EOF"
KEYMAP="[arguments for loadkeys]"
FONT="[arguments for setfont]"
EOF

Например, для испанских пользователей, желающих использовать символ Евро, (доступный нажатием AltGr+E), будут корректными следующие установки:

cat >/etc/sysconfig/console <<"EOF"
KEYMAP="es euro2"
FONT="lat9-16 -u iso01"
EOF
[Note]

Замечание

Строка FONT выше корректна только для ISO 8859-15 таблицы символов. Если используется ISO 8859-1, то символ фунт будет вместо Евро, и корректная строка FONT должна быть такой:

FONT="lat1-16"

Если переменная KEYMAP или FONT не установлена, скрипт console не будет загружать соответствующую программу.

В некоторых раскладках клавиатуры кнопки Backspace и Delete посылают символы, отличные от соответствующих символов в раскладке клавиатуры по умолчанию, встроенной в ядро. Это путает некоторые приложения. Например, Emacs отображает свою подсказку (вместо удаления символа перед курсором) при нажатии Backspace. Проверим эффективность используемой раскладки клавиатуры (это работает только для i386 раскладок):

zgrep '\W14\W' [/path/to/your/keymap]

Если код 14 является клавишей Backspace вместо Delete, создайте следующий отрезок раскладки клавиатуры для устранения этой проблемы:

mkdir -p /etc/kbd && cat > /etc/kbd/bs-sends-del <<"EOF"
                  keycode  14 = Delete Delete Delete Delete
              alt keycode  14 = Meta_Delete
        altgr alt keycode  14 = Meta_Delete
                  keycode 111 = Remove
    altgr control keycode 111 = Boot
      control alt keycode 111 = Boot
altgr control alt keycode 111 = Boot
EOF

Скажите скрипту console загружать этот отрезок после загрузки основной раскладки клавиатуры:

cat >>/etc/sysconfig/console <<"EOF"
KEYMAP_CORRECTION="/etc/kbd/bs-sends-del"
EOF

Для вкомпилирования раскладки клавиатуры прямо в ядро вместо установки ее каждый раз при загрузке скриптом console, следуйте инструкциям, описанным в Разделе 8.3, “Linux-2.6.8.1”. Делайте это, если уверены, что клавиатура всегда будет работать, как ожидается, даже когда загрузитесь в эксплуатационной моде (переход init=/bin/sh в ядро), потому что скрипт console не будет запускать экранный шрифт автоматически. Это не составит много проблем так как ASCII символы будут поддерживаться корректно неправдоподобно, что пользователю было бы необходимо полагаться на не-ASCII символы в течении эксплуатационной моды.

Так как раскладку клавиатуры будет устанавливать ядро, то можно убрать переменную KEYMAP в файле /etc/sysconfig/console. Если потребуется, она также может быть оставлена на месте без последствий. Ее сохранение может быть полезным при возможности загузки нескольких различных ядер, когда трудно узнать, что эта раскладка вкомпилирована во все ядра.