Menu

Tree [3e8953] master /
 History

HTTPS access


File Date Author Commit
 Makefile.in 2021-04-03 prasad prasad [e5d360] separated out header and functions from server ...
 README 2023-06-16 Ramprasad Padmanabhan Ramprasad Padmanabhan [94d2d1] some changes for using this with Apache server,...
 configure 2021-01-15 prasad prasad [f03100] added few changes in server to support older ve...
 driver.c 2021-04-07 prasad prasad [c913aa] simplfied series of keycode and sync events to ...
 driver.h 2023-06-16 Ramprasad Padmanabhan Ramprasad Padmanabhan [94d2d1] some changes for using this with Apache server,...
 input.html 2024-06-16 prasad prasad [208835] enlarge fonts for mobile view
 input_cgi.c 2024-06-16 prasad prasad [3e8953] improvement in cgi program
 input_server.c 2023-06-16 Ramprasad Padmanabhan Ramprasad Padmanabhan [94d2d1] some changes for using this with Apache server,...
 input_server.h 2024-06-16 prasad prasad [8b813a] allow configuration of FIFO_FILE

Read Me

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.
MongoDB Logo MongoDB