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



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

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

Утилита kbd(8) может быть использована для изменений кодировки клавиатуры. Большинством настроек клавиатуры можно управлять при помоши утилиты wsconsctl(8). К примеру, чтобы переназначить клавиши (to change keymappings) при помощи 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
Если вы хотите изменить другие screens, просто повторите шаги удаления и добавления экрана для других экранов. Невозможно изменить разрешение основного консольного устройства 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
Этот файл помещается на ваш загрузочный диск, который также может быть вашим install media. Используйте параметр stty, если вам нужна скорость передачи данных, отличная от 9600bps.

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

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

sparc64

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

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

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

Если клавиатура и монитор подключены, вы все равно можете принудительно использовать последовательную консоль, используя следующие команды в 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 напрямую невозможна. Хотя большинство этих машин имеют serial hardware, оно недоступно из вне (it isn't accessible outside the machine). К счастью, несколько компаний предлагают дополнительные устройства для нескольких моделей Macintosh, которые сделают этот порт доступным для использования через последовательную консоль.

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

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

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