Ist es möglich, jedes Gerät über TCP zu transportieren?

Ist es möglich, jedes Gerät über TCP zu transportieren?

Ist es möglich, das gesamte Gerät wie im /dev-Eintrag über TCP zu transportieren? Ich spreche vom Transportieren von z. B. Joystick über TCP oder Maus/RS232-Port/Framebuffer-Gerät, Soundkartengerät, Festplatten usw.

Ich interessiere mich hauptsächlich für Eingabegeräte – Tastaturen, Joysticks, Tablets, Mäuse usw. – im allgemeineren Sinne als für spezielle Software für Remote-Mäuse/-Tastaturen.

Antwort1

Solange es sich um USB-Geräte handelt, ist das, was Sie suchen, seit mehreren Jahren möglich mitUSB/IP. Seitdem wurdeeingeführt in Linux 3.17. Siehe das usbipPaket auf Debian-ähnlichen Systemen. Sie können sogar Windows-Clients haben (d. h. auf USB-Geräte zugreifen, die an einen Linux-Server angeschlossen sind).

Was die Blockgeräte betrifft, bietet LinuxNetzwerkblockgerätSupport sogar noch viel länger.

Antwort2

Ja, das ist zumindest für einfache Geräte wie eine Maus möglich, aber Sie müssen etwas Code schreiben. Im Grunde hätten Sie auf dem Computer mit dem physischen Gerät einen Prozess, der mit dem Gerät kommuniziert. Dieser Prozess überträgt das Protokoll dann über TCP an den anderen Host. Der empfangende Prozess muss die Schnittstelle emulieren, die der Endprozess (ein X11-Server oder Wayland-Compositor) erwartet. Im einfachsten Fall kann der Empfänger eine benannte Pipe einrichten, in die die Daten geschrieben werden und die die normalerweise verwendete Gerätedatei ersetzt.

verwandte Informationen