The 3 Button Serial Mouse mini-HOWTO Автор Geoff Short, &nl; Русский перевод Alexsandr Mikhailov, Версия 0.1b , 1 декабря 1999 Данный документ описывает настройку трех-кнопочной мыши для её корректного функционирования как в консоли так и в X'ах Вводная часть Введение

Большинство приложений для X написано в расчете на то ,что пользователь будет использовать 3х кнопочную мышь. Чаще всего такие мыши "совместимы" с мышиным протоколом разработанным фирмой Microsoft , что (теоретически) означает что они должны быть идеально совместимы и с X Windows. Но теория как обычно не имеет ничего общего с практикой и для использования большинства трех-кнопочных мышей на все 100 требуется некоторая настройка как программной так и аппаратной части. В данном документе расматривается только настройка мышей подключаемых к последовательному порту , т.к. именно такие устройства получили наибольшее распространение.

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

Я с удовольствием приму любые замечания и комментарии , которые могут возникнуть у вас по поводу этого перевода. Присылайте их на мой . Авторские права

Данный документ может свободно распространяться и модифицироваться при условии соблюдения положений Gnu General Public License версии 2 и выше.

Все торговые знаки упомянутые в этом документе пренадлежат их владельцам. Предупреждения

Использование любых инструкций и методов предложенных в этом документе предмет доброй воли читателя. Автор не не берет на себя ответственности за любой ущерб который может быть прямо или косвенно причинен использованием инструкций предложенных в данном документе. Общие положения Последовательные порты

Первое что необходимо сделать при настройке мыши это убедиться ,что программы могут её обнаруживать. Определите к какому из портов подключена мышь - обычно это /dev/ttyS0 (COM1 в DOS) или /dev/ttyS1 (COM2 в DOS) (ttyS0 - чаще всего 9 контактный разъем , а ttyS1 - 25 контактный)

Также существуют соответствующие cua устройства которые идентичны ttyS устройствам , но в настоящее время почти не используются. Для надежности также сделайте соответствующую ссылку /dev/mouse. Например для порта /dev/ttyS0: ln -s /dev/ttyS0 /dev/mouse. Переключаемые мыши

Некоторые мыши (не самые дешевые обычно) имеют переключатель для переключения между 2-мя протоколами : Microsoft и Mousesystems. Второй отличается от первого тем, что обеспечивает нам все три клавиши. Такие переключатели обычно обозначаются как 2/3 или PC/MS. Где 2 или MS обозначает 2х кнопочный совместимый с протоколом Microsoft режим ,а 3 или PC - режим поддержки протокола MouseSystems (т.е.поддержка всех 3х клавиш) Если вы счастливый обладатель именно такой мыши ,то для поддержки 3х кнопочного режима ва всего лишь необходимо указать протокол MouseSystems в вашем Xconfig и установить соответствующее положение переключателя на мыши , идеальная поддержка всех 3х кнопок вам практически обеспечена обеспечена. Обычная мышь

Если ваша мышь не оснащена переключателем и вас нет никаких инструкций насчет переключения режима ёё работы , то придется эксперементировать. Для начала попробуйте установить в Xconfig режим поддержки мыши Microsoft Если производитель мыши ничего не напутал , написав на коробке Microsoft Compartible , и мышь 100% совместима с протоколами MS , то это должно помочь ввести её в правильный режим работы.

Если при указании такого типа протокола мышь отказывается работать вообще , то у вас явно не Microsoft совместимая мышь. Можете попробывать разыскать информацию о протоколе вашей мыши в man страницах к файлам конфигурации или заглянуть в секцию Проблемы в конце этого документа.

Если же вы обнаружите что в режиме Microsoft работают только две крайних клавиши мыши (самый распространенный случай) , то у вас есть два варианта: включить эмуляцию 3й клавиши (когда её нажатие эмулируется нажатие двух крайних) (Но зачем вам в таком случае 3х кнопочная мышь ?) или продолжить читать и попробывать 1 из способов переключения мыши в трех-кнопочный режим из описанных в этом документе. Переключение мыши в 3х кнопочный режим

Даже самые дешевые мыши обычно также могут работать с протоколом Mouse Systems, и соотвественно с возможностью использования всех 3 кнопок. Весь вопрос заключается в том , как заставить мышь думать что она производства компании Mouse Systems. Далее описаны несколько спобособ сделать это. Переключение с помошью левой клавиши

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

Когда мышь получает питание ,она проверяет не нажата ли левая клавиша мыши и ,если она нажата ,то происходит автоматическое переключение в режим Mouse Systems. (!!!Внимание при простой перезагрузке компьютера (без отключения питания) мышь не выключается , поэтому для использования описанного выше метода надо отключить питание компьютера) Другие способы сброса мыши

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

Некоторые мыши можно сбросить командой echo "*n" > /dev/mouse , что будет иметь тот-же самый эффект , что и простое отключение питания Если этот метод срабатывает на вашей мыши то можете поместить соответствующую команду в ваш .xinitrc или другой файл используемый вами при инициализации X`ов

Боб Николас () написал программу на C которая делает то же самое , но часто работает даже если echo не срабатывает. Вы можете взять копию программы на

Для некоторых мышей также может быть достаточно вставить строку 'ClearDTR' в Xconfig , чтобы переключить их в режим MSS. Переключение режима путем манипуляций с микросхемой

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

На наиболее дешевых моделях мышей , часто встречается джампер вида ----------- | o | o | o | SW1 ----------- 1 2 3 Где положения джампера 1-2 и 2-3 соответствует положению PC\MS внешнего переключателя. Мышь с джампером но без внешнего переключателя довольно распространенное явление , т.к. таким образом многие NONAME компании пытаются сэкономить на производстве. Подключение средней клавиши к 2 другим

Еще одно возможное решение для мыши которая напрочь отказывается понимать понимать протокол MSS это соединение проводника от средней клавиши с сооствествующими проводниками левой и правой клавиш , так ,чтобы нажатие средней клавиши приводило к появлению токов в линиях левой и правой клавиши. После такой операции нажатие средней клавиши будет эквивалентно нажатию левой и правой клавиш одновременно , что при включенной эмуляции 3й кнопки даст нам полнофункциональную 3х кнопочную мышь. Переключение режима на чипе

Если вы обладаете мышью на чипсете Z8350(16pin) или HM8350A (18pin) то вы можете использовать выходы из чипа для того чтобы активировать необходимый вам режим. На обоих чипсетах режим мыши управляется с помощью третьего вывода. Подключение его к "земле" активирует режим MSS. pin1 -| \/ |- pin2 -| |- pin3 -| |- -| |- -| |- -| |- -| |- pin8 -|____|-

Подобное подключение возможно еще на нескольких чипах , их список с инструкциями по подключению pin`он приведен ниже. SYSGRATION SYS2005 Pin3 --> земля HN8348A Pin3 --> Pin9 EC3567A1 Pin3 --> Pin8 HT6510A Pin3 --> Pin9 HT6513B,HT6513F Pin3 --> Pin8 EM83701BP Pin3 --> Pin8 EC3576A1 Pin3 --> земля HM8370GP Pin2 --> Pin7 HM8348A Pin3 --> Pin8 UA5212S Pin3 --> Pin9 Авто-нажатие левой клавиши при подаче питания

В качестве альтернативы можете попробывать собрать следующую схему ----- --- R ---------O------ + Supply | ----- | | C = 100нФ конденсатор | | E | R = 100кОм | __ / | T = транзистор BC557 | / \ O | B | #V | T / |-----|-# | / Переключатель левой клавиши | | #\ | O | \__/ | --- \ C | --- C ------O----------> | ### Земля

Примечание : если переключатель подключен к земле а не к + источника, то необходимо использовать npn транзистор и поменять местами сопротивление и емкость. Настройка программного обеспечения Использование GPM для переключения режимов

GPM - это драйвер мыши для консольного режима , он включен в практически все линукс дистрибьюции и обычно запускается из вашего rc файла Режимы работы GPM и их переключение

Основные режимы поддержимые GPM : gpm -t ms; gpm -t msc; gpm -t help Первые два режима это соотвественно Microsoft и MouseSystems , а третий используется для автоматического распознавания мыши.

Для корректного использования режима MSS , может быть необходимо указание следующих параметров: -3 указывает необходимость использования всех трех клавиш, -o dtr для корректной установки DTR и -t msc для определения типа Экспортирование данных о мыши

GPM часто способна распознать все три клавиши даже у MS совместимой мыши и сделать их доступными другим программам. Для этого надо запустить GPM с параметром R : gpm -R -t ms После чего данные о мышке будут экспортированы на новое устройство /dev/gpmdata которое выглядит как мышка для любой другой программы. Новое устройство использует протокол MSS и может быть использовано в X'ах (после их соответствующей настройки естественно) при условии что GPM будет постоянно висеть в памяти Изменение раскладки клавиш

Изменение раскладки клавиш мыши. X'сы и GPM используют отличные друг от друга раскладки клавиш мыши , чтобы заставить их использовать одинаковые раскладки вы можете произвести настройку Xmodmap для соответствия GPM или наооборот. Настройка X'ов производиться командой : xmodmap -e "pointer = 1 3 2" после чего левая клавиша будет использоваться для выделения а правая для вставки. Настройка GPM производиться так : gpm -t msc -B 132 - это вынудит GPM использовать стандартную X раскладку. Примеры файлов Xconfig и X86Config

Расположение файлов конфигурации X - ов зависит от конкретной дистрибьюции ,обычно это будут: /etc/Xconfig, /etc/XF86Config или /usr/X11/lib/X11/XF86Config. Для того чтобы определить какой файл используется посмотрите за выводом на экран при запуски X , название файла обычно будет выведено в самои начале перед всеми опциями. MS совместимая последовательная мышь

XF86config: Section "Pointer" Protocol "microsoft" Device "/dev/mouse" EndSection Xconfig: # # Mouse definition and related parameters # Microsoft "/dev/mouse" MS совместимая мышь с эмуляцией 3й кнопки

XF86config: Section "Pointer" Protocol "microsoft" Device "/dev/mouse" Emulate3Buttons EndSection Xconfig: # # Mouse definition and related parameters # Microsoft "/dev/mouse" Emulate3Buttons MSS совместимая мышь с 3 кнопками

XF86config: Section "Pointer" Protocol "mousesystems" Device "/dev/mouse" ClearDTR # Эти две строки вам скорее всего не пона ClearRTS # добяться , попробуйте использовать сначала EndSection # одну а потом другую Xconfig: # # Mouse definition and related parameters # MouseSystems "/dev/mouse" ClearDTR ClearRTS MS совместимая мышь с gpm -R

XF86config: Section "Pointer" Protocol "MouseSystems" Device "/dev/gpmdata" EndSection Xconfig: # # Mouse definition and related parameters # MouseSystems "/dev/gpmdata" Использование 2х мышей

В некоторых случаях , например на ноутбуке с встроенных указателем , вы можете захотеть использовать последовательную мышь в качестве второго устройства . В большинстве случаев встроенное устройство использует протокол PS/2 что позволяет просто игнорировать его , при конфигурировании мыши.

Если же вы по некой причине хотите использовать два устройства одновременно то вам необходимо использовать опцию -M при запуске gpm чтобы ре-экспортировать устройства.Также вы можете использовать XInput для той же цели. (Обычно необходимые строки с XInput уже есть в закоментированом виде в авто-сгенерированом Xconfig'e) Мыши с колесиком

Мыши с колесиком которые обрели в последнее время популярность имеют дополнительное действие в протоколе - скроллинг. Для его поддержки необходимо иметь достаточно новый X сервер и произвести соответствующую настройку программ. Более полное руководство по настройке таких устройств вы можете найти по адресу : Прочие настройки

Меняем местами клавиши

Используйте xmodmap для того чтобы сменить регистры соответствующие нажатию различных клавиш. xmodmap -e " pointer = 3 2 1" сменить клавиши местами так чтобы их было удобно нажимать левой рукой. Ускорение мыши

Для установки ускорения мыши используйте xset m , например xset m 2 установит ускорение мыши равное 2. Для более подробного описания опций xset загляните в его Man страницу. Проблемы и их решения

Если у вас проблемы с мышкой в X ах или консоли , то в первую очередь необходимо проверить не запущенно ли у вас getty на порту к которому подключена мышь или что либо еще , например модем. Также необходимо проверить не существует-ли конфликтов прерываний , которые могут помешать работе мыши. Возможно что вам необходимо зажать левую клавишу мыши когда вы запускаете X сы . Проблемы могут так же возникнуть в случае неверной инициализации во время загрузки. Инициализация последовательных устройств производиться при помощи команды setserial выполняемый обычно в файле rc.serial во время загрузки системы. Для более подробных инструкций о настройке setserial смотрите его man страницу и Serial - Howto.

Флаг ClearDTR может работать не корректно на некоторых системах , до тех пор пока вы не отключите RTS/CTS командой : stty -crtscts < /dev/mouse

Мыши Logitech могут потребовать включение ChordMiddle в вашу конфигурацию для корректной работы всех 3 клавиш.Также вам может понадобиться включить CleatDTR и ClearRTS в ваш Xconfig.

Смещение курсора по отношению к точки нажатия. Если точка нажатия и видимое положение курсора не совпадают то возможно это проблема с драйвером S3( тогда такое положение вещей можно исправить с помошью xvidtune) или с неправильной установкой VCLK опции для того чтобы справиться с этим отредактируйте ваш X*onfig , как показано ниже Subsection "Display" Modes "1024x768" "800x600" "640x480" "1280x1024" Invert_VCLK "*" 1 ...

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

Если у некоторых пользователей мышь работает а у некоторых нет , то проблема скорее всего в различных X*onfig'ах

Если при движении курсор стирает изображение с экрана то это очевидно проблема с настройкой X сервера. Попробуйте выбрать linear (nolinear) режим при выборе видеокарты,и опции tgui_pci_write_off и tgui_pci_read_off (Обычно такие проблемы возникают на картах производства Trident)

Если мышиный курсор не отображается на экране (но мышь при этом функционирует) то необходимо установить опцию sw_cursor в секции Device вашего X*onfig.

И наконец если ваша оптическая мышь не работает при избытке света , то проблема вероятно заключается в изоляции корпуса от внешнего света. Дополнительная информация Протестированные модели

Существует огромное количество различных моделей мышей и я не стал бы рекомендовать одну из них в ущерб другой. Ниже приведен список мышей которые после определенных настроек (или вовсе без них) могут работать в Линуксе с использованием всех 3х кнопок.

Mouse Systems оптическая мышь , версия для последовательного порта

Отлично работает (что видно даже по названию !) без ClearDTR или ClearRTS в X*onfig.

WiN mouse.

Стандартная двух - режимная Microsoft/MouseSystems мышь.

Agiler Mouse 2900

Стандартная MS\MSS мышь на SYSGRATION SYS2005 чипсете (см. Секцию настройки)

Sicos mouse

Работает хорошо при установленных ClearDTR & Clear RTS в X*onfig.

Artec mouse

Использует два протокола , требует `ClearDTR' в X*onfig, НЕ `ClearRTS'

DynaPoint 3 кнопочная последовательная мышь.

Использует два протокола, требует `ClearDTR' И `ClearRTS' в X*onfig.

Genius Easymouse трех-кнопочная мышь.

Отлично работает с проколом Mouseman без параметра ChordMiddle

Truemouse

Хорошо работает при включенном `ClearDTR' в X*config

Champ brand mouse

Имеет переключатель MS/PC

MicroSpeed mouse

Обычная двух-протокольная мышь.

Venus brand

Оснащена джамперов переключающим протоколы.

Saturn

Оснащена переключателем 2/3

Manhattan mouse.

Отлично работает с gpm -R

Inland mouse.

Имеет переключатель MS/PC

qMouse (3-button), FCC ID E6qmouse X31.

В консоли работает с `gpm -t msc -r 20' в X'ах признаков жизни не подает .

PC Accessories mouse.

Имеет переключатель MS/PC

First Mouse Dual Microsoft/MouseSystems.

Режим устанавливается by button depress при подаче питания.

Trust трех-кнопочная мышь

Работает отлично в режиме PC

Chic 410

Хорошо работает в режиме MS c gpm -R

KeyMouse трех-кнопочная мышь

Работает с ClearDTR и ClearRTS в X*onfig; `-o dtr' нужно для корректной работы gpm.

Anubis mouse

Работает отлично но требует нажатой левой клавиши при запуске X

Yakumo No.1900 mouse

Работает с gpm -R

Logitech CA

Работает в X используя протокол MMseries. (Также работает с моделями CC, CE, C7 & C9).

A4-Tech mouse

Работает нормально при установленном DTR.

Boeder M-7

Работает в режиме MSS , при условии нажатия левой клавиши при включении

Radio Shack 3х кнопочная последовательная мышь

Работает как MSS с ClearDTR

Dexxa последовательная мышь

100% совместима с MS и поддерживает в этом режиме все 3 клавиши

Belkin 3х кнопочная мышь

Нуждается в gpm -o rts и СlearRTS в Х (в режиме PC) Кабели и адаптеры

Распайка кабеля мыши. TxD , RxD используются для передачи данных , RTS и/или DTR для питания и земли. 9-контактный порт 25-контактный порт TxD 3 2 RxD 2 3 RTS 7 4 DTR 4 20 Gnd 5 7 Ссылки

Сайт Mouse Systems У них есть также драйвер для M$Windows.

Linux Serial HOWTO также может оказаться вам полезным,особенно если у вас проблемы с последовательным портом.

Отличное описание принципов функционирования мыши вы можете найти по адресу

Полное описание настроек X*onfig вы можете найти в соответсвуюших man страницах и/или Xfree86 HOWTO (FAQ)

Описание gpm можно найти в его man странице а также по адресу

Большое кол-во информации о аппаратной и программной настройке мыши можно найти на :