The 3 Button Serial Mouse mini-HOWTO

Geoff Short, geoff@kipper.york.ac.uk

v1.33, 31 maggio 1998
Come far funzionare un mouse seriale a tre tasti con Linux. Traduzione di Fabrizio Stefani, 29 ottobre 1999.

1. Liberatoria

Il seguente documento è offerto in buona fede comprendendo solo programmi e procedure sicure. L'autore non accetta nessuna responsabilità per qualsiasi perdita o danno causato in qualunque modo, a qualsiasi persona o cosa, come conseguenza diretta o indiretta del seguire le istruzioni date.

2. Introduzione

La versione più recente di questo documento può sempre essere trovata presso http://kipper.york.ac.uk/mouse.html.

C'è una traduzione in giapponese presso http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/3-Button-Mouse.euc; e una in francese presso http://www.freenix.fr/linux/HOWTO/mini/3-Button-Mouse.html. Potrebbero essere disponibili altre traduzioni - controllate i mirror dell'LDP nella vostra zona.

N.d.T.: L'ultima versione della traduzione italiana può essere trovata presso http://www.pluto.linux.it/ildp/HOWTO/HOWTO-INDEX-3.html

La maggior parte delle applicazioni X vengono scritte assumendo che l'utente lavorerà con un mouse a tre tasti. I mouse seriali sono usati comunemente coi computer e sono economici. Parecchi di tali mouse hanno 3 tasti e dichiarano di usare il protocollo Microsoft, che in teoria significa che sono l'ideale per X Windows (attualmente il record per il più economico mouse a 3 tasti, funzionante, è di 1,14$!).

La maggior parte dei mouse a doppio protocollo funzionano in due modi:

Questo documento vi guiderà attraverso i vari passi necessari per configurare e far funzionare il vostro mouse nei due suddetti modi, specialmente quelli che servono per usare il più utile modo a 3 tasti.

Man mano che le distribuzioni diventano più facili da installare alcuni problemi dovrebbero sparire. Per esempio, RedHat ha il programma mouseconfig per sistemare le cose al posto vostro. Tuttavia alcune versioni della RH 5.0 hanno un baco in mouseconfig, quindi controllate di avere le patch.

3. Porte seriali

La prima cosa da fare è di accertarsi che il software possa trovare il mouse. Scoprite a quale porta è connesso il mouse - di solito è /dev/ttyS0 (COM1 sotto DOS) o /dev/ttyS1 (COM2) (ttyS0 di solito è il connettore a 9 contatti, ttyS1 è il connettore a 25 contatti, ma ovviamente non c'è una regola fissa a tal riguardo). C'è anche un analogo numero di device /dev/cua, che sono quasi la stessa cosa dei ttyS, ma il loro uso è sconsigliato. Per prudenza create un nuovo link /dev/mouse che punta a tale porta. Per esempio la ttyS0:

ln -s /dev/ttyS0 /dev/mouse

4. Mouse con interruttore

Alcuni mouse, di solito non quelli più economici, hanno un interruttore sul fondo contrassegnato con `2/3'. A volte potrebbe essere `PC/MS'. In tal caso la posizione `2' è per il modo Microsoft a 2 tasti e la posizione `3' per quello MouseSystems a 3 tasti. L'interruttore `PC/MS' è leggermente più complicato. Probabilmente scoprirete che la posizione `MS' indica Microsoft e `PC' MouseSystems. Potreste trovare la posizione `PC' descritta come modo ps/2, ma dovrebbe funzionare lo stesso per MouseSystems. Se avete un tale mouse potete mettere l'interruttore su `3' o `PC', mettere le impostazioni per MouseSystems nel vostro XConfig (vedere più avanti) e il mouse dovrebbe funzionare perfettamente nel modo a 3 tasti.

5. Mouse normali

Se non avete nessun interruttore e nessuna istruzione, allora è necessario fare un po' di esperimenti. La prima cosa da provare è di assumere che il costruttore stia dicendo la verità e il mouse è pienamente Microsoft. Impostate il vostro Xconfigs in modo che si aspetti un mouse Microsoft (vedere la Sezione Xconfig) e provatelo.

Se il mouse non funziona affatto allora il vostro non è un mouse Microsoft, oppure c'è qualche altro problema. Provate gli altri protocolli nei file di configurazione, la pagina di manuale del file di configurazione è il miglior posto dove incominciare a guardare. Guardate anche nella sezione Problemi vari più avanti.

Probabilmente ciò che otterrete sarà che sotto X il mouse funziona bene ma solo i due pulsanti esterni fanno qualcosa. Ovviamente potete accettare questa situazione ed emulare il terzo pulsante (premete entrambi i pulsanti contemporaneamente per fare clic col terzo) come fareste con un mouse a due tasti. Per fare ciò cambiate il vostro file Xconfig come mostrato nella successiva sezione Esempio di Xconfig. Questo potrebbe significare che avete comprato un mouse a 3 tasti senza un buon motivo e certamente non avete fatto passi avanti. Quindi adesso dovete controllare il vostro hardware.

6. Far funzionare un mouse nel modo a 3 tasti

Anche i mouse economici possono lavorare col protocollo Mouse Systems, con tutti e tre i pulsanti funzionanti. Il trucco è di indurre il mouse a pensare di essere un Mouse Systems, qualcosa che vedrete raramente nelle istruzioni.

Quando il mouse riceve l'alimentazione, se il pulsante sinistro è premuto, esso commuta nel modo Mouse Systems. Una cosa semplice, ma non sempre documentata. Osservate che un reset software del computer potrebbe non togliere l'alimentazione al mouse, e quindi potrebbe non funzionare. Per commutare il modo di funzionamento ci sono altre maniere che, con il vostro particolare mouse, potrebbero funzionare oppure no. Alcune di esse sono meno drastiche del riavvio del computer, un paio invece lo sono di più!

Questo è quanto, la scelta sta a voi. Restarvene col modo predefinito Microsoft a due tasti, oppure lavorarci su e trovare il sistema per cambiare il modo e configurare X per avvantaggiarsene.

7. Mouse con rotella

I mouse con le rotelle sono apparsi negli ultimi anni, a partire dal Microsoft Intellimouse e poi per opera degli altri costruttori. La rotella può essere premuta come un pulsante, oppure rotolata su e giù. http://www.inria.fr/koala/colas/mouse-wheel-scroll/ è di gran lunga la miglior fonte di informazioni, descrive come far riconoscere l'azione di scorrimento a parecchie applicazioni X.

In generale vi servirà un Xserver abbastanza nuovo per usare l'azione di scorrimento, ma alcuni vecchi server riconosceranno la pressione della rotella. Per esempio, l'Intellimouse è supportato da XFree 3.3.1 e successivi.

8. Usare gpm per commutare il modo del mouse

gpm è il programma che permette di usare il mouse nel modo console. Di solito è incluso nelle distribuzioni di Linux e può essere lanciato dalla riga di comando o nello script di avvio /etc/rc.d/rc.local. Osservate che le distribuzioni non contengono sempre la versione più recente (la 1.13 nel momento in cui scrivo), che può essere trovata sui mirror di sunsite.unc.edu.

Sotto gpm, i modi fondamentali per i mouse seriali sono:

gpm -t ms
gpm -t msc
gpm -t help

per i modi Microsoft, MouseSystems, o per sondare il mouse al posto vostro e dirvi cosa ha trovato. Per lanciare gpm nel modo MouseSystems potrebbe servirvi l'opzione -3, e forse l'opzione DTR (usando -o dtr):

gpm -3 -o dtr -t msc

gpm è spesso in grado di riconoscere tutti e tre i pulsanti del mouse anche nel modo Microsoft. Le versioni più nuove (1.0 e successive (?)) possono poi rendere disponibile tale informazione agli altri programmi. Perché ciò funzioni dovete lanciare gpm con l'opzione -R, in questo modo:

gpm -R -t ms
Così facendo gpm esporterà i dati del mouse su un nuovo device, chiamato /dev/gpmdata, che agli altri programmi apparirà come un mouse. Osservate che tale device usa sempre il protocollo MouseSystems. Potete quindi dire a Xconfig di usare tale device (come mostrato sotto) al posto di /dev/mouse ma, ovviamente, dovrete assicurarvi che gpm sia in esecuzione quando volete usare X. Qualcuno ha riferito che, usando questa tecnica, alcune azioni del pulsante centrale non vengono interpretate correttamente, ciò potrebbe essere dovuto ad una particolare impostazione del mouse.

Cambiare la mappatura dei tasti per gpm e X ( gustafso@math.utah.edu)

Potreste accorgervi che gpm usa una diversa mappatura predefinita dei tasti rispetto a X e quindi usare entrambi i sistemi sulla stessa macchina potrebbe generare confusione. Per fare in modo che X usi gli stessi pulsanti di gpm per le operazioni di "seleziona" e "incolla", bisogna usare il comando:

xmodmap -e "pointer = 1 3 2"
che associa il pulsante sinistro a "seleziona" e il destro a "incolla", sia per i mouse a 2 tasti che a tre tasti. Per forzare gpm ad usare la mappatura dei tasti predefinita di X, lanciatelo con il comando -B, cioè:
gpm -t msc -B 132

9. Usare due mouse

In alcuni casi, per esempio un laptop con dispositivo di puntamento integrato, potreste voler usare un mouse seriale come secondo dispositivo di puntamento. Nella maggior parte dei casi il dispositivo integrato userà il protocollo PS/2 e potete ignorarlo, se non avete intenzione di usarlo. Semplicemente configurate gpm o X per usare /dev/ttyS0 (o quel che è), come al solito.

Per usarli entrambi contemporaneamente potete usare gpm -M per riesportare i device. Maggiori dettagli sulla pagina di manuale di gpm. Inoltre, XFree 3.3.1 e successivi supportano dispositivi d'ingresso multipli usando il meccanismo XInput. I file XF86Config autogenerati dovrebbero avere al loro interno i commenti necessari.

10. Esempi di file XF86Config e Xconfig

La collocazione dei vostri file di configurazione di X dipende dalla vostra particolare versione e distribuzione. Probabilmente sarà /etc/Xconfig, /etc/XF86Config oppure /usr/X11/lib/X11/XF86Config. Dovreste poter vedere qual è all'avvio di X - verrà mostrato sullo schermo prima di tutte le opzioni. La sintassi dei file XF86Config e Xconfig è leggermente diversa, quindi vengono riportate entrambe.

Mouse seriale Microsoft

Mouse seriale Microsoft con emulazione dei tre tasti

Mouse seriale MouseSystems a tre tasti

Mouse seriale Microsoft con gpm -R

11. Fili, prolunghe e adattatori

Gli unici tre fili necessari nel cavetto di un mouse sono: TxD e RxD per il trasferimento dati, RTS e/o DTR per l'alimentazione e la massa. Tradotto in numeri di pin:

            porta a 9 pin  porta a 25 pin  
        TxD     3                2
        RxD     2                3
        RTS     7                4
        DTR     4               20
        Gnd     5                7

La tabella precedente può essere utile se volete realizzare degli adattatori per i connettori a 9 e 25 pin, oppure delle prolunghe.

12. Problemi e configurazioni varie

13. Modelli provati

Ci sono un sacco di mouse diversi in giro ed io onestamente non posso consigliarvi di comprarne uno piuttosto che un altro. Quello che posso fare è di fornirvi una lista, basata sull'esperienza e sul sentito dire, di come penso che tali mouse si comportino. Anche con tali informazioni dovete stare attenti - nel nostro ufficio abbiamo due mouse identici su due computer, certe cose funzionano su uno ma non sull'altro! È gradita qualsiasi aggiunta a questa lista.

Mouse ottici Mouse System, nella versione seriale
Funzionano bene (come ci si aspetta dal nome!) senza ClearDTR o ClearRTS nella configurazione.
WiN mouse, quelli venduti per otto sterline da Office World
Sono del tipo standard a doppio modo Microsoft/MouseSystems.
Mouse Agiler 2900
Sono del tipo standard a doppio modo Microsoft/MouseSystems. L'integrato SYSGRATION SYS2005 è saldabile.
Mouse Sicos
Funziona bene, servono ClearDTR e Clear RTS nella configurazione.
Index vende un mouse per 10 sterline
Non funziona nel modo a tre tasti, ma ha delle belle istruzioni :-)
Mouse Artec
Solito mouse a doppio protocollo, serve l'impostazione di `ClearDTR' nella configurazione (ma NON quella di `ClearRTS').
Mouse seriale DynaPoint a 3 tasti.
Solito mouse a doppio protocollo, serve l'impostazione di `ClearDTR' e di `ClearRTS' nell'Xconfig.
Genius Easymouse a 3 tasti
Funziona bene col protocollo Mouseman, senza l'impostazione del parametro ChordMiddle. Da Roderick Johnstone ( rmj@ast.cam.ac.uk).
Truemouse, made in Taiwan
Funziona bene, serve `ClearDTR' nella configurazione (da Tim MacEachern).
Mouse marcato Champ
Bisogna mettere l'interruttore sul modo PC, che abilita anche il protocollo MouseSystems (da tnugent@gucis.cit.gu.edu.au).
Mouse MicroSpeed
Solito mouse a doppio protocollo.
Marcato Venus (7$)
Ha un ponticello all'interno per commutare fra i modi a 2 e 3 tasti (da mhoward@mth.com).
Saturn
Mouse con interruttore, funziona bene come MouseSystems nella posizione a 3 tasti (da grant@oj.rsmas.miami.edu).
Mouse Manhattan.
Interruttore per i modi `MS AM' / `PC AT', il modo MS funziona bene con il metodo gpm -R (da komanec@umel.fee.vutbr.cz).
Mouse Inland.
Interruttore per i modi `PC/MS', funziona bene (da http://ptsg.eecs.berkeley.edu/~venkates).
qMouse (3 tasti), FCC ID E6qmouse X31.
Venduto in USA per circa 10$. Funziona con `gpm -t msc -r 20'. Nessun ponticello o microinterruttore per il modo MouseSystems a 3 tasti. Inaffidabile sotto X. Non risponde a echo "*n" > /dev/mouse.
Mouse Mitsumi (2 tasti), FCC ID EW4ECM-S3101.
Venduto in USA per circa 12$. Affidabile sotto X e sotto gpm, morbido doppio tasto (questi due da gustafso@math.utah.edu).
Mouse PC Accessories, che ho comprato da CompUSA per meno di 10$.
Ha un interruttore PC/MS sul fondo. Funziona bene (da steveb@communique.net).
First Mouse - davvero economico, 7,79 sterline da Tempo.
Doppio modo Microsoft/MouseSystems, il modo è impostato dalla pressione del pulsante all'accensione. Nessun interruttore, nessun ponticello. Connessione a quattro cavi, echo '*n' non funziona. `gpm -R' funziona a meraviglia (da peterk@henhouse.demon.co.uk).
Mouse a 3 tasti Trust.
Doppio modo con interruttore, funziona bene come MouseSystems nel modo `PC'. A gpm non piace il modo Microsoft.
Chic 410
Funziona perfettamente se tenuto in modo ms e usato con il comando gpm -R. Da Stephen M. Weiss ( steve@esc.ie.lehigh.edu).
Mouse KeyMouse a 3 tasti.
Funziona bene con ClearDTR e ClearRTS nell'Xconfig; con gpm serve `-o dtr' (da EZ4PHIL@aol.com).
Tastiera Qtronix `Scorpio 60'
Tutti e tre i pulsanti funzionano col protocollo MouseSystems (da hwe@uebemc.siemens.de).
Laptop Tecra 720
Il glidepoint è su /dev/cua0; la leva è su /dev/psaux (da apollo@anl.gov).
Mouse Anubis
Funziona bene, bisogna tenere premuto il pulsante sinistro quando si commuta nella console virtuale di X (da Joel Crisp).
Mouse Yakumo No.1900
Funziona con gpm -R -t ms esportato in X (da Oliver Schwank).
Trackball Genius `Easy Trak'
Non è compatibile Microsoft, usando Mouseman nell'Xconfig funzionerà bene (da VTanger@aol.com).
Highscreen Mouse Pro
`Funziona bene' dice alfonso@univaq.it.
Serie Logitech CA
Funzionano in X usando il protocollo MMseries a 2400 Baud e 150 di velocità di campionamento (SampleRate) (dovrebbe valere anche per i mouse Logitech CC, CE, C7 e C9) (da vkochend@nyx.net).
A4-Tech mouse
Funzionano bene, serve la riga DTR sia sotto X che sotto gpm (da deane@gooroos.com).
Mouse Vertech
Normale comportamento Microsoft/Mousesystems, può essere aggiustato in modo definitivo con una saldatura (da duncan@fs3.ph.man.ac.uk).
Boeder M-7 ``Bit Star'' (e altre serie M tranne la M13)
Commuta al protocollo Mousesystems tenendo premuto un qualsiasi pulsante all'accensione (da sjt@tappin.force9.co.uk).
Mouse Systems ``Scroll'' (quattro pulsanti e un pulsante/rotella)
Ha un interruttore 2/3 - nel modo 3 funziona come un mouse MouseSystems a 3 tasti, ignorando il pulsante in più e la rotella. Non serve ClearRTS/DTR (da parker1@airmail.net).
Mouse seriale a 3 tasti Radio Shack
Modello 26-8432, disponibile col Tandy per circa 20 sterline. Funziona come Mousesystems con ClearDTR (da Sherilyn@sidaway.demon.co.uk).
Mouse seriale Dexxa
Funziona bene col protocollo Microsoft nell'Xconfig, non serve ChordMiddle né nient'altro (da slevy@ncsa.uiuc.edu).
Mouse 3 tasti Belkin
Comprato da Sears (per 10$), in modo PC sotto gpm ha bisogno di -o rts (e probabilmente di ClearRTS sotto X) (da mmicek@csz.com).

14. Ulteriori informazioni

15. La coda del mouse

Molte delle informazioni in questo documento sono state pescate dai vari newsgroup su Linux. Non ho tenuto traccia di tutti quelli che hanno indirettamente contribuito per questa via, me ne scuso, grazie tante a tutti.

Quindi, riassumendo: