Risposte:
L'ho scoperto da solo.
Per prima cosa assicurati di aver caricato il modulo del kernel evdev su entrambe le macchine.
Sul computer remoto si esegue:
$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444
E sul client:
$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
(Nota: se stai usando netcat da netcat-openbsd, ad esempio in Ubuntu o Fedora, non usare '-p')
Funziona perfettamente, indipendentemente dal fatto che io sia in un TTY o in X.org. E funziona senza alcun ritardo!
Sfortunatamente anche tutti i tasti vengono digitati sul computer remoto. C'è un modo per disabilitarli temporaneamente mentre nc è in esecuzione? Ho pensato di fare qualcosa come far funzionare "cat -" sul computer remoto, ma un Ctrl-C lo farebbe finire naturalmente.
Synergy condividerà una tastiera sulla rete tra più macchine. Se non fa direttamente quello che vuoi, sono sicuro che ci sarà del codice che ti faciliterà la configurazione.
Dai un'occhiata a Synergy .
Synergy è un software gratuito e open source che ti consente di condividere facilmente mouse e tastiera tra più computer, in cui ogni computer ha il proprio display. Non è richiesto alcun hardware speciale, tutto ciò che serve è una rete locale. Synergy è supportato su Windows, Mac OS X e Linux. Reindirizzare il mouse e la tastiera è semplice come spostare il mouse dal bordo dello schermo.
Il suggerimento sopra di usare nc (netcat) non funziona per me.
Posso aprire il flusso di input usando questo comando:
nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
Mi viene negato il permesso, anche se lo faccio come sudo. La macchina di destinazione ha una installazione di Linux davvero vecchia, quindi forse i file del dispositivo / dev / input erano di sola lettura quando.
Sono stato in grado di risolvere questo problema utilizzando x2x, tuttavia, e il risultato è molto intuitivo.
Devi fare "xhost +" sul computer di destinazione e usare anche gdmsetup per abilitare le connessioni remote (questo rimuove il flag -nolisten per X la prossima volta che gdm avvia una sessione X).
Successivamente, xserver è completamente aperto per le connessioni remote e x2x può connettersi ad esso dal computer di origine (tastiera)
x2x -to 192.168.1.3:0
La cosa interessante di x2x è che ti dà una piccola finestra di controllo sul computer di origine e gli eventi della tastiera vengono inviati alla destinazione solo quando quella finestra è focalizzata. Questo è un modo molto utile per farlo (sto scrivendo questa risposta dalla macchina sorgente in questo momento, e nessuna pressione di tasti vaganti sta raggiungendo la macchina target, perché ho la finestra di controllo disattivata). Inoltre, facendo clic sul centro della finestra di controllo si avvia anche l'inoltro degli eventi del mouse e il clic con 2 pulsanti termina l'invio degli eventi del mouse. Inoltre, quando si abilita l'inoltro del mouse con un clic nella finestra di controllo, TUTTI gli eventi della tastiera vengono inviati alla destinazione e nessuno alla sorgente. Pertanto, ALT-TAB viene inviato alla destinazione senza sfocare la finestra di controllo sul computer di origine.
Ho desktop virtuali abilitati sul computer di origine, quindi attingo solo la finestra di controllo x2x su un desktop distante e ci vado solo quando devo controllare il computer di destinazione.
Questa versione della soluzione è a livello X, dove la risposta sopra è a livello di dispositivo Linux. Naturalmente, questo non funzionerà affatto se non stai eseguendo X sia sul target che sul sorgente.
nc -l 4444
, senza il-p
. Secondoman nc
,-p
è esplicitamente vietato in combinazione con-l
. Altrimenti questa è una soluzione fantastica e proprio quello di cui avevo bisogno :)