deva-ctrl-usb.so
Sound driver for USB audio devices
Syntax:
Direct invocation (also causes a new io-audio process to start):
io-audio -c config_file
io-audio -d usb [opt[,opt...]]
Mounting (requires that io-audio already be running):
mount -Tio-audio [-oopt[,opt...]] /lib/dll/deva-ctrl-usb.so
Runs on:
QNX Neutrino
Options:
- blacklist=filename
- Specify the full path to the USB audio device blacklist file. The driver's insertion callback will ignore detection of devices with the vendor IDs and device IDs specified in that file.
- busno=bus
- The bus number of the USB controller.
- config=num
- The configuration number. If you don't provide this option, the audio driver lets the USB manager select the configuration, which in this case will be the device's first configuration.
- devno=dev
- The USB address of the device.
- did=did
- The device ID of the device.
- iface=iface
- The audio control interface number.
- ign_remove
- Prevent a removal callback from being attached. If ign_remove is set, it's expected that a USB driver-launching service will unmount the audio driver DLL from io-audio on detection of device removal.
- max_fragsize=num
- The maximum fragsize (the default is 8 KB).
- rx_voices=num
- The number of RX voices.
- tx_voices=num
- The number of TX voices.
- usb_path=path
- The path to the io-usb-otg server.
- vid=vid
- The vendor ID of the device.
For io-audio options, including card options that apply to all sound drivers, see the entry for io-audio.
Description:
The deva-ctrl-usb.so shared object is a device driver DLL used by the io-audio manager. It uses the API described in the Audio Developer's Guide.
While deva-ctrl-usb.so is running, you can use applications with sound, and those that control the sound system.
<venderid>:<deviceid> #any commentFor
example:0x47f:0xc007 #PLANTRONICS AUDIO 476 DSP
0xd8c:0x13c #test usb deviceIf you provide the busno and devno arguments, then the audio driver doesn't attach an insertion callback to detect newly inserted devices. The driver only attaches to the already inserted device corresponding to these two arguments. When the device is removed, the driver DLL will be unmounted from io-audio, unless ign_remove is also specified.
If you're starting the driver to target a particular audio function, you must provide the vid, did, busno, devno, and iface options. The USB device must be inserted before you start or mount the driver.
When the device is removed, the audio driver DLL is unmounted from io-audio, but the io-audio manager continues to run (after you re-insert the device, you can run mount -Tio-audio deva-ctrl-usb.so). You have to slay io-audio if you want to terminate the manager itself.
- Some USB Host controllers are restricted in the number of transfer descriptors available, so adjustments to either the audio driver's max_fragsize or the USB Host controller driver's TD pools (num_td=xx) may be required for successful isoch transfers.
- Typically, graphics drivers run at a higher priority than applications, but if their priority is higher than the audio driver, it can cause breaks in audio playback and capture. To avoid this problem, use data_thread_prio and intr_thread_prio in the audio configuration file to increase the priority of the audio drivers.
Examples:
Invoke deva-ctrl-usb.so directly from io-audio, using a configuration file:
io-audio -c /etc/system/config/audio/io_audio.conf
The following sample audio configuration file sections start this driver:
[global]
verbosity=3
[ctrl]
name=usb
input_splitter_enable=1
sw_mixer_ms=16
Invoke deva-ctrl-usb.so directly from io-audio:
io-audio -d usb
Mount deva-ctrl-usb.so (io-audio must be running):
mount -Tio-audio /lib/dll/deva-ctrl-usb.so
Errors:
When an error occurs, deva-ctrl-usb.so sends a description of the error to the system logger (see slogger2).
