io-usb

Server for universal serial bus (USB)


Note: You must be root to start this server.

Syntax:

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

Runs on:

Neutrino

Options:

-c
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.
-e priority
Set the priority of the enumeration thread.
-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.
-r num
Set the number of enumeration retries (default 3).
-t memory=name
Set the typed-memory name (default none, using sysram). This option tells the stack to allocate memory from the specified typed-memory region (such as the memory used for usbd_alloc(), and other internal memory that's needed to transfer data from the USB chip).
-V
Display server version and exit.
-v
Be verbose.

Description:

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 devu-ehci.so /dev/io-usb/io-usb

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

mount -Tio-usb devu-ohci.so /dev/io-usb/io-usb

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

mount -Tio-usb devu-uhci.so /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.

Examples:

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 devu-ehci.so /dev/io-usb/io-usb
mount -T io-usb devu-ohci.so /dev/io-usb/io-usb
mount -T io-usb devu-uhci.so /dev/io-usb/io-usb

Unload a module:

umount /dev/io-usb/devu-ehci.so

See also:

devu-ehci.so, devu-ohci.so, devu-uhci.so, devu-*, mount, umount, usb

Connecting Hardware in the Neutrino User's Guide