Purpose of this plugin ====================== Hotplugging of input devices is common nowadays and more or less required by recent initsystems. E.g. users might want to turn on their Bluetooth keyboard when VDR has been started already, or the initsystem might start 'vdr' although the USB remote control has not been initialized yet. Naming of input devices is also dynamic, so that the remote control might be sometimes at /dev/input/event4 and sometimes at /dev/input/event6. To deal with this situation, this plugin hotplugs (and hotunplugs) input devices. The corresponding events are generated by 'udev' rules so that an input devices becomes available to vdr as soon as it has been attached. All the configuration (e.g. blacklisting of devices (e.g. the system keyboard) or installation of keymaps) must be done within custom udev rules. Coldplugging ============ It can happen that input devices are created when vdr has not been started yet. Hotplug events will not be created then and device will not show up in vdr then. To deal with this (common) situation, the plugin adds all event devices from a specific directory at startup. This directory must be filled by udev rules and by default this directory is /dev/vdr/input. Manual control ============== $ socat stdin unix-send:/run/vdr/inputdev add event3 remove /dev/input/even5 dump all # --> see syslog for results Keymaps ======= The aged vdr input system supports only a small subset of the /dev/input features and is incompatible in some details. The plugin implements a static mapping of /dev/input events to vdr events. Learning of remote control codes is *not* supported; the keymap of the input device must be configured with standard Linux mechanisms (EVIOCSKEYCODE ioctl). Please see cInputDevice::install_keymap (inputdev.c) for the expected mapping and contrib/96-vdrkeymap.rules for samples how to setup keymaps. The 'contrib/' directory contains some keymaps too. Plugin options ============== --socket|-s ... unix dgram socket for hotplug events (default: /var/run/vdr/inputdev) Installation ============ 1. Build and install the plugin as usual 2. Build the 'vdr-inputdev' udev helper and install it at the 'udev' program location (usually /lib/udev) 3. Create custom 'udev' rules and install them in the local rules directory (usually /etc/udev/rules.d) 4. Create keymaps for your remote controls and install them; when using 'keymap' program from 'udev', the keymaps are searched in /lib/udev/keymaps but you can specify a full path in the udev rules too. Creating keymap rules ===================== 1. Plugin the device 2. Remove it either manually from vdr (see "Manual control" above) or stop vdr 3. Use a program like 'evtest' or 'keymap' from 'udev' to display events: /lib/udev/keymap -i /dev/input/event4 4. Press the keys you want to configure, record their scancode and the wanted key identifier. See cInputDevice::install_keymap (inputdev.c) for supported key identifiers.