OpenBSD FAQ - Управление клавиатурой и дисплеем [FAQ - На главную]



Работа в консоли

Переназначение клавиш

Утилита kbd(8) может быть использована для изменений кодировки клавиатуры. Большинством настроек клавиатуры можно управлять при помоши утилиты wsconsctl(8). К примеру, чтобы переназначить клавиши при помощи wsconsctl(8), выполните:
# wsconsctl keyboard.encoding=uk
Переназначить [Caps Lock] на [Control L], левую клавишу control:
# wsconsctl keyboard.map+="keysym Caps_Lock = Control_L"
Чтобы настройки сохранились, используйте файл wsconsctl.conf(5).

Поддержка мыши в консоли

Для платформ alpha, amd64 и i386 OpenBSD предоставляет wsmoused(8). Его можно включить при помощи утилиты rcctl(8), описанной в FAQ.

Переключение между консолями

Для большинства alpha, macppc, amd64 и i386 систем OpenBSD по умолчанию предоставляет шесть виртуальных терминалов: от /dev/ttyC0 до /dev/ttyC5. Вы можете переключаться между ними, используя [CTRL]+[ALT] вместе с [F1] до [F6]. Виртуальный терминал ttyC4 зарезервирован для использования X Window system.

Консоли на VGA Hardware

Внимание: в этом разделе речь идет о возможностях драйвера vga(4). Они поддерживаются не всеми видеокартами. Приведенные ниже инструкции не будут работать на современном железе, которое использует драйвер drm(4).

Буфер прокрутки

На некоторых платформах OpenBSD предоставляет буфер прокрутки экрана консоли (console scrollback buffer). Он позволяет вам вернуться к информации, которую уже не видно на экране из-за появления новой. Для перемещения вверх и вниз используйте комбинации клавиш [SHIFT]+[PGUP] и [SHIFT]+[PGDN]. Количество экранов, помещающихся в буфера прокрутки - 8. Переключение консолей очистит буфер прокрутки. Из-за ограничений на используемое место, ядро, используемое для установки системы, не поддерживает возможности прокрутки.

Добавление виртуальных консолей

Если вы хотите, чтобы виртуальных консолей было больше, используйте команду wsconscfg(8) для создания новых экранов для ttyC6, ttyC7 и т.д. Например:
# wsconscfg -t 80x25 6       # this will not work on systems using drm(4)
Это создаст виртуальный терминал для ttyC6, доступ к которому будет осуществляться при помощи [CTRL]+[ALT]+[F7]. Чтобы получить приглашение login: на только что созданной виртуальной консоли, вам нужно включить его как on в ttys(5), и либо перезагрузить init(8), либо отправить ему сигнал HUP при помощи kill(1). Добавьте эту команду в rc.local(8), если вам потребуется дополнительная консоль при следующей загрузке компьютера.

Изменение шрифтов и разрешения консоли

Многие VGA видеокарты на alpha, amd64 и i386 способны отображать 50 строк текста в высоком разрешении вместо обычных 25. Стандартный 80x25 экран использует шрифт 8x16 пикселей. Чтобы удвоить количество строк, мы сначала загружаем шрифт 8x8 пикселей при помощи wsfontload(8). Затем мы удаляем и создаем заново виртуальную консоль с нужным разрешением экрана, используя wsconscfg(8). Это можно сделать автоматически при загрузке, добавив следующие команды в конец скрипта rc.local(8):
wsfontload -h 8 -e ibm /usr/share/misc/pcvtfonts/vt220l.808	# load 8x8 font
wsconscfg -dF 5			# delete screen 5 accessed by [CTRL]+[ALT]+[F6]
wsconscfg -t 80x50 5		# add screen 5 with 50 lines of 80 characters
Если вы хотите изменить разрешение экрана и других виртуальных консолей, просто повторите для них шаги удаления и добавления. Невозможно изменить разрешение основного консольного устройства ttyC0, доступ к которому осуществляется при помощи [CTRL]+[ALT]+[F1]. Избегайте изменения экрана 4, используемого X в качестве графического экрана.

Очистка неактивной консоли

Если вы хотите, чтобы экран отключался после некоторого периода неактивности консоли (без использования X), используйте следующие параметры wscons(4): Вы можете установить эти переменные в командной строке, используя для этого wsconsctl(8):
# wsconsctl display.screen_off=60000
display.screen_off -> 60000
или сделать их постоянными (изменения вступят в силу после перезагрузки), отредактировав wsconsctl.conf(5). Отключение экрана активируется лишь в том случае, если одна из двух переменных display.kbdact или display.outact установлена как on. Еще одно замечание - одна из двух должна быть off.

Настройка последовательного порта

OpenBSD поддерживает работу консоли через последовательный порт на большинстве платформ, однако существуют различия в её работе на разных платформах. Помимо того, что пользователи могут таким образом входить в систему, последовательный порт может быть использован для вывода с консоли.

Использование полноценной последовательной консоли в OpenBSD состоит из двух частей:

Настройка возможности входа в систему через /etc/ttys

Поведение терминалов в OpenBSD контролируется в файле ttys(5). Для того, чтобы появилось приглашение для входа в систему login:, его необходимо включить в /etc/ttys. Последовательный терминал (serial terminal) по умолчанию отключен на платформах, к которым обычно подключены клавиатура и экран. Мы будем использовать платформу amd64 в качестве примера. В этом случае вы должны изменить строку:
tty00   "/usr/libexec/getty std.9600"   unknown off
таким образом:
tty00   "/usr/libexec/getty std.9600"   vt220   on secure
Здесь tty00 - это последовательный порт, используемый в качестве консоли, а vt220 - запись в termcap(5), соответствующая вашему терминалу. Другие возможные варианты могут включать vt100, xterm и т.д. Параметр on включает приглашение для входа в систему, активируя getty(8) для этого последовательного порта. Параметр secure разрешает вход в систему пользователю root на этой консоли. И наконец, 9600 - это скорость для этого терминала.

Обратите внимание, вы можете использовать последовательную консоль (serial console) для установки системы без выполнения этого шага, так как в однопользовательском режиме системе не требуется getty.

На некоторых платформах и конфигурациях вы должны перевести систему в однопользовательский режим, чтобы сделать это изменение, если у вас есть последовательная консоль.

amd64 и i386

Для настройки процесса загрузки с использованием последовательного порта в качестве консоли, файл boot.conf(5) должен содержать строку:
set tty com0
Файл помещается на ваш загрузочный диск, который также может быть и установочным носителем. Используйте параметр stty, если вам нужна скорость передачи данных, отличная от 9600bps.

Часть систем может работать без видеокарты, другая считает это ошибкой. Некоторые способны перенаправлять все действия клавиатуры и экрана BIOS на последовательный порт с помощью параметра конфигурации, поэтому можно полностью обслуживать машину через последовательный порт. Ваши результаты могут отличаться. При использовании этой функции некоторые реализации BIOS могут мешать загрузчику видеть последовательный порт, поэтому ядро не сможет его использовать. Опция BIOS "Continue Console Redirection after POST" («Продолжить перенаправление консоли после POST») должна быть выключена (установлена в OFF или Disable), чтобы загрузчик и ядро могли создать и работать со своими собственными консолями.

Чтобы использовать машину в многопользовательском режиме, вам понадобится отредактировать файл /etc/ttys как описано выше.

sparc64

Эти машины специально спроектированы таким образом, чтобы с ними легко можно было работать при помощи последовательной консоли. Просто отключите клавиатуру, и система автоматически будет использовать последовательный порт.

В некоторых системах последовательные порты распознаются как ttya, ttyb, ttyh0 или ttyh1. Нет необходимости трогать /etc/ttys для использования последовательной консоли в многопользовательском режиме.

Некоторые системы sparc64 интерпретируют сигнал BREAK на консольном порту так же, как команда STOP-A. Это возвращает систему обратно к приглашению Forth, останавливая в этот момент любое приложение и операционную систему. Это удобно, если подобное происходит по желанию пользователя, но к сожалению, некоторые последовательные терминалы и RS-232 коммутаторы посылают что-то, интерпретируемое компьютером как сигнал об остановке машины. Проверьте это, прежде чем использовать на критически важных машинах.

Если клавиатура и монитор подключены, вы всё равно можете принудительно использовать последовательную консоль, использовав следующие команды в ok prompt:

ok setenv input-device ttya
ok setenv output-device ttya
ok reset
Если ttyC0 активирован в /etc/ttys, как описано выше, вы можете использовать клавиатуру и монитор в X.

macppc

Машины macppc сконфигурированы таким образом, что для работы с последовательной консоли используется OpenFirmware. Используйте команды:
ok setenv output-device scca
ok setenv input-device scca
ok reset-all
Установите последовательную консоль на 57600bps, 8N1.

К сожалению, использование последовательной консоли на большинстве MacPPC напрямую невозможно. Хотя большинство этих машин имеют поддержку последовательного порта, снаружи он недоступен. К счастью, для нескольких моделей Macintosh, существуют дополнительные устройства, позволяющие использовать порт как последовательную консоль.

Вы должны использовать параметр on для tty00 в /etc/ttys и установить скорость 57600 вместо 9600 (значение по умолчанию), как описано выше в однопользовательском режиме, прежде чем перезагрузиться в многопользовательский режим и получить возможность работы с последовательной консолью.

Что делать при I/O ошибках во время работы с tty

Вам необходимо использовать /dev/cuaXX для соединений, инициированных из OpenBSD. Устройства /dev/ttyXX предназначены только для использования с терминалами или по телефонной линии. Обратитесь к руководству cua(4) для получения более подробной информации.