12

Как следует из названия, я хочу использовать удаленную клавиатуру локально. Удаленная клавиатура должна использоваться в TTY и, если возможно, также в X-сервере. Есть ли драйверы (модули ядра), эмулирующие "фальшивую" клавиатуру с прозрачностью сети?

4 ответа4

16

Я выяснил это самостоятельно.

Сначала убедитесь, что вы загрузили модуль ядра 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

(Примечание: если вы используете netcat из netcat-openbsd, например, в Ubuntu или Fedora, не используйте '-p')

Он отлично работает независимо от того, нахожусь ли я в TTY или в X.org. И это работает без каких-либо задержек!

К сожалению, все ключи также набираются на удаленной машине. Есть ли способ временно отключить их во время работы nc? Я думал о чем-то вроде запуска «cat -» на удаленной машине, но Ctrl-C, конечно, завершит его.

7

Synergy будет совместно использовать клавиатуру по сети между несколькими компьютерами. Если это не делает то, что вы хотите, я уверен, что есть код, который облегчит вам настройку.

5

Посмотрите на Synergy.

Synergy - это бесплатное программное обеспечение с открытым исходным кодом, которое позволяет вам легко обмениваться мышью и клавиатурой между несколькими компьютерами, где каждый компьютер имеет свой собственный дисплей. Никакого специального оборудования не требуется, все, что вам нужно, это локальная сеть. Synergy поддерживается в Windows, Mac OS X и Linux. Перенаправление мыши и клавиатуры так же просто, как перемещение мыши за край экрана.

взаимодействие

0

Приведенное выше предложение использовать nc (netcat) не работает для меня.

Я могу открыть поток ввода с помощью этой команды:

nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

Мне отказывают в разрешении, даже если я делаю это как sudo. На целевой машине установлена действительно старая версия linux, поэтому, возможно, файлы устройства /dev /input были доступны только для чтения.

Однако я смог решить эту проблему с помощью x2x, и результат очень удобен для пользователя.

Вам нужно выполнить «xhost +» на целевой машине, а также использовать gdmsetup для включения удаленных подключений (это удаляет флаг -nolisten для X при следующем запуске gdm сеанса X).

После этого ваш xserver широко открыт для удаленных подключений, и x2x может подключиться к нему с компьютера-источника (клавиатуры)

x2x -to 192.168.1.3:0

Крутая вещь в x2x состоит в том, что он дает вам небольшое окно управления на исходном компьютере, и события клавиатуры отправляются цели только тогда, когда это окно находится в фокусе. Это очень удобный способ сделать это (я набираю этот ответ с исходного компьютера прямо сейчас, и никакие случайные нажатия клавиш не достигают целевого компьютера, потому что у меня не сфокусировано окно управления). Кроме того, щелчок по центру окна управления также начинает пересылку событий мыши, а нажатие двух кнопок завершает отправку событий мыши. Кроме того, когда вы включаете переадресацию мышью щелчком в окне управления, ВСЕ события клавиатуры отправляются цели, а никакие - источнику. Таким образом, ALT-TAB отправляется на цель без расфокусировки окна управления на исходном компьютере.

У меня включены виртуальные рабочие столы на исходном компьютере, поэтому я просто прикрепляю окно управления x2x на удаленном рабочем столе и захожу туда только тогда, когда мне нужно управлять целевым компьютером.

Эта версия решения находится на уровне X, где ответ выше - на уровне устройства linux. Конечно, это не будет работать вообще, если вы не используете X как на цели, так и на источнике.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .