Driver for USB-to-serial adaptors and USB CDC ACM devices

Note: You must be root or have the right abilities to start this driver.


devc-serusb [options]

Runs on:

QNX Neutrino


ARMLE-v7, x86


-b number
The initial baud rate (default 57600).
-C size
The size of the canonical buffer, in bytes (default 256).
-d args[,args ...]
Device-specific options. See below.
Set options to “raw” (default).
Start in edited mode (default raw). Software flow control is enabled by default.
Disable hardware flow control (default to hardware flow control enabled). Hardware flow control isn't supported in edited mode.
Enable hardware flow control (default). Hardware flow control isn't supported in edited mode.
-I number
The size of the raw input buffer in bytes (default 2048).
-O number
(“Oh”) The size of the interrupt output buffer in bytes (default 2048).
-o opt[,opt...]
Additional options, separated by commas. The options include:
  • nodaemon — don't call procmgr_daemon() to make the driver run in the background. Use this option if you need to know when the device terminates.
  • priority=prio — set the working priority of the internal pulse.
Disable / enable software flow control. The default depends on the mode: in raw mode (-E, the default), it's disabled; in edited mode (-e), it's enabled.

The order in which you specify the -E or -e, and -S or -s options matters:

Options Mode Software flow control
-e Edited Enabled
-S -e Edited Enabled
-e -S Edited Disabled
-E Raw Disabled
-s -E Raw Disabled
-E -s Raw Enabled
Be verbose; additional v characters cause more verbosity.

The device-specific options that you can specify with the -d option are:

The bus number of the USB controller.
Write raw URB data to slogger2.
The USB address of the device.
The device ID of the device.
Data ready timeout (device-specific).
Specify to prevent the removal callback from being attached.
Set the hardware module to use for an unknown vendor ID or device ID.
The basename for the pathname entry. The default is /dev/serusb.
Connect to the specified USB stack. Default is /dev/usb/io-usb-otg.
Set the port that the index options are to be applied to.
Set the priority of the event-processing thread. Default is 21.
Display the currently supported hardware modules.
The number of retries if a status of USBD_STATUS_DEV_NOANSWER is given.
The number of URBs for BulkIn. Default is 4.
The number of URBs for BulkOut. Default is 4.
The unit number: 1 = /dev/serusb1, 2 = /dev/serusb2, etc. Default is the first available number, starting from 1.
The vendor ID of the device.
Wait num seconds for the USB stack. Default is 60 seconds.


The devc-serusb is a driver for USB-to-serial adaptors and Communications Device Class Abstract Control Model (CDC ACM) devices. The driver automatically detects ACM devices, based on the USB Class code.

If you provide the vid, did, busno and devno arguments for device-specific options, devc-serusb doesn't attach an insertion callback to detect newly inserted devices. The driver will work only with the already-inserted device that corresponds to the arguments specified on the command line. If you don't also specify the ign_remove option, the driver is terminated when the device is removed.

The unit option has meaning only when the driver is started for a specific device by using the vid, did, busno and devno arguments. If the driver is managing device insertions, the default behavior always applies.

Note: Because devc-serusb is a USB class driver, the USB stack (io-usb-otg) must be running before you start this driver.

This driver supports a DCMD_CHR_RESET devctl() command that resets the device. Not all drivers use this command.


The devc-serusb driver may require the following abilities:

Use secpolmonitor to determine which abilities devc-serusb is using on your specific system.

For more information on abilities, see procmgr_ability() in the C Library Reference.