Inoltra l'input del mouse e della tastiera alla sessione X.


13

Accedo al mio Pi tramite SSH.

La mia rete è troppo lenta per inoltrare il desktop del Pi al mio laptop, quindi ho un monitor collegato al mio Pi. Quando startxattraverso Putty, vedo il desktop sul mio Pi. Va tutto bene.

Tuttavia, non posso fare nulla con questo desktop, poiché tutto ciò che ho è il mouse e la tastiera del mio laptop.

Come posso inoltrare l'input del mouse e della tastiera dal mio laptop al desktop sul mio Pi?


Se stai collegando un monitor comunque, perché non collegare una tastiera e un mouse? Normalmente usi ssh quando non hai accesso al PI stesso.
Ash Burlaczenko,

@Ash non ho una tastiera. So che sono economici e tutto il resto, ma renderebbe tutto più semplice ...
ACarter

Se hai solo una tastiera e un mouse singoli, potrebbe avere senso ottenere uno switch KVM in modo da poter andare avanti e indietro.
Kibbee,

Sono sicuro di averlo scritto prima da qualche parte.
Jivings

@Kibbee Pensavo non potessi usare uno switch KVM con un laptop?
ACarter

Risposte:


12

Puoi usare un ottimo strumento chiamato x2x. Questo essenzialmente tratta il monitor collegato al dispositivo remoto (il Raspberry Pi) come una seconda Xschermata della sessione esistente come se fossero collegati due monitor.

Installa x2xsu entrambi i dispositivi:

sudo pacman -S x2x         # Arch Linux
sudo apt-get install x2x   # Debian/Raspbian 

Configura SSH:

Su Raspberry Pi modifica /etc/ssh/sshd_confige aggiungi / decommenta la seguente riga:

X11Forwarding yes

Quindi riavviare il sshserver.

SSH sul Pi dall'altro dispositivo ed esegui x2x:

ssh -X 192.168.0.70 'x2x -east -to :0'

Sostituisci l'IP con l'indirizzo del tuo Raspberry Pi.

Ora dovresti essere in grado di spostare il mouse tra le due sessioni X spostando il mouse dallo schermo a destra (est).


Quando lo faccio su Windows e Ubuntu, ricevo un errore simile a x2x - error: can not open display :0. Ho installato x2x sul Pi e Ubuntu e SSH è installato sul Pi.
ACarter

@ACarter Non penso che tu possa coinvolgere Windows (a meno che tu non stia usando xming) in quanto ha bisogno di una sessione X in esecuzione ad ogni estremità.
Jivings

Devo quindi avviare esplicitamente la sessione X su Ubuntu?
ACarter

@ACarter Sì, considera la connessione come un'estensione della tua sessione X esistente .
Jivings

1
@ACarter Mi dispiace per quello. Potrebbe essere qualcosa a che fare con la DISPLAYvariabile. Prova a digitare echo $DISPLAYun terminale e sostituisci :0il x2xcomando con quell'output.
Jivings

10

la sinergia può farlo abbastanza bene

Synergy ti consente di condividere facilmente mouse e tastiera tra più computer sulla scrivania ed è gratuito e open source. Basta spostare il mouse dal bordo dello schermo di un computer su un altro. Puoi persino condividere tutti i tuoi appunti. Tutto ciò che serve è una connessione di rete. Synergy è multipiattaforma (funziona su Windows, Mac OS X e Linux).


Come l'hai costruito per il Pi?
Heatfan John

@HeatfanJohn, raspbian ce l'ha nel repository
John La Rooy,

Ah, sudo apt-get install synergy... fico!
Heatfan John

4

Un veloce google alla fine mi ha portato qui e dopo un breve test questo ha funzionato per me.

In breve, devi installare xrdp

sudo apt-get install xrdp

Una volta installato, il servizio rdp verrà impostato all'avvio, quindi riavvia il tuo RPi. Quando il tuo RPi ha terminato l'avvio, sarai in grado di collegarti al tuo RPi tramite l'applicazione desktop remota integrata di Windows (o qualsiasi altra terza parte).


Grazie per la tua risposta, questa è una soluzione remota ordinata, ma l'idea è che vedo il desktop sullo schermo collegato al Pi, ma posso inserire questo desktop dalla tastiera del mio laptop.
ACarter

1

Vecchio filo ... lo so.

Ho scritto un'utilità che chiamo fauxcon, che inoltra la tua tastiera (e presto, il mouse) alla console di un altro computer in cui ti trovi.

Ciò ti consente di visualizzare il display del tuo RPi (ad esempio) su una TV o un monitor e digitare come se fossi collegato al dispositivo fisico con una tastiera.

Considerando che tutto a casa mia è wireless, è piuttosto bello sedersi sul divano con il laptop e digitare, vedendolo accadere sul grande schermo dell'RPi.

Feedback di benvenuto,

fauxcon - Github - https://github.com/lornix/fauxcon


1

Mi trovavo in una situazione simile e non volevo usare la sinergia perché stavo già eseguendo la sinergia sui computer a cui volevo inviare la tastiera e non avevo X in esecuzione sull'host. Ho trovato uinput-mapper come la soluzione perfetta per il mio caso.

Github: https://github.com/MerlijnWajer/uinput-mapper

Come fare: http://blog.pi3g.com/2014/03/uinput-mapper-redirecting-keyboard-and-mouse-to-any-linux-system-using-a-raspberry-pi/

Ho usato netcat invece di SSH poiché non sono troppo preoccupato per la sicurezza sulla mia LAN e sembra intercettare la tastiera prima di poter digitare la password. Deve essere eseguito come root o, idealmente, avere il privilegio di pasticciare con i dispositivi di input.

Sul computer che necessita di una tastiera:

# nc -l -p 7005|./input-create 

Quindi sul computer con la tastiera:

# ./input-read -G /dev/input/eventX -D|nc 192.168.1.122 7005 

(dove eventX è la tastiera e 192.XXX è il computer a cui stai inviando la tastiera)

Non ha avuto problemi di velocità e tutti i tasti funzionano correttamente. Credo che funzioni anche con i topi ma non avevo bisogno di usarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.