Photon "high-runner" input manager
devi-hirun [-bdglPr] [-v[v]...]
protocol [protocol_opts...]
[protocol [protocol_opts...]]...
[device [device_opts...]]...
[filter [filter_opts...]]...
- -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 | class
where 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.
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 40Hz, 1000ms).
- -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.
Devices supported: fd,
kbddev
- 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).
Devices supported: fd, uart
- 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).
Devices supported: fd, uart
- ps2
- IBM PS/2 mouse protocol.
Devices supported: mousedev
|
All serial devices use 8 data bits, 1 stop bit, and no parity. |
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, MIPS).
- 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, MIPS).
|
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).
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.
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.
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 kbddev ps2 mousedev &
inputtrap
Input drivers (devi-*)
in the Utilities Summary
Connecting Hardware
in the Neutrino User's Guide