- Usb Compliance
- Drivers Usb Compliance Software
- Drivers Usb Compliance Tool
- Drivers Usb Compliance Requirements
- Drivers Usb Compliance Device
The IVI Compliance Package includes IVI class drivers, simulation drivers, and examples for customers using NI programming environments with IVI. The IVI Compliance Package is based on and compliant with the latest version of the instrument programming specifications defined by the IVI Foundation. Driver developers are allowed to add additional drivers in the form of a filter driver or a new HID Client driver. The criteria are described below: Filters Drivers: Driver developers should ensure that their value-add driver is a filter driver and does not replace (or be used in place of) existing Windows HID drivers in the input stack. NTS performs USB compliance and certification testing as licensed by the USB-IF on virtually every type of USB product. We have been authorized to perform testing of USB 2.0 and 3.0 device and systems/hubs, including SuperSpeed, high-speed, full-speed, and low-speed products. NTS performs USB compliance and certification testing as licensed by the USB-IF on virtually every type of USB product. We have been authorized to perform testing of USB 2.0 and 3.0 device and systems/hubs, including SuperSpeed, high-speed, full-speed, and low-speed products. USB hubs, add-in host controller cards, and systems for USB certification and compliance can all be tested by NTS. I also did take out all Universal Serial Bus drivers and restarted, they all came back, and the USB still say compatable mode. When the system did come up, windows threw one of it's windows for each port saying that the USB port was unrecognizealbe the last time something was plugged in. Try unplugging and plugging back in.
Usb Compliance
- A Quick Start for installing a USB drive is available. This solves the very common case of installing a single USB drive onto your OpenWrt device.
- If the Quick Start doesn't address your question, you can install USB drivers manually. Background information about the different USB host controller interfaces (OHCI, UHCO, EHCI) is given in a Wikipedia article. Please refer to your device documentation to find out which USB driver version your device needs.
To install USB Drivers Manually
- Start with refreshing the list of available packages
- Obtain a list of already installed USB packages:
Result:
- Install the USB core package (all USB versions), if the previous list-output does not list it:
- Install the USB storage package (all USB versions), if the previous list-output does not list it:
- To install USB 1.1 drivers, first try the UHCI driver:
If this fails with an error “No such device”, try installing the alternative OHCI driver for USB 1.1:
Someone would have to verify this insmod uhci command as inconsistent with the installed package - ohci package vs. uhci insmod command
(to remove non-working drivers, use opkg remove
. Note: If both OHCI And UHCI drivers fail, then you do not have USB 1.1)
- To install USB 3.0 drivers:
- To install support for UASP aka USB Attached SCSI (supported by many USB drives and drive enclosures, especially if USB 3.0. It enhances performance if it's supported by both the drive and the host controller in your device):
NOTES:
- Some devices (e.g. Asus WL-500g router, brcm47xx) additionally need the kmod-usb2 module (even though they only have an USB 1.1 controller)
- Some devices (e.g. NLSU2,LinkSys WRT54G3GV2) additionally need the following packages:
Troubleshooting USB Drivers
Diagnostics using dmesg
Most firmware images already have USB or SATA support integrated in the default profile/image, so it should not be necessary to install additional packages.
To check, if USB support in included and if connected USB devices get detected:
1. Execute dmesg
in the terminal, note its output. These are “driver messages”, events related to hardware being connected/started or disconnected/shut-down.
2. Now connect your external storage device, wait a few seconds and then execute dmesg
on the terminal again.
3. If USB drivers are active and your device has successfully been recognized, you will notice that additional log output has been added at the end.
Here is an example of the dmesg text about an USB device being connected and properly recognized.
If your log output does not show USB-related output like this, please check that you have the right drivers and report this as a bug in the bugtracker
Diagnostics using lsusb
Further diagnostics information about connected USB drives can be obtained, when installing the optional 'usbutils' package:
This package installs the lsusb
command that will output information of the router-built in USB-hub and connected USB-devices. The following example was run on a router with a single USB port. lsusb has recognized USB 2.0 and 3.0 support on this port and a connected device consisting of an USB-to-SATA-disk-bridge from ASMedia. Since this device is listed with the same bus-ID as the 3.0 hub, the USB-harddisk obviously is connected via the USB 3.0 protocol:
The command lsusb -t
reveals, if your personal combination of device, OpenWrt firmware and external USB drive supports the newer and slightly faster USB 3.0 UASP Extension (USB Attached SCSI Protocol) or the older USB 3.0 block driver:
In this example, device 3 (“Driver=uas”) is UASP-capable, while device 5 (“Driver=usb-storage”) is not.
On USB storage device problems, pay attention to the “Driver” output of lsusb -t
. If it returned something like
instead of
then OpenWrt has recognized the attached USB storage device, but does not have an USB-Storage driver installed yet. In this case you will need to install USB storage drivers first:
Diagnostics using cat
If you are truly out of options, you can use cat
, thanks to linux's “everything is a file” feature, you can look over usb debug information:
You can piece enough information from this output for diagnostics.
Versions supported
- Windows 10
- Windows 8.1
Applies to
- Device manufacturers of CDC Control devices
Microsoft-provided in-box driver (Usbser.sys) for your Communications and CDC Control device.
In Windows 10, the driver has been rewritten by using the Kernel-Mode Driver Framework that improves the overall stability of the driver.
- Improved PnP and power management by the driver (such as, handling surprise removal).
- Added power management features such as USB Selective Suspend.
In addition, UWP applications can now use the APIs provided by the new Windows.Devices.SerialCommunication namespace that allow apps to talk to these devices.
Usbser.sys installation
Load the Microsoft-provided in-box driver (Usbser.sys) for your Communications and CDC Control device.
Note
If you trying to install a USB device class driver included in Windows, you do not need to download the driver. They are installed automatically. If they are not installed automatically, contact the device manufacturer. For the list of USB device class driver included in Windows, see USB device class drivers included in Windows.
Windows 10
Drivers Usb Compliance Software
In Windows 10, a new INF, Usbser.inf, has been added to %Systemroot%Inf that loads Usbser.sys as the function device object (FDO) in the device stack. If your device belongs to the Communications and CDC Control device class, Usbser.sys is loaded automatically.You do not need to write your own INF to reference the driver. The driver is loaded based on a compatible ID match similar to other USB device class drivers included in Windows.
USBClass_02
USBClass_02&SubClass_02
- If you want to load Usbser.sys automatically, set the class code to 02 and subclass code to 02 in the Device Descriptor. For more information, see USB communications device class. With this approach, you are not required to distribute INF files for your device because the system uses Usbser.inf.
- If your device specifies class code 02 but a subclass code value other than 02, Usbser.sys does not load automatically. Pnp Manager tries to find a driver. If a suitable driver is not found, the device might not have a driver loaded. In this case, you might have to load your own driver or write an INF that references another in-box driver.
- If your device specifies class and subclass codes to 02, and you want to load another driver instead of Usbser.sys, you have to write an INF that specifies the hardware ID of the device and the driver to install. For examples, look through the INF files included with sample drivers and find devices similar to your device. For information about INF sections, see Overview of INF Files.
Note
Microsoft encourages you to use in-box drivers whenever possible. On mobile editions of Windows, such as Windows 10 Mobile, only drivers that are part of the operating system are loaded. Unlike desktop editions, it is not possible to load a driver through an external driver package. With the new in-box INF, Usbser.sys is automatically loaded if a USB-to-serial device is detected on the mobile device.
Windows 8.1 and earlier versions
In Windows 8.1 and earlier versions of the operating system, Usbser.sys is not automatically loaded when a USB-to-serial device is attached to a computer. To load the driver, you need to write an INF that references the modem INF (mdmcpq.inf) by using the Include directive. The directive is required for instantiating the service, copying inbox binaries, and registering a device interface GUID that applications require to find the device and talk to it. That INF specifies 'Usbser' as a lower filter driver in a device stack.
The INF also needs to specify the device setup class as Modem to use mdmcpq.inf. Under the [Version] section of the INF, specify the Modem and the device class GUID. for details, see System-Supplied Device Setup Classes.
For more information, see this KB article.
Configure selective suspend for Usbser.sys
Starting in Windows 10, Usbser.sys supports USB Selective Suspend. It allows the attached USB-to-serial device to enter a low power state when not in use, while the system remains in the S0 state. When communication with the device resumes, the device can leave the Suspend state and resume Working state. The feature is disabled by default and can be enabled and configured by setting the IdleUsbSelectiveSuspendPolicy entry under this registry key:
To configure power management features of Usbser.sys, you can set IdleUsbSelectiveSuspendPolicy to:
'0x00000001': Enters selective suspend when idle, that is, when there are no active data transfers to or from the device.
'0x00000000': Enters selective suspend only when there are no open handles to the device.
Drivers Usb Compliance Tool
That entry can be added in one of two ways:
Write an INF that references the install INF and add the registry entry in the HW.AddReg section.
Describe the registry entry in an extended properties OS feature descriptor. Add a custom property section that sets the bPropertyName field to a Unicode string, 'IdleUsbSelectiveSuspendPolicy' and wPropertyNameLength to 62 bytes. Set the bPropertyData field to '0x00000001' or '0x00000000'. The property values are stored as little-endian 32-bit integers.
For more information, see Microsoft OS Descriptors.
Develop Windows applications for a USB CDC device
If you install Usbser.sys for the USB CDC device, here are the application programming model options:
Drivers Usb Compliance Requirements
Starting in Windows 10, a Windows app can send requests to Usbser.sys by using the Windows.Devices.SerialCommunication namespace. It defines Windows Runtime classes that can use to communicate with a USB CDC device through a serial port or some abstraction of a serial port. The classes provide functionality to discover such serial device, read and write data, and control serial-specific properties for flow control, such as setting baud rate, signal states.
In Windows 8.1 and earlier versions, you can write a Windows desktop application that opens a virtual COM port and communicates with the device. For more information, see:
Win32 programming model:
.NET framework programming model: