Câu trả lời:
Tôi tự tìm ra nó.
Trước tiên hãy chắc chắn rằng bạn đã tải mô-đun hạt nhân evdev trên cả hai máy.
Trên máy từ xa bạn chạy:
$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444
Và trên máy khách:
$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
(Lưu ý: Nếu bạn đang sử dụng netcat từ netcat-openbsd, ví dụ như trong Ubuntu hoặc Fedora, đừng sử dụng '-p')
Nó hoạt động hoàn hảo cho dù tôi đang ở trong TTY hay X.org. Và nó chạy không chậm trễ!
Thật không may, tất cả các phím được gõ trên máy từ xa là tốt. Có cách nào để vô hiệu hóa tạm thời chúng trong khi nc đang chạy không? Tôi đã nghĩ đến một số thứ giống như chạy "cat -" trên máy từ xa nhưng Ctrl-C sẽ làm cho nó kết thúc tất nhiên.
Synergy sẽ chia sẻ một bàn phím qua mạng giữa nhiều máy. Nếu nó không trực tiếp làm những gì bạn muốn, tôi chắc chắn có mã ở đó sẽ giúp bạn dễ dàng thiết lập.
Hãy nhìn vào Synergy .
Synergy là Phần mềm mã nguồn mở và miễn phí cho phép bạn dễ dàng chia sẻ chuột và bàn phím giữa nhiều máy tính, trong đó mỗi máy tính có màn hình riêng. Không cần phần cứng đặc biệt, tất cả những gì bạn cần là một mạng cục bộ. Synergy được hỗ trợ trên Windows, Mac OS X và Linux. Chuyển hướng chuột và bàn phím cũng đơn giản như di chuyển chuột ra khỏi cạnh màn hình của bạn.
Gợi ý trên về việc sử dụng nc (netcat) không hiệu quả với tôi.
Tôi có thể mở luồng đầu vào bằng lệnh này:
nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
Tôi được phép từ chối, ngay cả khi tôi làm điều đó như sudo. Máy đích có cài đặt linux thực sự cũ trên nó, vì vậy có thể các tập tin thiết bị / dev / đầu vào đã chỉ đọc trở lại khi.
Tuy nhiên, tôi đã có thể giải quyết vấn đề này bằng x2x và kết quả rất thân thiện với người dùng.
Bạn cần thực hiện "xhost +" trên máy đích và cũng sử dụng gdmsetup để bật kết nối từ xa (thao tác này sẽ xóa cờ -nolisten cho X vào lần tiếp theo gdm khởi chạy phiên X).
Sau đó, xserver của bạn mở rộng cho các kết nối từ xa và x2x có thể kết nối với nó từ máy nguồn (bàn phím)
x2x -to 192.168.1.3:0
Điều thú vị về x2x là nó cung cấp cho bạn một cửa sổ điều khiển nhỏ trên máy nguồn và các sự kiện bàn phím chỉ được gửi đến mục tiêu khi cửa sổ đó được tập trung. Đây là một cách rất tiện lợi để thực hiện (Tôi đang gõ câu trả lời này từ máy nguồn ngay bây giờ và không có phím nhấn nào đi đến máy đích, vì tôi có cửa sổ điều khiển không tập trung). Ngoài ra, nhấp vào trung tâm của cửa sổ điều khiển cũng bắt đầu chuyển tiếp các sự kiện chuột và nhấp vào nút 2 kết thúc việc gửi các sự kiện chuột. Ngoài ra, khi bạn bật chuyển tiếp chuột bằng một cú nhấp chuột trong cửa sổ điều khiển, TẤT CẢ các sự kiện bàn phím được gửi đến mục tiêu và không có gì đến nguồn. Do đó, ALT-TAB được gửi đến mục tiêu mà không làm mờ cửa sổ điều khiển trên máy nguồn.
Tôi có máy tính để bàn ảo được bật trên máy nguồn, vì vậy tôi chỉ dán cửa sổ điều khiển x2x trên máy tính để bàn ở xa và chỉ đến đó khi tôi cần điều khiển máy đích.
Phiên bản của giải pháp này ở cấp độ X, trong đó câu trả lời ở trên là ở cấp độ thiết bị linux. Tất nhiên, điều này hoàn toàn không hoạt động nếu bạn không chạy X trên cả mục tiêu và nguồn.
nc -l 4444
, mà không có-p
. Theoman nc
,-p
rõ ràng bị cấm kết hợp với-l
. Nếu không thì đây là một giải pháp tuyệt vời và đúng như những gì tôi cần :)