usbinput(7)
usbinput - USB input devices
As shipped in IRIX 6.5.30. Last changed in IRIX 6.5.22.
NAME usbinput - USB input devices DESCRIPTION The Onyx 3000 system uses a USB keyboard and mouse for input. USB drawing tablets are also supported on Onyx 3000 and Fuel systems. The devices connect to the system through the USB ports on the base I/O device (I-brick), either directly, or through a series of USB hubs. See usb(7) for information on valid USB topologies. Compatibility The only supported keyboard is the Onyx 3000 keyboard part number 062-0066-001 supplied by SGI. Other over the counter USB keyboards may work, but have not been qualified by SGI. Likewise, the only SGI qualified mouse is part number 063-0011-001. Currently the Wacom Graphire2 is the only USB tablet qualified on SGI systems. Interface and Administration USB input devices are presented to applications through the directories /dev/input[N], where N is the logical device number of the usb device. /dev/inputis an alias for /dev/input0 (ie. device 0) for compatibility reasons. The mapping of a physical device to its device number is controlled by ioconfig(1M) through the file /etc/ioconfig.conf. The logical controller number in /etc/ioconfig.conf corresponds to the device number, and determines the /dev/input[N] path to open to access it. For example, the following ioconfig.conf lines: 0 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/1/keyboard 0 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/2/mouse 1 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/3/keyboard 1 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/4/mouse Map two keyboards and two mice. The keyboard at physical location /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/1/keyboard is keyboard 0 (/dev/input/keyboard), and the keyboard at physical location /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/3/keyboard is keyboard 1 (/dev/input1/keyboard). Likewise for the mouse entries. See usb(7) for a description of the physical device path. hinv(1M) can be used to display USB devices that the system knows about and their corresponding device id. The hinv output for USB keyboards and mice looks like: USB Human Interface Device: device id 0 type keyboard USB Human Interface Device: device id 0 type mouse USB Human Interface Device: device id 1 type keyboard USB Human Interface Device: device id 1 type mouse If hinv shows a device id of -1, it means that the device is new to the system (i.e. it has been plugged in after the system booted), and that ioconfig needs to be run to assign a device id and construct a /dev/input[N]/{keyboard,mouse} entry point. If you want to change the device number of a device, you can edit /etc/ioconfig.conf and change the device number. You must rerun ioconfig to establish the new device number. Note that you should shut down any applications that have the device open under it's old device id before doing this. Also note that device id's must be unique among device types. Likewise, if you have stale entries in /etc/ioconfig.conf, you can delete them to reuse the device id's. The first time ioconfig sees a device, it assigns to it an unused device id. The id assigned will be the lowest id available (i.e. not appearing in the /etc/ioncofig.conf file for that type of device). The only way to pre-assign a given device id is to hand enter the device in /etc/ioconfig.conf (not recommended). Hot Plug USB keyboard and mouse devices are fully hot pluggable. If a /dev/input[X]/{keyboard,mouse} is open, and it is unplugged, any application having that device open will stall. Once a device of the same type is plugged back in, the application will continue. Note that plugging in a 'new' device (one not represented in /etc/ioconfig.conf) requires that ioconfig be run to assign a device id before it can be used. Troubleshooting There is currently no administrative tool to reset a USB keyboard or mouse. Unplugging and replugging the device is the only method of resetting. Note that an unresponsive keyboard or mouse could be due to an unresponsive USB hub upstream. If this is suspected, you can unplug the hub and plug it back in. Any downstream keyboard/mouse devices should come back as though they were hot plugged. NOTES In order to minimize changes to application code, the USB keyboard and mouse driver convert USB usage codes to PS/2 scan code sequences at the /dev/input[N]/keyboard devices. Likewise PS/2 mouse codes are generated at /dev/input[N]/mouse. Application programs access USB tablet devices through the X Input Extension. The entry points /dev/input/keyboard and /dev/input/mouse will always exist. If there is no corresponding physical device (i.e. no keyboard and/or mouse with device id 0), the device will operate similar to /dev/null. If an application has the device open in this mode, and a physical device is then plugged in (and ioconfig is run) the application must be restarted to access the real device. This mode of operation is present to allow X to be started without a keyboard and mouse physically present for the purposes of manufacturing checkout, and should not be used or relied upon outside of that context. EXAMPLES Assume we have a keyboard with the following ioconfig.conf entry: 0 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/1/keyboard This means the keyboard is plugged into port 1 of a hub that is plugged into port 1 of the I-brick root hub. To omit the second hub and plug the keyboard into the I-brick directly, move the keyboard, and change the entry in ioconfig.conf to: 0 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/keyboard Conversly, to change the device id (and therefore the /dev/inputX directory) that the keyboard is grouped under, change the ioconfig.conf entry to something like: 2 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/1/keyboard SEE ALSO usb(7), pckeyboard(7), pcmouse(7), ioconfig(1M).