Server for universal serial bus (USB)

Note: You must be root to start this server.


io-usb [-d dll [opts] ] [-n name] [-P priority]... [-V] [-v]

Runs on:



Do not select a device configuration if the device has more than one configuration. See Selecting a driver configuration below.
-d dll [opts]
Load the specified host controller DLL and opts and pass it the dll. For information on the drivers and their syntax and options, see the devu-* entries.
-n name
Set the server name. The default is /dev/io-usb/io-usb.
-P priority
The priority to use for the server; the default is 21.
Display server version and exit.
Be verbose.


The io-usb server contains USB protocols and communicates with clients (class drivers). The USB stack is a server/dll interface which the server uses to load the DLLs that manage the USB chips. You can load drivers when you start io-usb by specifying the -d command-line option.

Note: You can start more than one driver by using multiple -d command-line options.

Once io-usb has started, you can dynamically load and unload modules using the mount and umount commands.

The io-usb controller uses the LD_LIBRARY_PATH environment variable when searching for the shared objects. If LD_LIBRARY_PATH is not set, or the shared object in question isn't in one of its directories, or you want to override the default, specify the full path in the mount command.

For example, to mount the EHCI (high speed) USB driver:

mount -Tio-usb /dev/io-usb/io-usb

to mount the OHCI (full/low speed) USB driver:

mount -Tio-usb /dev/io-usb/io-usb

to mount the UHCI (full/low speed) USB driver:

mount -Tio-usb /dev/io-usb/io-usb

Selecting a driver configuration

The -c should be used in conjunction with a launcher application, such as enum-usb, which choose a driver's configuration before launching the driver to manage a device's interfaces.

A launcher application must choose a default configuration for devices with more than one configuration, or these devices will not function:

Note: Some devices may not be able to switch the configuration once an initial configuration is selected.


Start the USB 2.0 stack and USB drivers:

io-usb -dehci -dohci -duhci

or use this sequence of commands to do the same thing:

io-usb &
mount -T io-usb /dev/io-usb/io-usb
mount -T io-usb /dev/io-usb/io-usb
mount -T io-usb /dev/io-usb/io-usb

Unload a module:

umount /dev/io-usb/

See also:,,, devu-*, mount, umount, usb

Connecting Hardware in the Neutrino User's Guide