devi-hirun
![]() |
![]() |
![]() |
![]() |
devi-hirun
Photon "high-runner" input manager
Syntax:
devi-hirun [-bdglPr] [-v[v]...]
protocol [protocol_opts...]
[protocol [protocol_opts...]]...
[device [device_opts...]]...
[filter [filter_opts...]]...
Runs on:
Neutrino
Options:
![]() |
When you use a devi-* driver for a touchscreen,
you need a calibration file.
The calibration file is generated from the output produced by the
calib utility:
calib > calib_file.txt For more information, see the calib utility in the Utilities Reference, and Touchscreens in the Neutrino User's Guide. |
- -b
- Prevent the use of the Ctrl-Alt-Shift-Backspace keychord to exit Photon (permitted by default).
- -d device
- Device (default: /dev/photon or $PHOTON).
- -g input_group
- Input group (default: 1).
- -l
- List the internal modules. Modules are listed in the following format:
module name | date last compiled | revision | classwhere class is one of: D -- Device, P -- Protocol, or F -- Filter: - -P
- Disable the Photon interface (by default, start Photon).
- -r
- Start the resource manager interface. Use this option only if you're not using Photon.
- -v[v]...
- Verbose output. More v characters cause more verbosity.
protocol [protocol_opts...]
The protocols and their options are:
- kbd [options]
- Keyboard scan codes (connected to primary keyboard).
Options:
- -f filename
- Create the given file and collect all data passed to the filter level (for debug only).
- -k rate[,delay]
- Keyboard rate (Hz), delay (ms). The default is 30Hz, 500ms).

The -k option works only in conjunction with the kbddev device module. - -p filename
- Create and open the given FIFO file and duplicate all data passed to the filter level (for debug only)
- -R
- Don't reset the device while resetting the protocol.
- -r
- Reset the keyboard (the default).
- -s
- The device driver should supply valid symbols.
- msoft [-3] [-b baud] [-i][-R]
- Microsoft-compatible mouse protocol (serial).
Options:
- -3
- Microsoft 3-button mouse.
- -b baud
- Baud rate for serial device (default: 1200).
- -i
- Intellimouse mice with wheels.
- -R
- Don't reset mouse (default: reset mouse).
- msys [-b baud] [-R]
- Mouse Systems mouse protocol (used by Logitech).
Options:
- -b baud
- Baud rate for serial device (default: 1200).
- -R
- Don't reset the mouse (default: reset it).
- ps2
- IBM PS/2 mouse protocol.
Devices supported: mousedev
![]() |
All serial devices use 8 data bits, 1 stop bit, and no parity. |
device [device_opts...]
The devices and their options are:
- fd [-d device] [-s]
- Opens a device via
open().
Options:
- -d device
- The device to open fd on (default: /dev/ser1).
- -P
- The processing priority of the input event.
- -s
- The input interface is serial (i.e. the module can use devctl() commands that are specific to a serial port).
- kbddev [options]
- PS2 keyboard.
Options:
- -i irq
- IRQ (default: 1).
- -f filename
- Create the given file and collect all data passed to the protocol level (for debug only).
- -P
- The processing priority of the keyboard event.
- -p ioport,add
- The port (default: 0x60) and a value to add to get the status (default: 4).
- -r
- Reset the keyboard port. This is useful on hardware with no BIOS (e.g. PowerPC ).
- mousedev [options]
- PS2 mouse.
Options:
- -f filename
- Create the given file and collect all data passed to the protocol level (for debug only).
- -i irq
- IRQ (default: 12).
- -P
- The processing priority of the mouse event.
- -p ioport,add
- The port (default: 0x60) and a value to add to get the status (default: 4).
- -r
- Reset the mouse port.
This is useful on hardware with no BIOS (e.g. PowerPC ).

If both kbddev and mousedev options are specified in the command line and non-standard port numbers are used, the same port number values have to be defined for each module.
- uart [options]
- Accesses 8250/16450/16550 UART directly.
Options:
- -1
- Use COM1.
- -2
- Use COM2.
- -i irq
- IRQ for serial device (default: 4).
- -P
- The processing priority of the input event.
- -p ioport
- Port of serial device (default: 3f8).
filter [filter_opts...]
The filters and their options are:
- keyboard [-k kbd_file]
- Translate scan codes to Unicode.
Options:
- -k kbd_file
- The file to use to map the keyboard to support international languages or alternate layouts, such as Dvorak. The default location for these files is /usr/photon/keyboard; to create a keyboard mapping, use mkkbd.
- rel [options]
- Filter and compress relative coordinate "mouse" events.
Options:
- -a value
- The wheel-acceleration parameter (default 10); the higher this value, the faster the mouse wheel acceleration.
- -G gain
- Motion multiplier (default: 1).
- -l
- ("el") Swap the right and left buttons.
- -T threshold
- Speed-doubling threshold in mickeys (100).
- -x
- Reverse X.
- -y
- Reverse Y.
Description:
The devi-hirun driver serves as the "high-runner" (i.e. the most likely) input driver for Photon. The inputtrap utility detects drivers and starts devi-hirun.
The devi-hirun driver is responsible for taking data from an input device such as a mouse, or keyboard, interpreting the data, and then "doing" something with it. The default behavior is to package the data as an event and inject it into the Photon event space.
The devi-hirun driver uses a layered approach to driver design:
- filter layer
- protocol layer
- device layer
At each layer, data is interpreted/modified and passed up to the next layer until it's injected as an event into the Photon event space.
For each device devi-hirun talks to, there's a separate path through the three layers called an event bus line. An event bus line consists of modules, one representing each layer, linked together by a software bus. As data is passed up the layers via the bus, the data is manipulated by each module into a format recognizable by the next layer's module and so on.
It's important to note that you can run as many instances of devi-hirun as you want, one for each device. Or you can run one devi-hirun for all the devices. Choosing which scenario to use is mostly a matter of convenience.
Examples:
If inputtrap detects a serial Microsoft mouse and a keyboard interfaced through the file descriptor provided by opening /dev/kbd, it invokes devi-hirun like this:
devi-hirun kbd fd -d/dev/kbd msoft fd &
If inputtrap detects a PS/2 mouse interfaced through the auxiliary port on the keyboard controller (mousedev) and a keyboard interfaced through the primary keyboard port on the keyboard controller (kbddev), it invokes devi-hirun like this:
devi-hirun kbd kbddev ps2 mousedev &
See also:
Connecting Hardware in the Neutrino User's Guide
![]() |
![]() |
![]() |
![]() |

![[Previous]](../prev.gif)
![[Contents]](../contents.gif)
![[Index]](../keyword_index.gif)
![[Next]](../next.gif)
