uinput-server Code
Brought to you by:
knzae8
| File | Date | Author | Commit |
|---|---|---|---|
| Makefile.in | 2021-04-03 |
|
[e5d360] separated out header and functions from server ... |
| README | 2023-06-16 |
|
[94d2d1] some changes for using this with Apache server,... |
| configure | 2021-01-15 |
|
[f03100] added few changes in server to support older ve... |
| driver.c | 2021-04-07 |
|
[c913aa] simplfied series of keycode and sync events to ... |
| driver.h | 2023-06-16 |
|
[94d2d1] some changes for using this with Apache server,... |
| input.html | 2024-06-16 |
|
[208835] enlarge fonts for mobile view |
| input_cgi.c | 2024-06-16 |
|
[3e8953] improvement in cgi program |
| input_server.c | 2023-06-16 |
|
[94d2d1] some changes for using this with Apache server,... |
| input_server.h | 2024-06-16 |
|
[8b813a] allow configuration of FIFO_FILE |
This is an exercise in using uinput driver of Linux kernel to send
keyboard and mouse events to an embedded linux system through a web page.
This software supports basic keyboard and mouse and also unicode input
can be typed using control-shift-u sequence in X server. Any unicode
text in UTF-8 format sent through the web page will be translated to
corresponding control-shift-u sequence.
This software is released under GNU GPL license.
A basic flow of this software is:
+----------------------------------+
| client webpage (HTML + js + css) | ---- send text / cursor position ----+
+----------------------------------+ |
|
+---------------+ |
+----- send the same string using named pipe ---- | CGI in server | <----+
| +---------------+
|
| +--------------------------------+
+----> | User-space input driver server | ---- send codes to kernel uinput
+--------------------------------+
The configure script and makefile have been added just for the input server.
The CGI binary and html file need to be compiled and installed manually. The
users can flexibly install the html file and CGI binary according to their web
server package and requirements.
This software has been initially tested with lighttpd web server.
To compile CGI binary:
$ gcc -Os -Wall -o input.cgi input_cgi.c
- or even a small statically complied binary using dietlibc
$ diet -v -Os gcc -Wall -o input.cgi input_cgi.c
- optionally strip the binary
$ strip input.cgi
install it to CGI location (as configured in user's web server)
# mv input.cgi /srv/www/cgi-bin/
or
# mv input.cgi /usr/lib/cgi-bin/
To install HTML file: (as configured in user's web server)
# cp input.html /srv/www/htdocs/index.html
or
# cp input.html /var/www/html/index.html
To compile input server:
$ ./configure
$ make
# make install
To use input server, run it as root:
# ./input_server
Connect to the server's IP address or hostname using a web browser
to send input signals to the server.