ส่งต่อเมาส์และแป้นพิมพ์ไปยังเซสชัน X


13

ฉันเข้าถึง Pi ของฉันผ่าน SSH

เครือข่ายของฉันช้าเกินไปที่จะส่งต่อเดสก์ท็อปของ Pi กลับไปที่แล็ปท็อปของฉันดังนั้นฉันจึงมีจอภาพที่เชื่อมต่อกับ Pi ของฉัน เมื่อฉันstartxผ่าน Putty ฉันเห็นเดสก์ท็อปบน Pi ของฉัน ทั้งหมดเป็นสิ่งที่ดี.

อย่างไรก็ตามฉันไม่สามารถทำอะไรกับเดสก์ท็อปนี้ได้เท่าที่ฉันมีคือเม้าส์และคีย์บอร์ดของแล็ปท็อป

ฉันจะส่งต่ออินพุตเมาส์และแป้นพิมพ์จากแล็ปท็อปของฉันไปยังเดสก์ท็อปบน Pi ได้อย่างไร


หากคุณกำลังเชื่อมต่อจอภาพอยู่ทำไมไม่เชื่อมต่อแป้นพิมพ์และเมาส์ โดยปกติคุณจะใช้ ssh เมื่อคุณเมื่อคุณไม่สามารถเข้าถึง PI ได้
Ash Burlaczenko

@ ฉันไม่ได้มีแป้นพิมพ์ ผมรู้ว่าพวกเขากำลังถูกและทุกอย่าง แต่มันจะทำให้มันง่ายขึ้น ...
ACarter

หากคุณมีแป้นพิมพ์และเมาส์เพียงชุดเดียวคุณอาจต้องใช้สวิตช์ KVM เพื่อให้สามารถไปและกลับได้
Kibbee

ฉันแน่ใจว่าฉันได้เขียนเกี่ยวกับเรื่องนี้มาก่อน
Jivings

@ คิบบี้ฉันคิดว่าคุณไม่สามารถใช้สวิตช์ KVM กับแล็ปท็อป
ACarter

คำตอบ:


12

x2xคุณสามารถใช้เป็นเครื่องมือที่ดีที่เรียกว่า สิ่งนี้ถือว่าเป็นเรื่องสำคัญที่จอภาพที่เชื่อมต่อกับอุปกรณ์ระยะไกล (Raspberry Pi) เป็นXหน้าจอที่สองสำหรับเซสชันที่มีอยู่ของคุณราวกับว่าคุณมีจอภาพสองจอเชื่อมต่ออยู่

ติดตั้งx2xบนอุปกรณ์ทั้งสอง:

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

กำหนดค่า SSH:

ใน Raspberry Pi แก้ไข/etc/ssh/sshd_configและเพิ่ม / ยกเลิกการคอมเมนต์บรรทัดต่อไปนี้:

X11Forwarding yes

จากนั้นรีสตาร์ทsshเซิร์ฟเวอร์

SSH ไปยัง Pi จากอุปกรณ์อื่นของคุณและเรียกใช้x2x:

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

แทนที่ IP ด้วยที่อยู่ของ Raspberry Pi ของคุณ

ตอนนี้คุณน่าจะสามารถเลื่อนเมาส์ระหว่างสองช่วง X โดยเลื่อนเมาส์ออกจากหน้าจอไปทางขวา (ตะวันออก)


เมื่อทำเช่นนี้ได้ทั้งบน Windows และ Ubuntu, x2x - error: can not open display :0ฉันได้รับข้อผิดพลาดในการที่คล้ายกัน ฉันติดตั้ง x2x บน Pi และ Ubuntu แล้วและ SSH ติดตั้งบน Pi
ACarter

@ ACarter ฉันไม่คิดว่าคุณสามารถมีส่วนร่วมกับ Windows (ยกเว้นกรณีที่คุณใช้ xming) เนื่องจากต้องการเซสชัน X ที่ทำงานที่ปลายแต่ละด้าน
Jivings

ฉันต้องเริ่มเซสชัน X บน Ubuntu อย่างชัดเจนหรือไม่
ACarter

@ ACarter ใช่มันถือว่าการเชื่อมต่อเป็นส่วนขยายของเซสชั่น X ที่คุณมีอยู่
Jivings

1
@ ACarter ฉันขอโทษเกี่ยวกับเรื่องนั้น มันอาจเป็นสิ่งที่ต้องทำกับDISPLAYตัวแปร ลองพิมพ์echo $DISPLAYในสถานีและแทนที่:0ในx2xคำสั่งกับการส่งออกว่า
Jivings

10

การทำงานร่วมกันสามารถทำได้ค่อนข้างดี

ซินเนอร์จี้ช่วยให้คุณแชร์เมาส์และคีย์บอร์ดระหว่างคอมพิวเตอร์หลายเครื่องบนโต๊ะทำงานของคุณได้อย่างอิสระและเป็นฟรีและโอเพ่นซอร์ส เพียงเลื่อนเมาส์ออกจากขอบของหน้าจอคอมพิวเตอร์เครื่องหนึ่งไปยังอีกหน้าจอหนึ่ง คุณสามารถแชร์คลิปบอร์ดของคุณทั้งหมด สิ่งที่คุณต้องมีคือการเชื่อมต่อเครือข่าย Synergy เป็นข้ามแพลตฟอร์ม (ทำงานบน Windows, Mac OS X และ Linux)


คุณสร้างมันเพื่อ Pi อย่างไร
HeatfanJohn

@HeatfanJohn, raspbian มีมันใน repo
John La Rooy

อ่าsudo apt-get install synergy... เจ๋ง!
HeatfanJohn

4

ในที่สุด Google อันรวดเร็วก็พาฉันมาที่นี่และหลังจากการทดสอบอย่างรวดเร็วสิ่งนี้ก็ใช้ได้กับฉัน

ในระยะสั้นคุณต้องติดตั้ง xrdp

sudo apt-get install xrdp

เมื่อติดตั้งแล้วจะเป็นการตั้งค่าบริการ rdp ให้เริ่มการบู๊ตดังนั้นรีสตาร์ท RPi ของคุณ เมื่อ RPi ของคุณทำการบูทเสร็จคุณจะสามารถเชื่อมต่อ RPi ของคุณผ่านแอพพลิเคชั่นเดสก์ท็อประยะไกลใน Windows (หรือบุคคลที่สาม)


ขอบคุณสำหรับคำตอบของคุณนั่นเป็นวิธีแก้ปัญหาระยะไกลที่เรียบร้อย แต่ความคิดคือฉันเห็นเดสก์ท็อปบนหน้าจอที่เชื่อมต่อกับ Pi แต่ฉันสามารถป้อนเดสก์ท็อปนี้จากแป้นพิมพ์แล็ปท็อปของฉัน
ACarter

1

ด้ายเก่า ... ฉันรู้

ฉันได้เขียนโปรแกรมอรรถประโยชน์ที่ฉันเรียกใช้fauxconซึ่งจะส่งต่อแป้นพิมพ์ของคุณ (และในไม่ช้าก็คือเมาส์) ไปยังคอนโซลของคอมพิวเตอร์เครื่องอื่นที่คุณต้องการ

สิ่งนี้ช่วยให้คุณดูการแสดงผล RPi ของคุณ (ตัวอย่าง) บนทีวีหรือจอมอนิเตอร์และพิมพ์ราวกับว่าคุณลงชื่อเข้าใช้อุปกรณ์ทางกายภาพด้วยคีย์บอร์ด

เมื่อพิจารณาทุกอย่างในบ้านของฉันก็เป็นแบบไร้สายมันค่อนข้างเรียบร้อยที่จะนั่งบนโซฟาพร้อมแล็ปท็อปแล้วพิมพ์ออกมาดูมันเกิดขึ้นบนหน้าจอขนาดใหญ่ของ RPi

ข้อเสนอแนะยินดีต้อนรับ

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


1

ฉันอยู่ในสถานการณ์ที่คล้ายกันและไม่ต้องการใช้การทำงานร่วมกันเพราะฉันกำลังใช้งานการทำงานร่วมกันบนคอมพิวเตอร์ที่ฉันต้องการส่งแป้นพิมพ์ไปและไม่มี X ที่ทำงานบนโฮสต์ ฉันพบว่า uinput-mapper เป็นโซลูชันที่สมบูรณ์แบบสำหรับกรณีของฉัน

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

วิธีใช้: http://blog.pi3g.com/2014/03/uinput-mapper-redirecting-keyboard-and-mouse-to-any-linux-system-using-a-raspberry-pi/

ฉันใช้ netcat แทน SSH เนื่องจากฉันไม่กังวลเกี่ยวกับความปลอดภัยบน LAN ของฉันและดูเหมือนว่าจะมีการสกัดกั้นแป้นพิมพ์ก่อนที่คุณจะสามารถพิมพ์รหัสผ่านของคุณได้ จะต้องเรียกใช้ในฐานะรูทหรือมากกว่านั้นเพียงแค่มีสิทธิ์ที่จะยุ่งกับอุปกรณ์อินพุต

บนคอมพิวเตอร์ที่ต้องการแป้นพิมพ์:

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

จากนั้นบนคอมพิวเตอร์ด้วยแป้นพิมพ์:

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

(โดยที่ eventX เป็นคีย์บอร์ดของคุณและ 192.XXX เป็นคอมพิวเตอร์ที่คุณส่งคีย์บอร์ดไป)

มันไม่มีปัญหาความเร็วและปุ่มทั้งหมดทำงานอย่างถูกต้อง ฉันเชื่อว่ามันใช้ได้กับหนูด้วย แต่ฉันก็ไม่จำเป็นต้องใช้มัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.