Дополнительная информация
Mouse Systems имеет веб-сайт http://www.mousesystems.com/. Имеются драйверы для Windows.
Linux Serial HOWTO доступен с зеркал сайта sunsite. Если вы не знаете, где находится ваше ближайшее зеркало, начните отсюда http://sunsite.unc.edu/mdw/linux.html
Имеется очень хорошая статья о том как работают мыши http://www.4QD.co.uk/faq/meece.html.
Более полное объяснение файлов Xconfig и XF86Config можно найти в страницах руководства, и в документации по инсталляции X window, напр. Xfree86 HOWTO. Также смотрите XFree86 FAQ на http://www.XFree86.org/.
Информаци по gpm можно найти на страницах руководства, также на странице Darin Ernst по адресу http://www.castle.net/X-notebook/mouse.txt.
Некоторая информация по мышам и программному обеспечению находится по адресу http://www.hut.fi/Misc/Electronics/pc/interface.html#mouse
Использование 2-х мышей
В некоторых случаях, например на ноутбуке с встроенных указателем, вы можете использовать последовательную мышь в качестве второго устройства. В большинстве случаев встроенное устройство использует протокол PS/2, что позволяет просто игнорировать его при конфигурировании мыши. Просто настройте gpm или X так, чтобы использовать /dev/ttyS0.
Если же вы, по некой причине, хотите использовать два устройства одновременно, то вам необходимо использовать опцию -M
при запуске gpm, чтобы реэкспортировать устройства. Также вы можете для этой же цели использовать XInput. (Обычно необходимые строки с XInput уже есть в закомментированом виде в автоматически сгенерированном файле XF86Config).
Использование GPM для переключения режимов
gpm - это драйвер мыши для консольного режима, он включен практически во все дистрибутивы Linux, и обычно запускается из скрипта /etc/rc.d/rc.local. Примечательно, что дистрибутивы не всегда содержат наиболее последние версии (1.13 на момент написания), которые можно найти на зеркалах сайта sunsite.unc.edu.
Основные режимы поддержимые GPM:
gpm -t ms gpm -t msc gpm -t help |
первые два - для режимов Microsoft или MouseSystems, третий для опроса мыши и вывода результатов опросов. Чтобы запустить gpm в режиме MouseSystems, вам может придется использовать параметр -3
и, возможно, установить опцию DTR, используя параметр -o dtr:
gpm -3 -o dtr -t msc |
gpm часто способен распознать все три клавиши мыши, даже в режиме Microsoft. А новые версии (1.0 или более новые (?)) могут предоставить эту информацию другим программам. Для этого, вам необходимо запустить gpm с параметром -R, подобно этому:
gpm -R -t ms |
Этим самым gpm реэкспортирует данные от мыши новому устройству, называемому /dev/gpmdata, которое позволяет видеть мышь другим программам. Примечательно, что это устройство всегда
использует протокол MouseSystems. Вы можете настроить ваш Xconfig, чтобы использовать это устройство, вместо /dev/mouse, как показано ниже, но тогда вы должны гарантировать, что gpm всегда будет запущен, когда вы используете X. Некоторые сообщают, что иногда средняя кнопка мыши не корректно интерпретируется X, используя этот метод, такое возможно лишь до установки мыши.
Изменение раскладки клавиш для gpm и X
Вы можете обнаружить, что gpm и X используют различные раскладки основных клавиши мыши, т.о. использование обеих систем на одной и той же машине, может быть запутанным. Чтобы сделать в X использование одинаковых клавиш для операций выделения и вставки, как в gpm, используйте команду X
xmodmap -e "pointer = 1 3 2" |
после чего левая клавиша будет использоваться для выделения, а правая для вставки, для 2-х и 3-х кнопочных мышей. Чтобы вынудить GPM использовать стандартную X раскладку, запускайте его с параметром -B, например:
gpm -t msc -B 132 |
Кабели, расширения и адаптеры
В кабеле мыши необходимы следующие провода: TxD и RxD для передачи данных, RTS и/или DTR для питания и земли. Номера контактов будут следующие:
9-контактный порт 25-контактный порт TxD 3 2 RxD 2 3 RTS 7 4 DTR 4 20 Gnd 5 7 |
Вышеприведенная таблица может быть использована, если вы хотите сделать переходники между 9- и 25-контактными вилками, или удлинители.
Мыши с колесиком
Мыши с колесиком, которые обрели в последнее время популярность имеют дополнительное действие в протоколе - скроллинг. Для его поддержки необходимо иметь достаточно новый X сервер и произвести соответствующую настройку программ. Более полное руководство по настройке таких устройств вы можете найти по адресу : http://www.inria.fr/koala/colas/mouse-wheel-scroll/
В общем, вам понадобится довольно новый Xserver, чтобы использовать функции прокрутки, т.к. некоторые старые серверы будут распознавать эту функцию как нажатие клавиши. Например, Intellimouse поддерживается XFree 3.3.1 и более новыми версиями.
Обычная мышь
Если ваша мышь не оснащена переключателем и у вас нет никаких инструкций насчет переключения режима её работы, то придется экспериментировать. Для начала попробуйте установить в Xconfig режим поддержки мыши Microsoft. Если производитель мыши ничего не напутал, написав на коробке Microsoft Compartible, и мышь 100% совместима с протоколами MS, то это должно помочь ввести её в правильный режим работы.
Если при указании такого типа протокола мышь отказывается работать вообще, то у вас явно не Microsoft-совместимая мышь. Можете попробовать разыскать информацию о протоколе вашей мыши в страницах руководства к файлам конфигурации или заглянуть в раздел "Проблемы" в конце этого документа.
Если же вы обнаружите, что в режиме Microsoft работают только две крайних клавиши мыши (самый распространенный случай), то у вас есть два варианта: включить эмуляцию 3-й клавиши (когда её нажатие эмулируется нажатие двух крайних) (Но зачем вам в таком случае 3-х кнопочная мышь ?), или продолжить читать и попробовать один из описанных в этом документе способов переключения мыши в трехкнопочный режим.
Переключаемые мыши
Некоторые мыши (не самые дешевые обычно) имеют переключатель для переключения между 2-мя протоколами : Microsoft и Mousesystems. Второй отличается от первого тем, что обеспечивает нам все три клавиши. Такие переключатели обычно обозначаются как 2/3 или PC/MS. Где 2 или MS обозначает 2-х кнопочный совместимый с протоколом Microsoft режим, а 3 или PC - режим поддержки протокола MouseSystems (т.е.поддержка всех 3-х клавиш) Если вы - счастливый обладатель именно такой мыши, то для поддержки 3-х кнопочного режима вам всего лишь необходимо указать протокол MouseSystems в вашем Xconfig и установить соответствующее положение переключателя на мыши, и идеальная поддержка всех 3-х кнопок вам практически обеспечена.
Переключение мыши в 3-х кнопочный режим
Даже самые дешевые мыши обычно также могут работать с протоколом Mouse Systems, и, соответственно, с возможностью использования всех 3 кнопок. Весь вопрос заключается в том , как заставить мышь думать, что она - поддерживает Mouse Systems. Далее описаны несколько спобосов сделать это.
Перед выключением питания нажмите левую клавишу мыши и держите её до тех пор пока компьютер не загрузится.
Когда мышь получает питание, она проверяет, не нажата ли левая клавиша мыши и, если она нажата, то происходит автоматическое переключение в режим Mouse Systems. (!!!Внимание при простой перезагрузке компьютера (без отключения питания) мышь не выключается , поэтому для использования описанного выше метода надо отключить питание компьютера).
Помимо указанного выше, существует еще несколько способов переключения режима: Можно не выключать компьютер, а просто вынуть мышь из последовательного порта и вставить обратно предварительно зажав левую кнопку.
Некоторые мыши можно сбросить командой echo "*n" > /dev/mouse, что будет иметь тот же самый эффект , что и простое отключение питания Если этот метод срабатывает на вашей мыши, то вы можете поместить соответствующую команду в ваш .xinitrc или другой файл используемый вами при инициализации X.
Bob Nicholas ( rnichols@interaccess.com) написал программу на C, которая делает то же самое, но часто работает, даже, если echo "*n" не срабатывает. Вы можете взять копию программы на http://kipper.york.ac.uk/src/fix-mouse.c
Для некоторых мышей можно вставить строку 'ClearDTR' в файл Xconfig, чтобы переключить их в режим Mouse Systems.
И наконец если не один из описанных выше способов вам не помог, то вам скорее всего придется вскрыть вашу мышь и попробовать переключить режим на самой схеме. В некоторых случаях, мышь может иметь переключатель внутри, по некоторым причинам известным только производителю. На наиболее дешевых моделях мышей часто встречается переключатель вида:
----------- | o | o | o | SW1 ----------- 1 2 3 |
Urban Widmark (ubbe@ts.umu.se) говорит, что то же самое можно применить к чипу EC3567A1, где Pin 8 - земля. Я также попробовал это и все прекрасно работает.
Timo T Metsala (metsala@cc.helsinki.fi) обнаружил, что на чипе HT6510A
pin 3 используется для выбора режима, pin 9 - земля. Эт же работает на чипе HT6513A. Holtek также сделал чипы HT6513B
и HT6513F - на них, pin 8 - земля.
Robert Romanowski (robin@cs.tu-berlin.de) сообщил, что соединение pin 3 - pin 8 (земля) работает на чипе EM83701BP тоже.
Robert Kaiser (rkaiser@sysgo.de) подтвердил, что соединение pin 3 - земля, работает на чипе EC3576A1.
Sean Cross (secross@whidbey.com) нашел, что соединение pin 3 - pin 7 (земля) работает на HM8370GP.
Peter Fox (fox@roestock.demon.co.uk) использовал соединение pin 3 - pin 8 на кристалле HM8348A.
Jon Klein (jbklein@mindspring.com) нашел, что соединение pin 3 - pin 9 работает на UA5212S.
В качестве альтернативы пайке можете попробовать собрать следующую схему, которая обеспечивает автонажатие левой клавиши при подаче питания: эта схему привел Mathias Katzer.
----- --- R ---------O------ + Источник | ----- | | C = 100nF конденсатор | | E | R = 100kOhm | __ / | T = транзистор BC557 | / \ O | B | #V | T / |-----|-# | / Переключатель левой клавиши | | #\ | O | \__/ | --- \ C | --- C ------O----------> (где-то глубоко внутри мыши) | ### Земля |
Испытательная мышь была модель NONAME MUS2S - работает ли это в других мышах, зависит от схемы мыши.
Примечание: если переключатель подключен к земле, а не к + источника, то необходимо использовать npn транзистор и поменять местами сопротивление и емкость.
Т.о. перед вами выбор. Либо работать мышью с двумя кнопками, либо доработать переключатель мыши и установить в X использование 3-х кнопочной мыши.
Последовательные порты
Первое, что необходимо сделать при настройке мыши - это убедиться, что программы могут её обнаруживать. Определите к какому из портов подключена мышь - обычно это /dev/ttyS0 (COM1 в DOS) или /dev/ttyS1 (COM2 в DOS) (ttyS0 - чаще всего 9 контактный разъем , а ttyS1 - 25 контактный).
Также существуют соответствующие устройства /dev/cua, которые идентичны ttyS
устройствам , но в настоящее время почти не используются. Для надежности также сделайте соответствующую ссылку /dev/mouse. Например для порта /dev/ttyS0:
ln -s /dev/ttyS0 /dev/mouse |
Примеры файлов Xconfig и X86Config
Расположение файлов конфигурации X зависит от конкретного дистрибутива, обычно это /etc/Xconfig, /etc/XF86Config или /usr/X11/lib/X11/XF86Config. Для того, чтобы определить, какой файл используется, посмотрите за тем, что выводится на экран при запуске X. Название файла обычно будет выведено в самом начале перед всеми опциями. Синтаксис файлов XF86Config и Xconfig различен, поэтому привожу оба варианта.
MS-совместимая последовательная мышь
XF86config:
Section "Pointer" Protocol "microsoft" Device "/dev/mouse" EndSection |
Xconfig:
# # Определение мыши и параметры # Microsoft "/dev/mouse" |
MS-совместимая мышь с эмуляцией 3й кнопки
XF86config:
Section "Pointer" Protocol "microsoft" Device "/dev/mouse" Emulate3Buttons EndSection |
Xconfig:
# # Определение мыши и параметры # Microsoft "/dev/mouse" Emulate3Buttons |
MSS-совместимая мышь с 3 кнопками
XF86config:
Section "Pointer" Protocol "mousesystems" Device "/dev/mouse" ClearDTR # These two lines probably won't be needed, ClearRTS # try without first and then just the DTR EndSection |
Xconfig:
# # Определение мыши и параметры # MouseSystems "/dev/mouse" ClearDTR # Эти две строки могут быть необязательны, ClearRTS # попробуйте убрать первую строку |
MS-совместимая мышь с gpm -R
XF86config:
Section "Pointer" Protocol "MouseSystems" Device "/dev/gpmdata" EndSection |
Xconfig:
# # Определение мыши и параметры # MouseSystems "/dev/gpmdata" |
Протестированные модели
Существует огромное количество различных моделей мышей, и я не стал бы рекомендовать одну из них в ущерб другой. Ниже приведен список мышей, которые после определенных настроек (или вовсе без них) могут работать в Linux с использованием всех 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. От Roderick Johnstone (rmj@ast.cam.ac.uk)
Truemouse, сделано в Тайване
Хорошо работает при включенном `ClearDTR' в X*config. (От Tim MacEachern)
Champ brand mouse
Необходимо, чтобы переключатель стоял в режиме PC, который устанавливает протокол MouseSystems (tnugent@gucis.cit.gu.edu.au)
MicroSpeed mouse
Обычная двух-протокольная мышь.
Venus brand ($7)
Оснащена внутренним переключателем протоколов. (От mhoward@mth.com )
Saturn
Оснащена переключателем 2/3, нормально работает в режиме MouseSystems. (От grant@oj.rsmas.miami.edu .)
Manhattan mouse
Переключатель режимов `MS AM' / `PC AT'. Отлично работает с gpm -R. (От komanec@umel.fee.vutbr.cz).
Inland mouse
Имеет переключатель MS/PC, работает отлично. (От http://ptsg.eecs.berkeley.edu/~venkates).
qMouse (3 кнопки), FCC ID E6qmouse X31
Продается в США за $10. Работает с `gpm -t msc -r 20'. Нет переключателя для режима MouseSystems. Ненадежна в X. Не отвечает на echo "*n" > /dev/mouse.
Mitsumi Mouse (2 кнопки), FCC ID EW4ECM-S3101
Продается в США за $12. Надежно работает в X в консоли, мягкий двойной щелчок. (Эти две информации от gustafso@math.utah.edu)
Мышь PC Accessories, которую я получил от CompUSA за $10
Имеет переключатель PC/MS. Работает нормально. (От steveb@communique.net)
First Mouse
Двойной режим Microsoft/MouseSystems. Режим MouseSystems устанавливается нажатием кнопки при включении. Переключателей нет. echo '*n' не работает. gpm -R'
работает отлично. (От peterk@henhouse.demon.co.uk)
Trust 3-х кнопочная мышь
Имеет переключатель режимов, отлично работает как MouseSystems в режиме `PC'. gpm не любит режим Microsoft.
Chic 410
Хорошо работает в режиме MS c gpm -R. От Stephen M. Weiss (steve@esc.ie.lehigh.edu)
KeyMouse 3-х кнопочная мышь
Работает с ClearDTR и ClearRTS в X*onfig; `-o dtr' необходимо для корректной работы gpm. (От EZ4PHIL@aol.com)
Qtronix keyboard `Scorpio 60'
Все три кнопки работают при включенном протоколе MouseSystems. (От hwe@uebemc.siemens.de)
Tecra 720 laptop
Сенсорная панель - устройство /dev/cua0; стик - /dev/psaux. (От apollo@anl.gov)
Мышь Anubis
Прекрасно работает, нужно держать нажатой левую кнопку при переключении в виртуальную консоль X. (От Joel Crisp)
Мышь Yakumo No.1900
Работает с gpm -R -t ms. (От Oliver Schwank)
Genius `Easy Trak' Trackball
Это не Microsoft совместимая мышь, используйте Mouseman в Xconfig и мышь будет отлично работать. (От VTanger@aol.com.)
Highscreen Mouse Pro
`Отлично работает' сказал alfonso@univaq.it.
Logitech CA
Работает в X используя протокол MMseries, на скорости 2400 бод, с частотой 150. (Должны также работать Logitech CC, CE, C7 & C9). (От vkochend@nyx.net.)
Мышь A4-Tech
Работает отлично, нужна строка DTR для X и gpm. (От deane@gooroos.com)
Мышь Vertech
Режимы Microsoft/Mousesystems, можно спаять для установки постоянного режима. (От duncan@fs3.ph.man.ac.uk.)
Boeder M-7 ``Bit Star'' (и другие серии M, кроме M13)
Переключение на протокол Mousesystems - удерживанием клавиши при включении. (От mailto:sjt@tappin.force9.co.uk.)
Мышь Mouse Systems ``Scroll'' (4 кнопки и колесо-кнопка)
Имеет переключатель 2/3 - в режиме 3 - 3- х кнопочная мышь MouseSystems, игнорирует дополнительную кнопку и колесо Не нужно ClearRTS/DTR. (От parker1@airmail.net.)
Radio Shack 3-х кнопочная мышь для последовательного порта
Model 26-8432. Работает как Mousesystems с ClearDTR. (От Sherilyn@sidaway.demon.co.uk.)
Dexxa для последовательного порта
Отлично работает с протоколом Microsoft в Xconfig, Works fine using Microsoft protocol in Xconfig, не надо ChordMiddle или чего-то другого. (От mailto:slevy@ncsa.uiuc.edu.)
Belkin 3-х кнопочная мышь
Необходим параметр -o rts для gpm (и вероятно ClearRTS под X) когда в режиме PC. (От mailto:mmicek@csz.com.)
Различные проблемы и их решения
Если у вас проблемы с мышкой в X или консоли, то, в первую очередь, необходимо проверить, не запущено ли у вас getty на порту к которому подключена мышь или что либо еще, например модем. Также необходимо проверить нет ли конфликтов прерываний, которые могут помешать работе мыши.
Возможно, вам придется нажимать левую клавишу мыши при запуске X.
Проблемы могут также возникнуть в случае неверной инициализации во время загрузки. Инициализация последовательных устройств производится при помощи команды setserial, выполняемой обычно в файле rc.serial во время загрузки системы. Для получения более подробных инструкций о настройке setserial
смотрите его man страницу и Serial - Howto. Можно немного поэкспериментировать с типами микросхемы, например, попробуйте setserial /dev/mouse uart 16550 или 16550a
независимо от того порта который, вы имеете. (Например, мыши не любят 16c550AF).
Флаг ClearDTR может работать некорректно на некоторых системах до тех пор, пока вы не отключите RTS/CTS командой:
stty -crtscts < /dev/mouse |
(Протестировано на on UART 16450/Pentium Vladimir Geogjaev geogjaev@wave.sio.rssi.ru)
Мыши Logitech могут потребовать включение ChordMiddle в вашу конфигурацию для корректной работы всех 3 клавиш. Эта строка заменяет строку Emulate3Buttons
или идет после строки /dev/mouse в файле настройки. Также вам может понадобиться включить ClearDTR и ClearRTS в ваш Xconfig. Некоторым мышам Logitech не обязательна строка ChordMiddle
- один из признаков этой проблемы проявляется в том, что меню, кажется, движется с мышью, вместо того чтобы прокручиваться. (От: chang@platform.com)
Изменение кнопок: используйте команду xmodmap, чтобы изменить настройку кнопок мыши. Например: xmodmap -e "pointer = 3 2 1"
- удобно использовать мышь для левой руки. Если у вас 2-х кнопочная мышь, тогда используются только номера 1 и 2.
Ускорение: используйте команду xset m, чтобы изменить настройки мыши. Например: xset m 2 установит ускорение 2. Смотрите страницы руководства для уточнения подробностей.
Смещение курсора по отношению к точке нажатия. Если точка нажатия и видимое положение курсора не совпадают, то, возможно, это проблема с драйвером S3 (тогда такое положение вещей можно исправить с помошью xvidtune) Попробуйте Invert_VCLK/InvertVCLK, или EarlySC.
Эта информация представлена Bill Lavender (lavender@MCS.COM) и Simon Hargrave. В XF86Config, это может выглядеть так:
Subsection "Display" Modes "1024x768" "800x600" "640x480" "1280x1024" Invert_VCLK "*" 1 ... |
Если вы получаете двойное нажатие при одинарном клике, то, скорее всего, проблема в электронике мыши. Эту проблему решил для мыши Logitech Bob Nichols (rnichols@interaccess.com). Дать конкретные рекомендации в данном случае весьма сложно, поэтому, если ваши познания в электронике ограничиваются словом транзистор, то вам лучше найти человека, который в ней разбирается.
Если у одних пользователей мышь не работает, а у других работает (например, root), то проблема скорее всего в различных файлах настройки или в рзличных версиях X. Проверьте сообщения X, которые выдаются при запуске.
Если при движении курсор стирает изображение с экрана, то это, очевидно, проблема с настройкой X сервера. Попробуйте выбрать linear (nolinear) режим при выборе видеокарты, и опции tgui_pci_write_off и tgui_pci_read_off
(обычно такие проблемы возникают на картах производства Trident).
Если указатель мыши не отображается на экране (но мышь при этом функционирует), то попробуйте установить опцию sw_cursor
в секции Device вашего X*onfig.
Если ваша оптическая мышь не работает при сильном освещении, то проблема вероятно заключается в недостаточной изоляции корпуса от внешнего света. Вы можете окрасить внутреннюю поверхность корпуса в черный цвет.
Мыши производства Microsoft, часто являются причиной проблем. Новая ``Microsoft Serial Mouse 2.1A'', как сообщают - не работает на многих системах, отключение и включение мыши может помочь. gpm версии 1.13 и выше должен подерживать мышь 2.1A, используя тип мыши pnp
(см. раздел gpm). `Microsoft Intellimouse'' также является причиной проблем, хотя эта мышь уже должна поддерживаться XFree 3.3 и более поздними версиями.
Большинство последних версий этого документа
Большинство последних версий этого документа находятся по адресу http://kipper.york.ac.uk/mouse.html
Японский перевод http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/3-Button-Mouse.euc; и французский http://www.freenix.fr/linux/HOWTO/mini/3-Button-Mouse.html. Другие переводы также могут быть доступны - проверьте ваши локальные LDP зеркала.
Большинство приложений для X написано в расчете на то, что пользователь будет использовать 3-х кнопочную мышь. Чаще всего такие мыши "совместимы" с протоколом мыши, разработанным фирмой Microsoft что (теоретически) означает, что они должны быть идеально совместимы и с X Windows.
Большинство мышей работают в двух режимах:
2-х кнопочный режим совместимый с протоколом Microsoft.
3-х кнопочный режим совместимый с протоколом MouseSystems.
Этот документ подскажет вам действия, необходимые, чтобы настроить вашу мышь для работы в двух различных режимах, особенно будет уделено внимание использованию наиболее полезного 3-х кнопочного режима.
Хотя дистрибутивы обеспечивают простую установку, проблемы все же пока остаются. Например, в RedHat есть программа mouseconfig для настройки мыши. Однако, в некоторых версиях RH5.0 есть ошибка в этой программе, поэтому убедитесь, что у вас есть для нее исправления.
Большая часть информации для этого
Большая часть информации для этого документа выужена из различных конференций по linux. Мне очень жаль, что я не сохранил запись о каждом, кто косвенно мне способствовал, огромное спасибо всем.
Итак, подведем итог:
Даже дешевые 3-х кнопочные мыши Microsoft можно "заставить" работать.
Сконфигурируйте X для использования мыши в режиме Mouse Systems.
Держите левую кнопку мыши при включении питания, чтобы мышь переключилась в режим MouseSystems.
Возможно вам понадобится держать левую клавишу мыши при запуске X.