Przekaż mysz i klawiaturę do sesji X.


13

Uzyskuję dostęp do mojego Pi przez SSH.

Moja sieć jest zbyt wolna, aby przesłać pulpit Pi z powrotem do mojego laptopa, więc mam monitor podłączony do mojego Pi. Kiedy startxprzechodzę przez Putty, widzę pulpit na moim Pi. Wszystko jest dobrze.

Jednak nie mogę nic zrobić z tym pulpitem, ponieważ wszystko, co mam, to mysz i klawiatura mojego laptopa.

Jak mogę przekazać mysz i klawiaturę z laptopa na pulpit mojego Pi?


Jeśli mimo to podłączasz monitor, dlaczego nie podłączyć klawiatury i myszy? Zwykle używasz ssh, gdy nie masz dostępu do samego PI.
Ash Burlaczenko

@ Ash Nie mam klawiatury. Wiem, że są tanie i tak dalej, ale ułatwiłoby to ...
ACarter

Jeśli masz tylko jedną klawiaturę i mysz, warto mieć przełącznik KVM, aby móc poruszać się w tę iz powrotem.
Kibbee

Jestem pewien, że gdzieś o tym napisałem.
Jivings

@Kibbee Myślałem, że nie możesz użyć przełącznika KVM z laptopem?
ACarter

Odpowiedzi:


12

Możesz użyć doskonałego narzędzia o nazwie x2x. To zasadniczo traktuje monitor podłączony do zdalnego urządzenia (Raspberry Pi) jako drugi Xekran do istniejącej sesji, jakbyś miał podłączone dwa monitory.

Zainstaluj x2xna obu urządzeniach:

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

Skonfiguruj SSH:

Na Raspberry Pi edytuj /etc/ssh/sshd_configi dodaj / odkomentuj następujący wiersz:

X11Forwarding yes

Następnie uruchom ponownie sshserwer.

SSH do Pi z drugiego urządzenia i uruchom x2x:

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

Zastąp adres IP adresem swojego Raspberry Pi.

Teraz powinieneś być w stanie przesuwać mysz między dwiema sesjami X, przesuwając mysz poza ekran w prawo (wschód).


Robiąc to zarówno w systemie Windows, jak i Ubuntu, pojawia się błąd podobny do x2x - error: can not open display :0. Zainstalowałem x2x na Pi i Ubuntu, a SSH jest skonfigurowany na Pi.
ACarter

@ACarter Nie sądzę, że możesz zaangażować system Windows (chyba że używasz xminga), ponieważ wymaga on sesji X działającej na każdym końcu.
Jivings

Czy muszę wtedy jawnie rozpocząć sesję X na Ubuntu?
ACarter

@ACarter Tak, traktuje połączenie jako rozszerzenie twojej istniejącej sesji X.
Jivings

1
@ACarter Przykro mi z tego powodu. Może to mieć coś wspólnego ze DISPLAYzmienną. Spróbuj wpisać echo $DISPLAYw terminalu i zastąpić :0w x2xpoleceniu z tego wyjścia.
Jivings

10

synergia może to zrobić całkiem dobrze

Synergy pozwala łatwo udostępniać mysz i klawiaturę między wieloma komputerami na biurku, a jest to bezpłatne i otwarte oprogramowanie. Po prostu przesuń mysz poza krawędź ekranu jednego komputera na inny. Możesz nawet udostępniać wszystkie swoje schowki. Wszystko czego potrzebujesz to połączenie sieciowe. Synergy działa na wielu platformach (działa w systemach Windows, Mac OS X i Linux).


Jak zbudowałeś go dla Pi?
Heatfan

@HeatfanJohn, raspbian ma to w repozytorium
John La Rooy

Ach, sudo apt-get install synergy... spoko!
Heatfan

4

Szybkie google w końcu mnie tu zaprowadziło i po szybkim teście to zadziałało.

Krótko mówiąc, musisz skonfigurować xrdp

sudo apt-get install xrdp

Po zainstalowaniu spowoduje uruchomienie usługi rdp podczas rozruchu, więc zrestartuj RPi. Po zakończeniu uruchamiania RPi będziesz mógł połączyć się z nim za pomocą wbudowanej w Windows (lub dowolnej innej aplikacji) aplikacji do zdalnego pulpitu.


Dziękuję za odpowiedź, to fajne zdalne rozwiązanie, ale pomysł polega na tym, że widzę pulpit na ekranie podłączony do Pi, ale mogę wprowadzić ten pulpit z klawiatury mojego laptopa.
ACarter

1

Stary wątek ... wiem.

Napisałem narzędzie fauxcon, które nazywam , które przekazuje klawiaturę (i wkrótce mysz) na konsolę innego komputera, na którym będziesz ssh.

Umożliwia to wyświetlanie wyświetlacza RPi (na przykład) na telewizorze lub monitorze i pisanie tak, jakbyś był zalogowany na fizycznym urządzeniu za pomocą klawiatury.

Biorąc pod uwagę, że wszystko w moim domu jest bezprzewodowe, fajnie jest usiąść na kanapie z laptopem i pisać, widząc, jak dzieje się to na dużym ekranie RPi.

Mile widziane informacje zwrotne,

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


1

Byłem w podobnej sytuacji i nie chciałem używać synergii, ponieważ już działałem synergicznie na komputerach, na które chciałem wysłać klawiaturę i nie mam X na hoście. Uważam, że uinput-mapper jest idealnym rozwiązaniem dla mojej sprawy.

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

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

Użyłem netcata zamiast SSH, ponieważ nie martwię się zbytnio o bezpieczeństwo w mojej sieci LAN i wydaje się, że przechwytuje klawiaturę przed wpisaniem hasła. Musi być uruchamiany jako root, a najlepiej, po prostu, mieć uprawnienia do bałagania na urządzeniach wejściowych.

Na komputerze potrzebującym klawiatury:

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

Następnie na komputerze z klawiaturą:

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

(gdzie eventX to twoja klawiatura, a 192.XXX to komputer, na który wysyłasz klawiaturę)

Nie ma problemów z prędkością, a wszystkie klawisze działają poprawnie. Wierzę, że działa również z myszami, ale nie musiałem tego używać.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.