Библиотека сайта rus-linux.net
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
Замечание
Строка 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
. Если потребуется, она также может
быть оставлена на месте без последствий. Ее сохранение может быть
полезным при возможности загузки нескольких различных ядер, когда трудно
узнать, что эта раскладка вкомпилирована во все ядра.