답변:
나는 그것을 스스로 발견했다.
먼저 두 머신 모두에 evdev 커널 모듈을 로드했는지 확인하십시오 .
원격 컴퓨터에서 다음을 실행합니다.
$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444
그리고 클라이언트에서 :
$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
(참고 : Ubuntu 또는 Fedora와 같이 netcat-openbsd에서 netcat을 사용하는 경우 '-p'를 사용하지 마십시오)
내가 TTY에 있든 X.org에 있든 완벽하게 작동합니다. 그리고 지체없이 실행됩니다!
불행히도 모든 키는 원격 컴퓨터에서도 입력됩니다. nc가 실행되는 동안 일시적으로 비활성화하는 방법이 있습니까? 나는 원격 시스템에서 "cat-"를 실행하는 것과 같은 것을 생각했지만 Ctrl-C는 물론 끝날 것입니다.
Synergy 는 여러 컴퓨터간에 네트워크를 통해 키보드를 공유합니다. 원하는 것을 직접 수행하지 않으면 쉽게 설정할 수있는 코드가 있다고 확신합니다.
nc (netcat) 사용에 대한 위의 제안은 효과가 없습니다.
이 명령을 사용하여 입력 스트림을 열 수 있습니다.
nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
sudo로 사용하더라도 권한이 거부됩니다. 대상 시스템에는 실제로 오래된 Linux 설치가 있으므로 / dev / input 장치 파일은 읽기 전용 방식이었습니다.
그러나 x2x를 사용 하여이 문제를 해결할 수 있었으며 결과는 매우 사용자 친화적입니다.
대상 컴퓨터에서 "xhost +"를 수행하고 gdmsetup을 사용하여 원격 연결을 활성화해야합니다 (다음에 gdm이 X 세션을 시작할 때 X에 대한 -nolisten 플래그가 제거됨).
그 후, xserver는 원격 연결을 위해 넓게 열려 있으며 x2x는 소스 (키보드) 시스템에서 서버에 연결할 수 있습니다.
x2x -to 192.168.1.3:0
x2x의 멋진 점은 소스 시스템에서 약간의 제어창을 제공한다는 것입니다. 키보드 이벤트는 해당 창에 포커스가있을 때만 대상으로 전송됩니다. 이것은 매우 편리한 방법입니다 (현재 소스 컴퓨터 에서이 답변을 입력하고 있으며 제어 창에 초점이 맞지 않았기 때문에 대상 컴퓨터에 길 잃은 키 누르기가 없습니다). 또한 컨트롤 창의 중앙을 클릭하면 마우스 이벤트 전달이 시작되고 2 버튼 클릭은 마우스 이벤트 전송을 종료합니다. 또한 컨트롤 창에서 클릭 한 번으로 마우스 전달을 활성화하면 모든 키보드 이벤트가 대상으로 전송되고 소스로 전송되지 않습니다. 따라서 ALT-TAB은 소스 시스템의 제어 창에서 초점을 해제하지 않고 대상으로 전송됩니다.
소스 컴퓨터에서 가상 데스크톱을 사용하도록 설정 했으므로 x2x 제어 창을 먼 데스크톱에 고정하고 대상 컴퓨터를 제어해야 할 때만 이동합니다.
이 버전의 솔루션은 X 수준이며 위의 대답은 Linux 장치 수준입니다. 물론 대상과 소스 모두에서 X를 실행하지 않으면 전혀 작동하지 않습니다.
nc -l 4444
습니다-p
. 에 따르면man nc
,-p
명시 적으로와 함께 금지됩니다-l
. 그렇지 않으면 이것은 환상적인 해결책이며 내가 필요한 것입니다 :)