Het volgende document wordt in goed vertrouwen aangeboden aangezien het alleen veilige programmering en procedures bevat. Door de auteur wordt geen aansprakelijkheid aanvaard voor enig verlies of schade veroorzaakt op enige wijze aan enige persoon of uitrusting, als een direct of indirect gevolg door het opvolgen van deze instructies.
De meest recente versie van dit document is altijd te vinden op http://kipper.york.ac.uk/mouse.html
Er is een Japanse vertaling te vinden op http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/3-Button-Mouse.euc; en een Franse vertaling op http://www.freenix.fr/linux/HOWTO/mini/3-Button-Mouse.html. Wellicht zijn er nog andere vertalingen beschikbaar. Kijk dit na bij je lokale LDP-mirrors.
De meeste X-applicaties zijn geschreven in de veronderstelling dat de gebruiker met een 3-knops muis zal werken. Seriële muizen zijn algemeen in het gebruik op computers en ze zijn goedkoop aan te schaffen. Veel van deze muizen hebben 3 knoppen en hiervan wordt beweerd dat ze gebruik maken van het Microsoft protocol, wat in theorie betekent dat ze ideaal zijn voor de X Window setup. (Het record voor de goedkoopste werkende 3-knops muis staat thans op $1.14!)
De meeste tweevoudige protocol muizen zullen in twee modi werken:
Aangezien distributies steeds eenvoudiger in te stellen zijn,
zouden een aantal problemen eigenlijk verdwenen moeten zijn.
RedHat heeft bijvoorbeeld een mouseconfig
programma
om het geheel in te stellen.
Een aantal versies van RH5.0 bevatte echter een bug in mouseconfig
,
dus zorg dat je controleert op patches.
Waar je als eerste voor moet zorgen is dat de software de muis kan
vinden. Zoek uit met welke seriële poort je muis is verbonden -
meestal is dit /dev/ttyS0
(COM1 onder DOS) of /dev/ttyS1
(COM2). (ttyS0
is gewoonlijk de 9 pin socket, ttyS1
de
25 pin socket, maar uiteraard is hier geen regel voor waar niet van afgeweken
wordt.) Er zijn ook een equivalent aantal /dev/cua
devices,
die vrijwel hetzelfde zijn als de ttyS
devices, maar het gebruik ervan
wordt ontmoedigd. Maak voor het gemak een nieuwe link
/dev/mouse
die naar deze poort verwijst. Voor bijvoorbeeld
ttyS0
:
ln -s /dev/ttyS0 /dev/mouse
Een aantal muizen, meestal niet de goedkoopste, heeft aan de onderkant een schakelaar met de markering `2/3'. Soms is dit `PC/MS'. In dit geval staat de instelling `2' voor de 2-knops Microsoft modus, en de `3' voor de 3-knops MouseSystems modus. De `PC/MS' schakelaar is iets gecompliceerder. Je zult waarschijnlijk bemerken dat de `MS' instelling voor Microsoft is en de `PC' voor MouseSystems. Wellicht wordt de `PC' instelling als ps/2 modus omschreven, maar het zou tevens als MouseSystems modus moeten werken. Als je een dergelijke muis hebt, kun je de schakelaar instellen op `3' of `PC', de MouseSystems instellingen in je XConfigs (zie hieronder) plaatsen en de muis zou perfect in 3-knops modus moeten werken.
Als je geen schakelaars en geen instructies hebt, zul je wat moeten experimenteren. Het eerste wat je kunt proberen is ervan uit te gaan dat de fabrikant van de muis de waarheid spreekt, en de muis volledig Microsoft compatibel is. Stel Xconfigs zo in dat het uitgaat van een Microsoft muis (zie de sectie Xconfig) en probeer het uit.
Als de muis in het geheel niet werkt, dan heb je óf geen Microsoft muis, óf er doet zich een ander probleem voor. Probeer de andere protocollen in de configs, de man page voor het config bestand is de beste plaats om te zoeken. Kijk ook verderop in de sectie Diverse problemen.
Wat je waarschijnlijk zal bemerken wanneer je onder X draait, is dat de muis prima werkt, maar slechts de twee buitenste knoppen iets doen. Je kunt dit uiteraard accepteren en de derde knop emuleren, (druk beide knoppen tegelijkertijd in als vervanging voor de middelste knop) zoals je dat met een twee-knops muis doet. Hiervoor wijzig je het Xconfig bestand zoals aangegeven in de sectie Xconfig voorbeeld. Dit kan betekenen dat je voor niks een 3-knops muis hebt gekocht, en er beslist niets mee bent opgeschoten. Dus nu zul je naar je hardware moeten kijken.
Zelfs goedkope muizen kunnen onder het Mouse Systems protocol werken, met alle drie de knoppen werkend. De truuk, iets wat je zelden in de instructies terug zult vinden, bestaat hieruit de muis te laten denken dat het een Mouse Systems muis is.
Wanneer de muis voor het eerst van stroom wordt voorzien, en als de linkerknop ingedrukt wordt gehouden, schakelt het over naar de Mouse Systems modus. Een simpel feit, maar niet altijd gepubliceerd. Merk op dat een soft reboot van je computer wellicht de muis niet van stroom ontdoet en het daarom misschien niet werkt. Er zijn nog een aantal andere manieren om naar een andere modus te schakelen, die mogelijk wel of niet met je specifieke muis werken. Er zijn een aantal methodes die minder drastisch zijn dan het rebooten van je computer, twee ervan zijn zelfs drastischer!
echo "*n" > /dev/mouse
, wat hetzelfde effect zou moeten hebben
als de verbinding ervan met de computer verbreken.
Houd de linkerknop ingedrukt voor de Mouse Systems modus, niet voor
Microsoft. Je zou dit in een script kunnen plaatsen waarmee je X opstart.echo "*n"
niet werkt (en andersom).
Een kopie van de broncode is te vinden op
http://kipper.york.ac.uk/src/fix-mouse.c
-----------
| o | o | o | SW1
-----------
1 2 3
Probeer de pinnen 1-2 of 2-3 te koppelen, en kijk of dit het functioneren van
de muis verandert. Als dit zo is, kun je óf een kleine schakelaar
monteren, of solderen tegen de contacten voor een snelle en permanente
oplossing.ChordMiddle
in XF86Config en je hebt een werkende middelste knop.
Pin 3 Mode
----- ----
Open Standaard Microsoft. Mouse Systems als bij de systeemstart een
knop ingedrukt wordt gebouden.
GND Altijd Mouse Systems.
Vdd Altijd Microsoft.
(Pinnen zijn als volgt genummerd:)
____
pin1 -| \/ |-
pin2 -| |-
pin3 -| |-
-| |-
-| |-
-| |-
-| |-
pin8 -|____|-
(Deze info is afkomstig van Hans-Christoph Wirth, en Juergen Exner, die
het postte in de.comp.os.linux.hardware). Je kunt een link solderen tussen
pin 3 en gnd, wat de muis in MouseSystems modus zal corrigeren.
-----
--- R ---------O------ + Supply
| ----- | | C = 100nF capacitor
| | E | R = 100kOhm
| __ / | T = BC557 transistor
| / \ O
| B | #V | T /
|-----|-# | / Schakelaar van de linkerknop van de muis
| | #\ | O
| \__/ |
--- \ C |
--- C ------O----------> (ergens diep binnenin de muis)
|
### Ground
De testmuis was er een zonder naam van het model MUS2S.
Of dit werkt bij andere muizen hangt af van het circuit van de muis;
als de schakelaar verbonden is met ground en niet met
+Supply, zou een npn-transistor zoals de
BC547 moeten werken; R en C moeten dan ook worden verwisseld.Dit is het dan, de keuze is aan jou. Houd je bij de standaard Microsoft twee-knops muis, of werk uit hoe de modus om te zetten en stel X zo in dat je hier profijt van hebt.
In de laatste paar jaar zijn muizen met een wiel op de markt verschenen, te beginnen met de Microsoft Intellimouse en zich verspreidend over andere fabrikanten. Met het wiel kan als op een knop worden geklikt, of heen en terug worden gebladerd. Verreweg de beste referentie voor informatie is http://www.inria.fr/koala/colas/mouse-wheel-scroll/ waar wordt beschreven hoe je heel veel X-applicaties zover kan krijgen dat ze de actie scrollen herkennen.
In het algemeen heb je een tamelijk nieuwe Xserver nodig om gebruik te kunnen maken van de scroll-actie, maar een aantal oudere servers zal in ieder geval de klik-acties herkennen. De Intellimouse wordt bijvoorbeeld door XFree 3.3.1 en latere versies herkend.
gpm
is het programma waarmee je de muis in console modus
kunt gebruiken. het wordt gewoonlijk in linux-distributies opgenomen, en
kan vanaf de opdrachtregel of in het opstartscript /etc/rc.d/rc.local
worden opgestart. Merk op dat distributies niet altijd de meest recente
versie (1.13 tijdens dit schrijven) hebben opgenomen. De laatste versie
is te vinden op mirrors van sunsite.unc.edu.
De belangrijkste modi voor seriële muizen onder gpm zijn:
gpm -t ms
gpm -t msc
gpm -t help
voor Microsoft of MouseSystems modi, of om de muis uit te proberen
en je aan te geven wat het vond.
Wellicht heb je de -3
vlag nodig om gpm te kunnen uitvoeren
en mogelijk nog de optie DTR, met behulp van de vlag
-o dtr
:
gpm -3 -o dtr -t msc
Het lukt met gpm
vaak alle drie de knoppen, zelfs in Microsoft
modus, te herkennen. En nieuwere versies (versie 1.0 en later (?)) kunnen
deze informatie aan andere programma's beschikbaar stellen.
Hiervoor moet je gpm opstarten met de -R vlag, zoals in:
gpm -R -t ms
Dit zorgt dat gpm de muisdata naar een nieuw device, genaamd
/dev/gpmdata
, exporteert, wat voor ieder ander programma
op een muis lijkt. Dit device maakt altijd gebruik van het
MouseSystems protocol. Je kunt Xconfig dan instellen dat het hier
gebruik van maakt in plaats van /dev/mouse
zoals hieronder
wordt getoond, maar natuurlijk moet je er wel voor zorgen dat gpm
altijd draait wanneer je X gebruikt. Een aantal mensen liet weten
dat een aantal acties met de middelste knop niet correct door X
wordt geïnterpreteerd wanneer van deze techniek gebruik wordt
gemaakt. Dit zou verholpen kunnen worden door een individuele setup
van de muis.
Wijzigen van de knoppenindeling voor gpm en X ( [email protected])
Wellicht merk je dat gpm een andere standaard knoppenindeling gebruikt dan X, dus gebruik van beide systemen op dezelfde computer kan verwarrend zijn. Om te zorgen dat X dezelfde knoppen voor de selecteer- en plakbewerkingen gebruikt als gpm, gebruik je de X-opdracht:
xmodmap -e "pointer = 1 3 2"
wat zorgt dat er met de linkerknop kan worden geselecteerd en
met de rechtermuisknop kan worden geplakt, voor zowel 2-knops als
3-knops muizen. Om gpm te dwingen gebruik te maken van de X standaard
knoppenindeling, start je het met de opdracht
-B
, bv:
gpm -t msc -B 132
In een aantal gevallen, zoals bijvoorbeeld bij een laptop met een
ingebouwd aanwijsapparaat, kan het zijn dat je als tweede apparaat
gebruik wenst te maken van een seriële muis. In de meeste
situaties maakt het ingebouwde apparaat gebruik van het PS/2 protocol,
en kan worden genegeerd als je het niet wenst te gebruiken.
Configureer gpm of X eenvoudigweg zo dat het net als anders
/dev/ttyS0
(of wat dan ook) gebruikt.
Om beiden tegelijkertijd te gebruiken, kun je gpm -M
toepassen
om de devices opnieuw te exporteren. Meer details staan in de man page
van gpm. Ook ondersteunen XFree 3.3.1 en latere versies meerdere
invoerapparaten, door gebruik te maken van het XInput mechanisme. In
automatisch gegenereerde XF86Config bestanden zouden alle benodigde
opmerkingen moeten staan.
De lokatie van het configuratiebestand voor X is afhankelijk van de
specifieke uitgave en distributie van je systeem.
Waarschijnlijk is dit /etc/Xconfig, /etc/XF86Config
of
/usr/X11/lib/X11/XF86Config.
Je zou moeten zien welke het is als
je X opstart - het zal naar het scherm worden gekaatst voordat alle
opties worden weergegeven. De syntax tussen XF86Config en Xconfig bestanden
verschilt iets, dus worden beiden gegeven.
Microsoft Seriële muis
Section "Pointer"
Protocol "microsoft"
Device "/dev/mouse"
EndSection
#
# Muisdefinitie en daaraan gerelateerde parameters
#
Microsoft "/dev/mouse"
Microsoft Seriële muis met drie-knops emulatie
Section "Pointer"
Protocol "microsoft"
Device "/dev/mouse"
Emulate3Buttons
EndSection
#
# Muisdefinitie en daaraan gerelateerde parameters
#
Microsoft "/dev/mouse"
Emulate3Buttons
MouseSystems drie-knops seriële muis
Section "Pointer"
Protocol "mousesystems"
Device "/dev/mouse"
ClearDTR # Deze twee regels zijn waarschijnlijk niet nodig,
ClearRTS # probeer het eerst zonder en dan slechts de regel
# met DTR
EndSection
#
# Muisdefinitie en daaraan gerelateerde parameters
#
MouseSystems "/dev/mouse"
ClearDTR # Deze twee regels zijn waarschijnlijk niet nodig,
ClearRTS # probeer eerst zonder de eerste en dan slechts de DTR
Microsoft Seriële muis met gpm -R
Section "Pointer"
Protocol "MouseSystems"
Device "/dev/gpmdata"
EndSection
#
# Muisdefinitie en daaraan gerelateerde parameters
#
MouseSystems "/dev/gpmdata"
De enige bedrading die in een muiskabel nodig is: TxD en RxD voor gegevensoverdracht, RTS en/of DTR voor stroombronnen, en aarde. Vertaald naar pinnummers:
9-pin poort 25-pin poort
TxD 3 2
RxD 2 3
RTS 7 4
DTR 4 20
Gnd 5 7
Deze tabel kan van pas komen als je adapters tussen 9- en 25-pin pluggen of uitbreidingskabels wilt maken.
setserial
, welke vanuit het opstartscript
/etc/rc.d/rc.serial
wordt uitgevoerd. Kijk in de man page van
setserial
en de Serial-HOWTO voor meer details.
Het kan het waard zijn wat met typen te experimenteren, probeer
bijvoorbeeld setserial /dev/mouse uart 16550
of 16550a
ongeacht de poort die je in werkelijkheid hebt. (Muizen vinden de
16c550AF bijvoorbeeld niet prettig).ClearDTR
vlag op een aantal systemen
niet juist werkt, tenzij je de RTS/CTS handshaking deactiveert met de
opdracht:
stty -crtscts < /dev/mouse
(Getest op een UART 16450/Pentium door Vladimir Geogjaev
[email protected])ChordMiddle
nodig om de
middelste van de drie knoppen werkend te krijgen. Deze regel vervangt
Emulate3Buttons
of komt na de regel /dev/mouse
in het config bestand. Misschien dat je ook nog de regels ClearDTR
en
ClearRTS
in Xconfig nodig hebt. Voor een aantal Logitech muizen
is de regel ChordMiddle
niet nodig - één van de
symptomen van dit
probleem is dat menu's met de muis schijnen te verplaatsen in plaats dat
ze uitklappen/naar beneden scrollen.
(Van:
[email protected])xmodmap
voor het wijzigen welke fysieke knop bij iedere muisklik wordt registreerd.
bv: xmodmap -e "pointer = 3 2 1"
zal de knoppen voor linkshandigen
instellen. Als je slechts een twee-knops muis hebt, dan zijn het alleen de
nummers 1 & 2. xset m
voor het wijzigen
van de muisinstellingen. xset m 2
stelt de acceleratie in op 2.
Kijk in de manpage voor de volledige details.Invert_VCLK/InvertVCLK, of EarlySC.
Deze info is afkomstig van Bill Lavender
(
[email protected]) en
Simon Hargrave. In XF86Config ziet dit er ongeveer zo uit:
Subsection "Display"
Modes "1024x768" "800x600" "640x480" "1280x1024"
Invert_VCLK "*" 1
...
linear
,
of misschien nolinear
aan de graphics card sectie toe te voegen.
of als het een PCI-kaart is, de opties
tgui_pci_write_off
en tgui_pci_read_off
.
(Dit schijnt een probleem te zijn bij Trident kaarten)."sw_cursor"
in de
Device sectie van het config bestand.gpm
versie 1.13 en nieuwere versies zouden ook 2.1.A
muizen moeten ondersteunen, door gebruik te maken van het muistype
pnp
. (Zie
gpm section
hoe dit opnieuw te exporteren). Ook de
``Microsoft Intellimouse'' veroorzaakt problemen, alhoewel deze nu
door XFree versie 3.3 en latere versies zou moeten worden ondersteund.Er zijn heel wat verschillende muizen, en ik kan eerlijkheidshalve niet aangeven dat je bij aanschaf de ene boven de andere zou moeten verkiezen. Wat ik wel kan doen, is je een lijst geven met wat ik denk dat deze muizen doen, gebaseerd op ervaring en van horen zeggen. Zelfs met deze informatie zou je een beetje voorzichtig moeten zijn - we hadden op kantoor twee computers met op beide computers een identieke muis, wat met de ene muis werkte, werkte niet met de andere muis! Alle aanvullingen op deze lijst zijn van harte welkom.
Mouse Systems optische muis, seriële versie
Werkt goed (zoals je mag verwachten gezien de naam!) zonder
ClearDTR of ClearRTS in config.
WiN mouse, als verkocht door Office World voor acht quid.
Standaard tweevoudige-modus Microsoft/MouseSystems.
Agiler Mouse 2900
Standaard tweevoudige-modus Microsoft/MouseSystems. SYSGRATION SYS2005
chip is soldeerbaar.
Sicos muis,
Werkt ok, benodigd ClearDTR & Clear RTS in config.
Index verkoopt een muis voor 10 quid,
Werkt in 3-knops modus, maar zonder prettige instructies geleverd:-)
Artec muis
Gebruikelijke tweevoudige-protocol muis, benodigd `ClearDTR' ingesteld
in config, GEEN `ClearRTS'
DynaPoint 3-knops seriële muis.
Gebruikelijke tweevoudige-protocol muis, benodigd `ClearDTR' EN `ClearRTS'
in Xconfig.
Genius Easymouse 3-knops muis
Werkt prima met Mouseman protocol zonder de ChordMiddle parameter
ingesteld.
Van Roderick Johnstone (
[email protected])
Truemouse, gefabriceerd in Taiwan
Werkt OK, benodigd `ClearDTR' in config. (Van
Tim MacEachern)
Champ merk muis
Moet zijn geschakeld in PC modus, wat tevens het MouseSystems protocol
activeert. (Van [email protected])
MicroSpeed muis
Gebruikelijke tweevoudige-protocol muis.
Venus brand ($7)
Heeft binnenin een jumper om te schakelen tussen 2- en 3-knops modus.
(Van
[email protected] )
Saturn
Te schakelen muis, werkt OK als MouseSystems in 3-knops positie.
(Van
[email protected] .)
Manhattan muis.
Schakelaar voor `MS AM' / `PC AT' modi, MS modus werkt prima met
de methode gpm -R
. (Van
[email protected]).
Inland mouse.
Schakelaar voor `PC/MS' modi, werkt prima. (Van
http://ptsg.eecs.berkeley.edu/~venkates).
qMouse (3-knops), FCC ID E6qmouse X31.
Wordt in de USA verkocht voor ongeveer $10. Werkt met
`gpm -t msc -r 20'. Geen jumpers of schakelaars voor
MouseSystems 3-knops modus. Onbetrouwbaar onder X.
Reageert niet op echo "*n" > /dev/mouse
.
Mitsumi Mouse (2-knops), FCC ID EW4ECM-S3101.
Wordt in de USA verkocht voor ongeveer $12.
Betrouwbaar onder X en onder gpm, soepele twee-knops muis.
(Deze twee komen van
[email protected])
PC Accessories muis die ik kreeg van CompUSA voor minder dan
$10.
. Heeft aan de onderkant een PC/MS schakelaar.
Werkt OK. (Van
[email protected])
First Mouse - behoorlijk goedkoop voor 7.79 pounds bij Tempo.
Dual Microsoft/MouseSystems, modus in te stellen door het indrukken van
de knop tijdens de systeemstart. Geen schakelingen, geen koppelingen.
Vier stroomdraadsverbinding, echo '*n' werkt niet.
`gpm -R' werkt als een speer. (Van
[email protected])
Trust 3-knops muis.
Tweevoudige modus met schakelaar, werkt OK als MouseSystems in `PC'
modus. gpm vindt de Microsoft modus maar niks.
Chic 410
Werkt perfect in ms modus en het gebruikt wordt met de opdracht
gpm -R.
Van Stephen M. Weiss
(
[email protected])
KeyMouse 3-knops muis.
Werkt OK met ClearDTR en ClearRTS in Xconfig;
`-o dtr' nodig voor gpm. (Van
[email protected])
Qtronix keyboard `Scorpio 60'
Alle drie de knoppen werken in MouseSystems protocol. (Van
[email protected])
Tecra 720 laptop
De glidepoint is op /dev/cua0; de stick op /dev/psaux.
(Van
[email protected])
Anubis muis
Werkt prima, linkerknop ingedrukt houden wanneer wordt overgeschakeld
naar de X virtuele console.
(Van
Joel Crisp)
Yakumo No.1900 muis
Werkt met gpm -R -t ms
exporterend naar X.
(Van
Oliver Schwank)
Genius `Easy Trak' Trackball
Is niet Microsoft compatibel, gebruik Mouseman
in Xconfig en het zal prima werken. (Van
[email protected].)
Highscreen Mouse Pro
`Werkt prima' zegt
[email protected].
Logitech CA series
Werkt in X met het MMseries protocol, op 2400 Baud, 150 SampleRate.
(Zou ook moeten gelden voor de Logitech CC, CE, C7 & C9 muizen). (Van
[email protected].)
A4-Tech muis
Werkt OK, DTR
regel nodig voor zowel X als gpm.
(Van
[email protected])
Vertech muis
Normaal Microsoft/Mousesystems functioneren, kan worden gesoldeerd
voor een blijvende correctie.
(Van
[email protected].)
Boeder M-7 ``Bit Star'' (en andere M series buiten M13)
Schakelt over naar het Mousesystems protocol door één van de
knoppen ingedrukt te houden bij het aanzetten van de computer.
(Van
mailto:[email protected].)
Mouse Systems ``Scroll'' Muis (vier knoppen en een wheel/knop)
Heeft een 2/3 schakelaar - functioneert in modus 3 als een drie-knops MouseSystems muis,
negeert extra knop & wheel. ClearRTS/DTR
niet nodig.
(Van
[email protected].)
Radio Shack 3-knops Seriële muis
Model 26-8432, beschikbaar in Tandy voor ongeveer 20 quid. Werkt als
Mousesystems met ClearDTR.
(Van
[email protected].)
Dexxa seriële muis
Werkt prima met het Microsoft protocol in Xconfig, geen ChordMiddle of
iets anders nodig.
(Van
mailto:[email protected].)
Belkin 3-knops muis
Als aangeschaft bij Sears (\$10), benodigd -o rts
onder gpm
(een vermoedelijk ClearRTS
onder X) in PC modus.
(Van
mailto:[email protected].)
Veel van de informatie voor dit document is bijeen vergaard uit de diverse linux nieuwsgroepen. Het spijt me dat ik niet heb bijgehouden wie hier indirect aan hebben bijgedragen, heel veel dank allemaal.
Dus samengevat: