Русский перевод: Михаил Сгибнев
Содержание
В версиях NetBSD ниже 1.4 пользователь мог выбрать между различными драйверами для клавиатуры и экрана. Это pccons (для платформ i386) и pcvt. Начиная с NetBSD 1.4 введен новый мультиплатформенный драйвер wscons, в настоящее время из старых поддерживается только pccons, поскольку требует меньше системных ресурсов и обладает скромными размерами. pccons используется в инсталляционных дискетах.
29.1. wscons
Wscons является стандартным драйвером консоли NetBSD. Он поддерживает виртуальные экраны для платформы i386, национальные раскладки, мышь и т.д. Возможности wscons отличаются в зависимости от платформы, больше всего возможностей у реализации для i386.
29.1.1. Виртуальные консоли
Количество предустановленых виртуальных консолей определяется следующей опцией.
options WSDISPLAY_DEFAULTSCREENS=4
Другие консоли можно добавить, прописывая соответствующие строки в файле /etc/wscons.conf
: удалите знак комментария (#) перед строкой, начинающейся с «screen x». В примере ниже мы добавим пятый виртуальный терминал к четырем имеющимся:
# screens to create # idx screen emul #screen 0 - vt100 screen 1 - vt100 screen 2 - vt100 screen 3 - vt100 screen 4 - - #screen 4 80x25bf vt100 #screen 5 80x50 vt100
Скрипт rc.wscons
транслирует каждую незакомментированную строку в команду wsconscfg: столбцы соответствуют параметрам вызова. Столбец idx соответствует опции index
, screen — параметру -t type
(определяющему число строк/столбцов, цвет и т.д) и emul указывает параметр -e emul
, определяющий тип эмулируемого терминала. Для примера:
screen 3 - vt100
Будет преобразовано в:
wsconscfg -e vt100 3
Пожалуйста, обратите внимание на возможность конфликта между консолями, определенными в ядре и консолями, определяемыми в период начальной загрузки с помощью /etc/wscons.conf
. Если во время загрузки возникла попытка определения существующего терминала, то будет отображено следующее сообщение:
wsconscfg: WSDISPLAYIO_ADDSCREEN: Device busy
Для решения этой проблемы просто закомментируйте соответствующую строку в /etc/wscons.conf
.
Виртуальные консоли также должны быть указаны как активные в файле /etc/ttys
, так как NetBSD использует getty(8) для запроса логина. Для примера:
console "/usr/libexec/getty Pc" pc3 off secure ttyE0 "/usr/libexec/getty Pc" vt220 on secure ttyE1 "/usr/libexec/getty Pc" vt220 on secure ttyE2 "/usr/libexec/getty Pc" vt220 on secure ttyE3 "/usr/libexec/getty Pc" vt220 off secure ...
Когда стартует сервер X, он ищет виртуальный терминал без запущенной getty(8), то есть, необходимо иметь одну консоль, помеченную как «off» в /etc/ttys
. Строка
ttyE3 "/usr/libexec/getty Pc" vt220 off secure
в /etc/ttys
используется для старта X в этом примере. Для того, чтобы указать консоль, отличную от 4, необходимо передать серверу X параметр vtn
, где n
— номер функциональной клавиши, используемой для переключения на терминал с X.
Для примера, определим «screen 7» в файле /etc/wscons.conf
и X будем запускать на «vt8». Если Вы используете xdm, то Вы должны отредактировать файл /usr/X11R6/lib/X11/xdm/Xserver
. Например:
Когда стартует сервер X, он ищет виртуальный терминал без запущенной getty(8), то есть, необходимо иметь одну консоль, помеченную как «off» в /etc/ttys
. Строка
:0 local /usr/X11R6/bin/X +kb dpms -bpp 16 dpms vt8
Для xdm3d путь отличается: /usr/X11R6/share/xdm3d/Xservers
.
29.1.2. Режим 50 строк в wscons
Режим 50 строк может использоваться, начиная с версии 1.4.1 NetBSD. Этот режим активируется в /etc/wscons.conf
, просто раскомментируйте следующую строку:
font ibm - 8 ibm /usr/share/pcvt/fonts/vt220l.808
Измените и соответствующие строки:
#screen 0 80x50 vt100 screen 1 80x50 vt100 screen 2 80x50 vt100 screen 3 80x50 vt100 screen 4 80x50 vt100 screen 5 80x50 vt100 screen 6 80x50 vt100 screen 7 80x50 vt100
В этой конфигурации определяется восемь экранов, доступ к которым может быть получен с помощью комбинации клавиш Ctrl-Alt-Fn (где n изменяется от 1 до 8), соответствующими устройствами будут ttyE0..ttyE7. Для получения приглашения на вход в систему на этих терминалах необходимо внести изменения в /etc/ttys
:
ttyE0 "/usr/libexec/getty Pc" vt220 on secure ttyE1 "/usr/libexec/getty Pc" vt220 on secure ttyE2 "/usr/libexec/getty Pc" vt220 on secure ttyE3 "/usr/libexec/getty Pc" vt220 on secure ttyE4 "/usr/libexec/getty Pc" vt220 on secure ttyE5 "/usr/libexec/getty Pc" vt220 on secure ttyE6 "/usr/libexec/getty Pc" vt220 on secure ttyE7 "/usr/libexec/getty Pc" vt220 on secure
Не представляется возможным изменить режим 80×25 на screen 0, что гарантирует наличие рабочего терминала в случае проблем.
29.1.3. Раскладка клавиатуры
Wscons позволяет установить национальную раскладку клавиатуры. Например, для итальянской это будет выглядеть так:
#
wsconsctl -k -w encoding=it
encoding -> it
Эти установки будут действовать до следующей перезагрузки. Для внесения постоянных изменений добавьте строку «encoding» в /etc/wscons.conf
:
#
cp /etc/wscons.conf /etc/wscons.conf.orig
#
echo encoding it >>/etc/wscons.conf
Обратите внимание на то, что символов «>» именно два. Если Вы укажете один символ «>», то Вы перезапишете файл одной строкой. Не забывайте делать копии системных файлов перед их редактированием!
Полный список доступных раскладок находится в /usr/src/sys/dev/wscons/wsksymdef.h
:
- be — Belgian
- de — German
- dk — Danish
- es — Spanish
- fr — French
- hu — Hungarian
- it — Italian
- jp — Japanese
- no — Norwegian
- pl — Polish
- pt — Portugese
- ru — Russian
- sf — Swiss French
- sg — Swiss German
- sv — Swedish
- ua — Ukrainian
- uk — UK-English
- us — US-English
29.1.4. Cut&paste в консоли с помощью wsmoused
В консоли wscons существует возможность выделять(cut) текст курсором мыши при нажатой кнопке и вставлять(paste) его нажатием другой кнопки. Для активации cut&paste в wscons Вам понадобится включить его поддержку в ядре, так как по умолчанию она отключена. Необходимо наличие этой строки:
options WSDISPLAY_CHARFUNCS # mouse console support
Будьте внимательны, так как эта опция не работает с совместно с VGA_RASTERCONSOLE
. Следуйте инструкциям в Глава 28, Компиляция ядра для перекомпиляции ядра.
После установки ядра включим «wsmoused» в /etc/rc.conf
и запустим:
#
echo wsmoused=yes >>/etc/rc.conf
#
sh /etc/rc.d/wsmoused start
Теперь можно использовать мышь для выделения текста левой кнопкой и вставки его правой. Для более точной настройки читайте wsmoused(8). Также рекомендуем ознакомиться с wsmoused.conf(5), где описывается файл конфигурации. Пример файла можно посмотреть в /usr/share/examples/wsmoused
.
29.1.5. Скроллинг в консоли
Вы можете использовать скроллинг в консолях wscons, скомпилировав ядро с опцией WSDISPLAY_SCROLLSUPPORT
. Убедитесь, что опция VGA_RASTERCONSOLE
не активирована! Следуйте инструкциям в Глава 28, Компиляция ядра для перекомпиляции ядра.
Когда у Вас запущено ядро с опцией WSDISPLAY_SCROLLSUPPORT
, Вы можете пролистывать экран с помощью клавиш SHIFT + PAGE UP/DOWN. Обратите внимание, что это не работает на системной консоли (ttyE0)!
29.2. pccons
pccons — это простой эмулятор терминала. Он может быть найден на загрузочной дискете для i386. Единственным его преимуществом является малый размер.
Для его активации внесите в файл конфигурации ядра следующую строку:
pc0 at isa? port 0x60 irq 1 # pccons generic PC console driver
Также Вы можете определить опции для компиляции с раскладкой клавиатуры, отличающейся от английской:
# Keyboard layout configuration for pccons #options FRENCH_KBD #options FINNISH_KBD #options GERMAN_KBD #options NORWEGIAN_KBD
Раскомментируйте соответствующую строку, затем следуйте инструкциям в Глава 28, Компиляция ядра для перекомпиляции ядра.
В общих случаях необходимости в использовании pccons нет, все Ваши потребности должен удовлетворить wscons.