2004 г.
Linux для пользователя
Виктор Костромин,
http://rus-linux.net/
Глава 9. Подключение и настройка аппаратных устройств
9.4. Мышь
Существуют два основных типа мышей — подключаемые через последовательный порт (serial mice) и подключаемые к шине (bus mice). Большинство компьютеров оборудуются в настоящее время мышами второго типа. Дальнейший текст относится к bus-мышам и основан на Busmouse HOWTO Криса Багвелла (Chris Bagwell), версии 1.91 от 15 июня 1998 г.
9.4.1. Определение типа мыши
Вы должны знать две важных характеристики своей мыши: какой у нее интерфейс и какой она использует протокол.
Интерфейс — это совокупность аппаратных параметров мыши, включающая такие параметры, как используемые мышью прерывания, порты ввода-вывода и количество контактов в разъеме. Ядро Linux поддерживает 4 типа интерфейсов bus-мыши: Inport (Microsoft), Logitech, PS/2 и ATI-XL. Не существует однозначного алгоритма определения типа интерфейса мыши.
Мыши типа Inport обычно подключаются к интерфейсной карте на материнской плате. Если разъем, который подключается к интерфейсной карте, круглый, имеет 9 контактов и желобок (направляющую выемку) с одной стороны, то вполне возможно, что у вас мышь типа Inport. Если только не Logitech, поскольку эти мыши внешне имеют те же характеристики. Различить их можно только если у вас сохранилась упаковка или руководство, в котором указан тип мыши.
Мыши типа PS/2 подключаются не к плате расширения, а к специальному разъему (PS/2 Auxiliary Device port) на контроллере клавиатуры. Этот разъем имеет 6-контактов (6-pin mini DIN connector), и похож на разъем для подключения клавиатуры.
Мыши типа ATI-XL — это вариант мышей типа Inport. Они подключаются к комбинированной карте, являющейся видео-адаптером и контроллером мыши. Если только вы не знаете точно, что у вас видеоадаптер ATI-XL (и следовательно мышь ATI-XL), то, скорее всего, у вас мышь другого типа.
Протокол — это чисто программная характеристика мыши. Большинство мышей Inport, Logitech и ATI-XL используют протокол ''BusMouse'', а мыши типа PS/2 используют протокол ''PS/2''.
9.4.2. Конфликты по прерываниям
Сначала надо определить, какое прерывание использует ваша мышь, и убедиться, что она не конфликтует с каким-нибудь другим устройством. Этот момент очень важен, потому что под Linux мышь не может использовать одно и то же прерывание с каким-либо другим устройством, даже если все прекрасно работает под управлением другой ОС. Так что проверьте документацию на все подключенные у вас периферийные устройства, чтобы знать, какие прерывания они используют!
Список занятых (используемых) на данный момент прерываний можно получить, выполнив команду
[user]$ cat /proc/interrupts
или просмотрев файл /proc/interrupts.
В большинстве случаев IRQ4 используется первым последовательным портом (/dev/ttyS0), IRQ3 — вторым последовательным портом (/dev/ttyS1, предполагается, что у вас есть такие устройства, если нет — вы можете использовать их IRQ). IRQ5 используется некоторыми SCSI-устройствами, а IRQ12 — некоторыми сетевыми картами. Если ваша сетевая карта использует IRQ12, а ваша мышь — типа PS/2, то у вас будут проблемы, поскольку вы вынуждены будете использовать IRQ12 только для порта PS/2. Для мышей ATI-XL, Inport и Logitech ядро по умолчанию использует прерывание IRQ5, так что если вы не хотите перекомпилировать ядро, вам придется использовать для мыши именно это прерывание. Впрочем, последние версии ядра позволяют задать опции командной строки, определяющие прерывание, которое будут использовать мыши типа Inport и Logitech. Мыши типа PS/2 всегда используют прерывание IRQ12, и не существует способа изменить это, так что в случае конфликтов надо перенастраивать другие периферийные устройства.
9.4.3. Настройка мыши
Далее необходимо проверить настройки в некоторых конфигурационных файлах. Вначале убедитесь, что существует файл /etc/sysconfig/mouse, и что в нем записано что-то вроде:
MOUSETYPE="Microsoft"
XMOUSETYPE="Microsoft"
XEMU3=yes
Естественно, что тип мыши должен соответствовать вашей мыши, у меня, например, это "PS/2".
Чтобы вырезать и вставлять куски текста в консоли, должен быть установлен сервер мыши gpm.
Проверьте, что сервер мыши gpm запущен, для чего дайте команду:
[user]$ ps -A | grep gpm
Если в результате вы получите непустую строку, то драйвер работает. Если же процесс gpm не найден, надо проверить наличие скрипта /etc/rc.d/init.d/gpm, в котором должна найтись строка вызова демона gpm. Эта строка может иметь примерно такой вид:
daemon gpm -t $MOUSETYPE -d 2 -a 5 -B 132 # two-button mouse
(смысл параметров см. на странице man gpm).
Если сервер gpm работает, то выделять и вставлять куски текста можно следующим образом. Нажмите левую кнопку и выделяйте текст. Когда дойдете до конца нужного куска текста, отпустите кнопку. Потом нажмите правую кнопку в том месте, где вы хотите осуществить вставку. Можно даже в другой виртуальной консоли. То же самое можно проделать в X Window, но для вставки нужно нажимать среднюю клавишу, или обе, если у вас двухкнопочная мышь.