summaryrefslogtreecommitdiff
path: root/server/uinputd.8
diff options
context:
space:
mode:
Diffstat (limited to 'server/uinputd.8')
-rw-r--r--server/uinputd.885
1 files changed, 85 insertions, 0 deletions
diff --git a/server/uinputd.8 b/server/uinputd.8
new file mode 100644
index 0000000..f88ef87
--- /dev/null
+++ b/server/uinputd.8
@@ -0,0 +1,85 @@
+.TH UINPUTD 8 2018-07-04 Linux
+.SH NAME
+uinputd
+.SH SYNOPSIS
+.B uinputd
+.SH DESCRIPTION
+.B uinputd
+exposes uinput over a pipe allowing clients such as
+.BR linux-uinput (1)
+to present a local device and have uinput emulate it.
+.P
+While it is not much use on the same machine, when combined with tools like
+.BR socat (1)
+or
+.BR tcpserver (1)
+and
+.BR netcat (1)
+it can allow for network transparent device emulation from the remote client to
+the host.
+.SH NOTES
+Due to how
+.B uinputd
+is implemented, the clients may not be compatible with different kind of hosts.
+.SH EXAMPLE
+.SS Using tcpserver (ucspi-tcp) and netcat
+On the the host
+.B uinputd
+can be launched with
+.BR tcpserver (1)
+when incomming TCP connections on port 5000 are received.
+.P
+.RS
+.EX
+# tcpserver 0.0.0.0 5000 uinputd
+.EE
+.RE
+.P
+Then on the client
+.BR linux-uinput (1)
+can be used to pass a local device to the remote's
+.I address
+on port 5000.
+.P
+.RS
+.EX
+# linux-uinput /dev/input/event4 | nc $address 5000
+.EE
+.RE
+.SS Using socat
+Much like the the above example using
+.BR tcpserver (1)
+and
+.BR tcpclient (1),
+the host runs a
+.BR socat (1)
+command which forks off a new
+.B uinputd
+server when receiving connections.
+.P
+.RS
+.EX
+# socat tcp-listen:5000,reuseaddr,fork exec:uinputd
+.EE
+.RE
+.P
+Likewise for the client
+.P
+.RS
+.EX
+# linux-uinput /dev/input/event4 | socat - tcp:$address:5000
+.EE
+.RE
+.SH SOURCE
+.UR https://git.cloudef.pw/uinputd.git
+.UE
+.SH SEE ALSO
+.BR linux-uinput (1),
+.BR socat (1),
+.BR nc (1)
+.P
+.UR https://cr.yp.to/ucspi-tcp.html
+.UE
+.P
+.UR https://www.kernel.org/doc/html/latest/input/uinput.html
+.UE