Java Solaris Communities About Sun How to Buy My Account Cart United States Worldwide

USB FAQ

USB FAQ


Information about the USB specifications and products can be found at the USB Implementers Forum website.

USB FAQs Rev 062008

The FAQs below are intended to provide some answers to issues faced by users when trying to use USB devices under Solaris. Most of the FAQs listed here are focussed on Solaris 10 Update and OpenSolaris releases. Some questions concerning Solaris 8 and Solaris 9 are also included. For the most accurate information, users are advised to check out the documentation accompanying their particular release.

USB FAQ Index

  1. General Questions
  2. Driver Development Kit
  3. USB Host Controllers
  4. USB Keyboard, Mouse, Hubs
  5. USB Audio
  6. USB Video
  7. USB Storage
  8. USB Printers
  9. USB Digital Cameras
  10. USB Scanner
  11. USB Floppy
  12. USB to Serial
  13. USB Security
  14. Ugen / Libusb
  15. Sun Ray USB
  16. Reporting Problems

General questions:

  1. What types of USB devices are supported in Solaris?

    Refer to usb(7D) man page which lists all bundled USB drivers

  2. Which USB devices can I use with Solaris?

    Please check http://www.sun.com/io_technologies/usb/USB0.html for list of verified devices.

    This list is by no means exhaustive but attempts to cover as many USB devices as possible that are known to work under Solaris. Also, in addition to many new devices being introduced into the market each day, many may have undergone revisions or updates to their firmware or hardware even though they may be listed with the same model number or are no longer available.

  3. What are the recommended USB patches for Solaris versions 8 and 9 ? Is it necessary to upgrade?

    It is highly recommended that users upgrade their OS with the latest USB patches for optimal results. Note: Patches listed here may get superceded by later patches which are generally inclusive of the fix in the obsoleted patch

    All Solaris USB patches are available at http://sunsolve.sun.com.
    For Solaris 8: Patch # 109896-36 or later for Solaris on SPARC
    For Solaris 8: Patch # 109897-20 or later for Solaris on x86
    For Solaris 9: Patch # 115553-28 or later for Solaris on SPARC
    For Solaris 9: Patch # 115554-24 or later for Solaris on x86

    We strongly recommend users to upgrade to Solaris 10 or use the latest OpenSolaris Release.

  4. What are Solaris 10, OpenSolaris and Solaris Express?

    Solaris 10 is the latest release of Solaris. http://www.sun.com/software/solaris/10/

    The OpenSolaris project is an open source project sponsored by Sun Microsystems, Inc, that is initially based on a subset of the source code for the Solaris Operating System. It is a nexus for a community development effort where developers from Sun and elsewhere can collaborate on developing and improving operating system technology. OpenSolaris is a single CD combined live/install image: a core operating system, kernel, system libraries, a desktop environment and a package management system. Support is available through paid subscription services and developer assistance.

    Solaris Express Community Edition is Sun's binary release for OpenSolaris developers (code named "Nevada"). It is built from the latest OpenSolaris source and additional technology that has not been published in the OpenSolaris source base. This release is unsupported. Developers can build the OpenSolaris source by using this release as the base system. It is usually updated every other Friday and its release is announced on the OpenSolaris announce forum.

    Solaris Express Developer Edition is Sun's tested release built from the OpenSolaris bits and additional technology that has not been published in the OpenSolaris source base. For additional details, including support options, see the Developer Edition site. There is no charge for this release. The Developer Edition is released every three to four months and replaces the Solaris Express monthly release.

    More information about the OpenSolaris and Solaris Express releases can be found at: http://opensolaris.org/os/downloads/

  5. Are there any Solaris 10 patches for USB devices?

    If you install the latest OpenSolaris release, you get the latest USB fixes for Solaris 10. If you do not wish to install OpenSolaris but want to install patches over your Solaris 10 installation, the following patches are available:

    Kernel patch: 120012-14(x86), 120011-14(sparc) and above. (This kernel patch includes latest usb fixes such as power budgeting, 'libusb should just work', ehci fix to enable ZFS on USB etc.)
    latest usb fixes such as power budgeting, 'libusb should just work', ehci fix to enable ZFS on USB etc.

    Virtual keyboard and mouse (multiple keyboard and mouse) support: 118822-18 (sparc), 118844-19 (x86)

    Vold hotplug awareness: 119374-05 (sparc), 119375-05 (x86).

    Rmformat for >1TB hard disks: 120009-01 (sparc), 120010-01 (x86).

    Libusb: 120732-01 (sparc), 120733-01 (x86)

    We strongly recommend that users install or upgrade to a Solaris 10 update release rather than selectively apply patches. (Note: Patches listed here may get superceded by later patches which are generally inclusive of the fix in the obsoleted patch).

  6. What is the USBA Framework?

    USBA is the Solaris USB Architecture framework for USB client drivers. The first version (0.0) was designed primarily for keyboards and mice support. USBA1.0 Framework, first available as a patch in Solaris 8, is the USB software framework that allows users to connect USB 2.0 devices at their highest speeds. Some new devices will work with this framework only. Solaris 10 adds the latest USBA 2.0 framework where all USB driver interfaces were promoted to public. Refer to usb(7d) man pages for details or this blog: http://blogs.sun.com/frits/date/200506.

  7. What is the USB dual framework?

    The Dual Framework which is supported in Solaris 8 and 9 releases consists of two USB frameworks: the USBA 1.0 framework which supports USB 2.0 devices, and the original framework USBA 0.0 of the OS release (which was mainly designed for keyboard and mouse only). USB drivers written under this framework are prefixed by usba10_. There is no dual framework in Solaris 10 or later. USB drivers do not have prefix usba10_ in Solaris 10.

    Details regarding this framework are found in the Dual Framework whitepaper at : www.sun.com/desktop/whitepapers.html.

  8. How do I use USB devices, where is this documented ?

    Refer to System Administration Guide: Basic Administration (for Solaris 9), Devices and File Systems (for Solaris 10 and OpenSolaris release)

    Solaris 9 System Administrator Collection http://docs.sun.com/app/docs/coll/47.13
    System Administration Guide: Basic Administration http://docs.sun.com/app/docs/doc/806-4073

    Solaris 10 System Administrator Collection http://docs.sun.com/app/docs/coll/47.16
    System Administration Guide: Devices and File Systems http://docs.sun.com/app/docs/doc/817-5093

    Solaris Express (OpenSolaris) System Administrator Collection http://docs.sun.com/app/docs/coll/47.23
    System Administration Guide: Devices and File Systems http://docs.sun.com/app/docs/doc/819-2723
  9. Why are some of my USB 2.0 devices not recognised or not fully functional on Solaris 8 or Solaris 9, even after installing all the latest USB patches?

    For the Solaris 8 and Solaris 9 OS releases, the latest updates will install the USBA1.0 kernel interfaces as part of a Dual Framework. The Dual Framework consists of two USB frameworks: the newer USBA 1.0 framework which supports USB 2.0 devices, and the original framework of the OS release. The original framework is included for compatibility purposes only and was mainly designed to be used for keyboards and mice. In the Dual Framework configuration, by default, the original framework supports devices connected to USB 1.x ports and the newer USBA 1.0 framework supports devices connected to USB 2.0 ports.

    To change the USB Dual Framework configuration, for example to run all USB ports with the newer USBA 1.0 framework, you will need to run the usbconfig script from: http://www.sun.com/bigadmin/scripts/sunScripts/usbconfig.txt

    If you are using a USB 2.0 device, please run usbconfig script and select the option '1' that sets all USB ports to USBA1.0 Framework and then connect the device.

  10. My device does not enumerate and I get the message "connecting device on port failed". What is the cause?

    Often the root cause is that the device is not USB spec compliant but there are a few things to check :

    • if connected to usb1.x port then connect to usb2.0 or vice versa
    • insert a usb1.x or usb2.0 hub
        - if a usb2.0 device is on a usb2.0 port you can force it to usb1.x speed by inserting a usb1.x hub
        - if a 1.x device is on a usb1.x port you can force it to work usb2.0 ehci driver by inserting a usb2.0 hub
    • use better cables
    • use shorter cables

    Also, refer to question "Why are some my USB 2.0 devices not recognized" above.

  11. How do I diagnose USB problems ? (See the Reporting Problems section below)

    mdb(1) has a dcmd ::usba_debug_buf for dumping the USB log buffer which may give some hints on what went wrong. You should also check /var/adm/messages

  12. How do I know that I am really running USB 2.0 drivers in Solaris 8 and Solaris 9?

    Check with prtconf -D that all usb drivers have prefix of usba10_

  13. How do I determine whether my device runs at USB 2.0 speed?

    On Solaris 8 and Solaris 9, check with prtconf -D whether the host controller is usba10_ehci, for example on Solaris 9:

    usb, instance #0 (driver name: usba10_ehci) 
    storage, instance #0 (driver name: usba10_scsa2usb)
    disk, instance #0 (driver name: sd)

    On Solaris 10 and later, check /var/adm/messages for messages similar to:

    Dec 13 17:05:57 mysystem usba: [ID 912658 kern.info] USB 2.0 device
    (usb50d,249) operating at hi speed (USB 2.x) on USB 2.0 external hub:
    storage@4, scsa2usb0 at bus address 4
  14. My device is not responding. How do I check if my USB device was recognized by the OS? What command can I use?

    You can use 'cfgadm' to find the port that your device is connected to. See the man page cfgadm_usb(1M) for details.

    # cfgadm -vl  (Solaris 9 and later)
    # cfgadm -c disconnect usbx/y
    # cfgadm -c configure usbx/y
    # prtconf -D
  15. Can I do soft hotplugging (without physically disconnecting the device)?

    # cfgadm -vl (Solaris 9 and later)
    # cfgadm -c disconnect usbx/y
    # prtconf -D

    The device node should no longer be listed. Refer to cfgadm_usb(1M).

  16. On my SPARC platform, when I don't use my device for an hour or so, and try to use it, it is not working.

    On SPARC platforms power management may have powered it down. Edit the file /etc/power.conf, disable autopm, and run pmconfig or reboot.

  17. I get "Connection failure" warnings when I connect my device and it does not work.

    Run prtconf -D on the command prompt and check if the device enumerated.

    Possible workarounds are connecting the device to a USB 1.x port (system ports on most SPARC machines) or connect a USB 1.x hub and then the device to this hub. This forces the device to be managed by ohci or uhci. If users do not need USB 2.0 support, another workaround is to run the below command which disables the ehci(7D) driver:

    # rem_drv ehci
  18. My Belkin Omniview KVM switch works fine on Solaris x86 but not on SPARC.

    We've seen that it worked fine on SPARC on Solaris 9 but not on Solaris 10. The device presents two mice to the system. On SPARC, the first one gets plumbed and needs to be disconnected before the real one can get plumbed. On x86 the first one does not have to be disconnected before the 2nd one gets plumbed. The behavior is somewhat different in each OS release. For Solaris 10, install the Virtual keyboard and mouse patch (see above).

  19. I need a USB to PS2 converter. Any suggestions which ones work well ?

    We have seen the brand 'Cables Unlimited' and SIIG USB to PS2 converters work well. We found that Belkin converter did not work on Solaris 8, Solaris 9. On Solaris 10, the latest version of the Belkin USB to PS2 converter was reported to work.

  20. I have a 5m cable. Should it work?

    It may with most devices but may be flaky with bus-powered devices such as the Sun mouse.

  21. I need to extend to 100m or more. how do I use this?

    You can use active cable extenders.

  22. How do I disable all USB ports?

    To enforce security, refer to usbsecure.pl script available at: http://developers.sun.com/prodtech/solaris/driverdev/reference/codesamples/usb_security/index.html

    To completely disable USB, you can remove the USB package SUNWusb with the command:

    pkgrm SUNWusb
  23. How do I configure my USB printer?

    Use print manager, /usr/sbin/printmgr

    Or use JDS Java Launch -> Preferences -> Printer Preferences

  24. On Solaris 10, this message confuses me. "USB 2.0 device (usbd49,7010) operating at full speed (USB 1.x) on USB 1.10 root hub: storage@2, scsa2usb1 at bus address 2". Please clarify.

    This means that a USB 2.0 device is connected to a USB1.x hub which is operating at full speed (and not at high speed), because the USB1.x port only support full speed and low speed.

  25. Can I boot from a USB disk or USB CD/DVD drive?

    Generally speaking, booting from USB disk, CD/DVD drive is supported on x86 platforms with S10 update 1 and later if the BIOS has USB 2.0 support. Sparc systems with USB 2.0 support can boot from USB disks if the OBP(Open Boot Prom) is upgraded to version 4.27 or later. Before you can boot Solaris from USB disk, you have to install Solaris on the disk first. Installing on USB memory sticks is not recommended as the number of writes to these sticks is limited.

    Problems observed on some hardware platforms:

    -Installation from USB CD/DVD drive starts, but then fails with "not finding media" error. This is because the CD/DVD drive is not mounted under the /cdrom directory as the installation process expects. Possible workaround is to re-plug in the CD/DVD drive, and make sure the device is in the device tree and the /dev/dsk/ link is correctly created, and mount it under /cdrom manually, then continue installation by /sbin/install-solaris.

    - Installation to USB hard disk seems slow and then hangs somewhere. Check dmesg output if there are repeatedly "timeout" and "tran_err". Such error messages would mean you don't have enough physical memory. The workaround is to install more than 512M physical RAMs or to use S10U2 or later. These releases contain the ehci fix for USB 2.0 disk support. There is also patch available, refer to the General section. Furthermore, latest OpenSolaris releases contain similar fixes for USB 1.x disk.

    - Booting from USB hard disk panics on "cannot mount root path". Check if the disk is connected behind a USB hub. Don't use a hub between when booting from USB disk. And check if the bootpath in /boot/solaris/bootenv.rc matches the USB disk drive path. If not, modify bootenv.rc, boot into failsafe and make sure boot_archive on the USB disk drive is updated.

  26. How can I get the product id and vendor id of a USB device?

    Connect the device to the host and check the file /var/adm/messages for messages like:

    Aug 12 17:18:19 mysystem usba: [ID 912658 kern.info] USB 2.0 device
    (usb781,5151) operating at hi speed (USB 2.x) on USB 2.0 root hub: storage@6,
    scsa2usb0 bus address 2 usb781,5151 gives you the vendor id (0x781) and product id (0x5151).

    Or check prtconf -v output for something like:
    name='usb-product-id' type=int items=1 value=00005151

    name='usb-vendor-id' type=int items=1 value=00000781

    name='compatible' type=string items=9 value='usb781,5151.20' + 'usb781,5151' + 'usbif781,class8.6.50' +
    'usbif781,class8.6' + 'usbif781,class8' + 'usbif,class8.6.50' + 'usbif,class8.6' + 'usbif,class8' + 'usb,device'
  27. When I connect my device to the USB ports on the front panel of my SPARC machine sometimes, it does not work. But the same device works when connected to the USB ports on the back panel.

    This is most likely caused by some hardware incompatibility issue. To work around the problem, either connect the device to the front port via a USB hub or connect the device to the back port of the SPARC machine.

  28. Is PDA syncing over USB supported in Solaris?

    This is supported in OpenSolaris (pilot-link) and will be in Solaris 10 update 2 and later. Pilot-link (pilot-xfer(1)) uses libusb(3LIB) and is an open source application.

  29. Is there USB Smart Card support in Solaris?

    This is supported in Solaris 10 Update 1 and OpenSolaris releases. See the usb_ccid_ifd(S3SMARTCARD) man page. This ifd handler uses libusb(3LIB). Most USB CCID compliant devices should work.

  30. Where do I find some freeware NIC USB drivers?

    There are some freeware NIC USB drivers on Masa Murayama's site and sourceforge.net.

  31. What is usb_mid?

    Refer to usb_mid(7d) man page. usb_mid is the default driver and is a multi interface driver. It checks if each of the "interfaces" on the device can be bound to a driver. It also exports a ugen(7D) interface (Solaris 10 Update 2 and later) so the device can work with libusb(3LIB).

  32. Can I use a USB modem?

    Support for USB modems and ISDN terminal adapters that conform to the Universal Serial Bus Communication Device Class Abstract Control Model (USB CDC ACM) specification was introduced in OpenSolaris. It is also available in Solaris 10 Update 4. See the usbsacm(7D) man page.

  33. Is there java support for USB?

    There is a community project in progress which will implement JSR80 API. For details contact usbjava-ext@sun.com or go to http://opensolaris.org/os/community/device_drivers/projects/usb/javausb/.


Back to Top

Driver Development Kit:

  1. Is there a DDK for writing USB device drivers?

    The current DDK is DDK 2.0. This DDK contains sample code and sample applications that run on Solaris 10 only. To get the latest USB development in Solaris, please install OpenSolaris or Solaris Express builds. (Refer to question 4 under General section above). The Writing Device Drivers guide for developers is available at: http://docs.sun.com/app/docs/doc/816-4854?q=USB+driver and contains detailed information on how to write a USB device driver for the USBA 2.0 framework. A USB skeleton driver for the Solaris 10 OS is available at: http://www.sun.com/bigadmin/software/usbskel/. Also check out the OpenSolaris Project: http://www.opensolaris.org.

  2. Is usbskel really a driver?

    Yes, it is a driver and it binds to nearly any USB device. Use add_drv -i option to specify the alias.

  3. I need more general documentation on writing drivers.

    The Device Driver Tutorial http://docs.sun.com/app/docs/doc/817-5789

    This tutorial provides hands-on information about how to develop device drivers for the Solaris Operating System. This book includes step-by-step descriptions of writing, building, installing, loading, and testing real device drivers. These instructions help you understand how drivers control devices. This book also gives an overview of the driver development environment, tools available to you to develop drivers, and techniques for avoiding some driver development problems.

    Writing Device Drivers http://docs.sun.com/app/docs/doc/816-4854

    This book provides information on developing drivers for character-oriented devices, block-oriented devices, USB devices, and SCSI target and HBA devices for the Solaris Operating System (Solaris OS). This book discusses how to develop multithreaded reentrant device drivers for all architectures that conform to the Solaris DDI/DKI. A common driver programming approach is described that allows drivers to be written without concern for platform-specific issues such as endianness and data ordering.

    Additional topics include porting Solaris drivers to a 64-bit environment, cluster-aware drivers, driver autoconfiguration, programmed I/O, Direct Memory Access (DMA), power management, device context management, compilation, installation, and testing of drivers, and debugging drivers.

    There are also resources on the Sun Developer Network website: http://developers.sun.com/solaris/learning/driver/index.jsp


Back to Top

USB Host Controllers:

  1. Is any third party USB 2.0 PCI card needed for USB 2.0 support on older SUN SPARC / x86 machines?

    Yes, PCI Host Controller USB 2.0 cards from third party vendors such as Addonics, D-Link or Belkin can be used before connecting USB 2.0 devices for older SPARC/x64 machines. Please check the list of verified USB devices at http://www.sun.com/io_technologies/stdpci/STDPCI3.html for other vendor details. On the latest Ultra 20 and other x64/x86-based SUN platforms, USB 2.0 is natively supported.

  2. My companion controller is uhci and I don't see a uhci driver for uhci on Solaris 8 or Solaris 9 for SPARC.

    Please use the latest Solaris 10 or OpenSolaris for uhci support.

  3. I see a warning that the ehci driver is incompatible with my USB 2.0 controller but it worked in Solaris 9 ? What do I do?

    Some VIA controller revisions were found not to work reliably with the ehci driver.The ehci(7D) man page describes a method to enable ehci (you may do so at your own risk.)

  4. When I do a prtconf -D on my system, why do I see 3 controllers (ehci, 2 x ohci) associated with my USB 2.0 PCI card?

    pci, instance #0 (driver name: pci_pci)
    pci, instance #1 (driver name: pci_pci)
    usb, instance #1 (driver name: ohci)
    usb, instance #2 (driver name: ohci)
    usb, instance #0 (driver name: ehci)

    That means there is an ehci host controller on the card and it has two companion ohci controllers. The ehci is the usb2.0 controller; ohci is the usb1.x controller. If a USB 1.x device is found, it will be rerouted to a companion ohci controller.

  5. I see multiple USB controllers in prtconf output for my USB2.0 PCI card. How does this really work?

    A USB 2.0 controller in fact has 3 (or more) controllers. An ehci controller for USB 2.0 support and 2 ohci or uhci controllers for usb1.x support. If ehci is enabled, it first enumerates the device and if it finds a usb1.x device, it will cause a disconnect and reconnect for one of its companion controllers (ohci or uhci). This is all done in hardware.

  6. My USB host controller continuously reports over current conditions even if no device is connected.

    The fix for this condition is available with the introduction of USB power budgeting, which is available in OpenSolaris or Solaris 10 Update 2 and later releases.

    This feature is also available in Solaris 9 with the following patches:
    Patch # 115553-22 or later for Solaris on SPARC
    Patch # 115554-21 or later for Solaris on x86


Back to Top

USB Keyboard, Mouse, Hubs:

  1. Can I use multiple mice on Solaris?

    Multiple keyboards and mice are supported in Solaris 10 Update 1 and later. See patches listed in USB General section of this FAQ.

  2. Can I use multiple keyboards or a bar code scanner on Solaris?

    A bar code scanner looks to the system just like another keyboard. This is supported in Solaris 10 Update 1 and later. See patches in USB General section of this FAQ.

  3. Can I build an extender by cascading hubs?

    You can but it is not recommended cascading beyond 3. Also, self powered hubs are recommended.

  4. On a SPARC workstation, my non-SUN keyboard or mouse becomes unusable about 30 mins of idleness. How to overcome this?

    This is due to power management. Disable power management in /etc/power.conf to overcome this.

  5. Can I use non SUN keyboards/mice?

    Yes, many (such as Logitech etc.) are known to work but some others have issues. Check http://www.sun.com/io for list of known working third party keyboards/mice. Some of the latest Logitech keyboard and mice have been tested under the latest release of Solaris. We recommend you use latest OpenSolaris releases if you want to use these Logitech devices.

  6. I am using a third party mouse with scroll wheel and 7 buttons. Also my keyboard has advanced features like smart card support. Why doesn't Solaris recognize it as console device?

    The current Solaris HID driver only supports simple keyboard and mice (with the vertical wheel and up to 3 buttons---left button, middle button and right button). The HID driver does not fully implement the HID 1.1 spec but only a subset. There is work in progress on this. Please email usb-help@sun.com for the latest status. Check latest Solaris Express release notes for announcements regarding this feature.

  7. The prtconf output shows my device is connected to the ehci controller and I am using a hub. But the device is still slow and getting speeds of 800KB/sec. I am using a hub.

    Check the hub details and ensure that the hub is not a USB 1.x hub.

  8. What is the difference between the old SUN Type 6 keyboard/mouse and the new Type 7 keyboard and mouse?

    The Type 7 keyboard is the new USB 2.0 keyboard from SUN that is ROHS compliant. It has a USB 2.0 hub also integrated. The layout of the keyboard is very similar to the Type 6 keyboard except for the placement of a couple of keys such as Alt and Compose. The mouse is now a 3 button Optical mouse with scroll wheel.

  9. I am using Solaris 8 on a SPARC system with a Type 6 keyboard. Recently, I plugged in a SUN Type 7 keyboard and I see error messages during bootup and my keyboard does not work. Is there a workaround?

    If you are using a SPARC machine and Type 7 keyboard, please update the OBP(Open Boot Prom) to the latest version for your system by downloading the same from the SUN website. For most SPARC hardware platforms, the OBP version 4.16 or higher would work well. However, the OBP version for newer T2000 platform would be the l4.16 or latest recommended version for your platform.

    We strongly recommend upgrading to Solaris 10 from Solaris 8. If, for some reason, an upgrade to Solaris 10 is not possible for you, in the interim, please update your Solaris 8 OS installation with the latest required patches and then try connecting the Type 7 keyboard. Refer to question on patches under General Section above for details.

  10. My device is not recognized when it is connected to the USB port of the SUN Type 7 keyboard? And, I see "Connecting device failure" being reported. Why?

    The internal hub of the Type 7 keyboard is a bus-powered hub. It cannot support high-power USB devices like USB hard disks and floppy drives. Please connect only low-power USB devices to it or you may get unexpected results. If you install the latest OpenSolaris build or patches for Solaris 10, high-power devices connected to the Type 7 keyboard will be denied connection due to a new power budget control feature. Refer to the Patch question under General Section above for patch details.

    The Type 7 mouse will not function when connected to the USB ports on the Type 7 keyboard with systems that run Solaris 8. Connect the mice directly to the system's USB port or Upgrade the OS to Solaris 10.

  11. What is power budget control?

    Power budget control is specified in USB spec to limit device connections to a hub to avoid overcurrent condition. A self-powered hub can supply a maximum of 500mA to each port, while a bus-powered hub should only supply a maximum of 100mA to each port. With power budget control, devices consuming power more than 100mA will be denied connection to a bus-powered hub. And two bus-powered hubs are not allowed to be concatenated.

    This support is available in Solaris 10 Update 2 and OpenSolaris. It is also available in Solaris 9 with patch 115553-22 for Sparc systems or patch 115554-21 for x86 systems.

  12. Why doesn't my keyboard function after system halt on my SPARC machine?

    Check if your keyboard is connected to a USB 2.0 hub. If it is, then directly connect your keyboard to the USB 1.0 port on the host machine instead of the USB 2.0 port on the hub and check the keyboard functionality.


Back to Top

USB Audio:

  1. Which USB audio devices are supported ?

    USB Audio drivers implement a subset of the 1.0 USB audio spec. Generally, simple USB audio devices compliant to USB audio spec 1.0 on www.usb.org work well with Solaris 10 or later. However, USB audio devices usually have a very short shelf life and many devices that the Solaris USB audio driver supports are no longer available. One exception is the Griffin iMic Audio adapter. Check out http://www.griffin.com. Some Logitech audio devices have also been reported to work.

  2. If I am using Gnome, I cannot hot remove USB audio devices. The port does not get freed up and has become unusable.

    gnome-settings and mixer-applet keep /dev/audio open and prevent the complete removal of the internal data structures related to USB audio devices. A workaround is to exit gnome or reboot (remove the device when the system is down and do a reconfiguration boot. You may also want to do a devfsadm -C to clean up).


Back to Top

USB Video:

  1. Are USB webcams supported?

    With OpenSolaris the USB video class driver usbvc(7D) was integrated into Solaris. That is, if a user plugs a USB webcam that is compliant to the USB video class spec from usb.org, then the webcam will plug and play on Solaris. See the usbvc(7D) man page for more information. In OpenSolaris, the Ekiga video plugin is also integrated. It is a video conferencing application, supporting H323 and SIP protocol.

    A list of USB webcams known to work with Solaris can be found at: http://blogs.sun.com/colin/entry/usb_webcams_and_video_conferencing and http://www.sun.com/io_technologies/usb/USB0.html

    IEEE 1394 digital cameras can also be used in other releases.

  2. Where can I find more information on using Ekiga?

    See the official FAQ at http://www.ekiga.org/faq/


Back to Top

USB Storage:

  1. Where do I find documentation related to USB Storage devices ?

    Solaris System Administration Guide and refer to FAQ #8 in the General Section above.

  2. Can I use ZFS on USB disks?

    Refer to the ZFS blog at : http://blogs.sun.com/artem/entry/zfs_on_the_go.
    Also, there is a ZFS demo at: http://www.opensolaris.org/os/community/zfs/demos/basics/

    USB 2.0 support for ZFS has been enabled in Solaris 10 Update 2 and OpenSolaris. USB 1.1 support for ZFS is only available in OpenSolaris now. Do not hot-remove a USB disk with non-replicated ZFS filesystem when I/O operations are going on.

  3. What is vold?

    Vold is a system daemon to manage removable media devices and can automatically mount filesystems on these devices. All USB Mass storage devices are treated as removable media devices. Please install the latest vold patch (see the General section above for patch numbers) to make vold hotplug aware. In earlier Solaris Express and Solaris 10 update releases, vold is an SMF service, refer to vold(1M) and volfs(7FS) for details. The latest OpenSolaris releases has new volume manager support and vold has been eliminated.

  4. vold has been replaced by a new framework based on opensource HAL, a.k.a. the tamarack project, in OpenSolaris. What has changed?

    Refer to the project webpage at http://opensolaris.org/os/project/tamarack/

  5. I could not format my USB 2.0 hard disk using Solaris 9. What could be the problem?

    Check if vold is enabled. Kill/Stop vold and then run the format command

    /etc/init.d/volmgt stop
    format -e (for Solaris 8 or Solaris 9 )
    rmformat (on Solaris 10)

    (For labeling and partitioning, use rmformat -b and -s, respectively)

  6. Any Sunsolve docs available ?

    15851 VOLD: JAZ and ZIP Drives
    72293 How to Mount or Unmount a USB Mass Storage Device without VOLD
    76690 How to Format a USB Hard Drive for FAT32
    76911 How to create a Solaris UFS file system on a USB hard drive.
    78712 How to Configure an External USB 80GB Hard Drive with Solaris 10
    79386 Can I use a SanDisk Cruzer Mini USB 2.0 Flash Drive with Solaris?
    79953 Sun Ray Server thin client: Troubleshooting USB Mass Storage
    80336 Sun Ray ultra-thin clients and Sun Ray Server Software 3.0: Connecting USB devices
    80370 Does Solaris support 1Tb (terabyte) external usb hard drives?
    81117 How to configure a usb Iomega 750mb Zip drive for Solaris
    83259 How to configure a LaCie 2 TB Biggest F800 USB disk?
    85537 USB devices does not work on Sun Fire T2000
    86383 How to hotplug usb mass storage devices without rebooting system
    88588 How to disable Sun Ray USB storage

  7. I have a disk that has a pcfs format. I cannot mount this disk. I was able to mount non-pcfs disks on the same machine. What is the problem with the pcfs disk?

    On x86 machine, run the following commands to access pcfs disk type.

    /etc/init.d/volmgt stop
    format -e or rmformat

    mount -F pcfs /dev/dsk/c2t0d0p0:c /mnt

    On SPARC machine, run the following commands to access pcfs disk type.

    /etc/init.d/volmgt stop
    format -e or rmformat

    mount -F pcfs /dev/dsk/c1t0d0s2:c /mnt

    If the disk is not partitioned, leave the ":c" out.

  8. I only get about 10 MB/sec for usb2.0 hard disks. Is there a way to improve performance?

    This is not unusual. Some drives get closer to 15MB/sec which is the best ehci(7D) and scsa2usb(7D) can do.

  9. Vold does not mount my memory stick with pcfs filesystem on it. What is the problem ?

    Try to mount it manually

    # mount -F pcfs /dev/dsk/c2t0d0s2:c /mnt
    # mount -F pcfs /dev/dsk/c2t0d0p0:c /mnt
  10. When I mount a pcfs disk, I have to specify "p0:c" on an x86 machine. What does the "p0:c" stand for?

    p0 is the entire disk, including the boot sectors and all the partitions. The p1-p4 are the four possible fdisk partitions. Internally these are the 16th-20th positions in the slice table for the disk.This allows you to do a newfs on p0 and use the entire disk as a file system. The p0:M method is handled within the pcfs code, where 'M' is 'c' for a primary FAT partition and 'd'-'z' for logical FAT partitions within an extended partition.

  11. How do I mount my iPod?

    Use -o hidden option:

    mount -F pcfs -o hidden /dev/dsk/c5t0d0s0:1 /ipod 
  12. My Lacie disk sometimes gives "connection failure" but then works fine.

    We have noticed this on some Lacie disks. The device will always fail the first enumeration while it is spinning up. Check http://www.sun.com/io for list of verified Lacie disks.

  13. Does solaris support NTFS?

    No, not at this time.

  14. I am using the cdrw utility. However, I am unable to write DVDs on my USB DVD writer although it enumerates.

    The cdrw utility has been reported to have some problems on some USB DVD drives. Particularly some older Plextor drives do not work with cdrw. Internal drives from vendors such as Lite-On, Pioneer, Toshiba, TEAC and ASUS are known to work well. Model numbers for products from some of these vendors are listed on http://www.sun.com/io. You can also try cdrecord which is available on the companion CD that comes with the installation kit for Solaris. Also check out http://www.blastwave.org for more details regarding cdrecord. Solaris 10 Update 2 and OpenSolaris releases include cdrecord.

  15. I tried rmformat to check my CD RW drive connection but it does not show all devices if vold is running. Why is this happening?

    Check if there is media in your device (for DVD RW or CD RW drives). vold will not show devices if there is no media so rmformat does not show them either (this was fixed in a kernel patch (118833-17 (SPARC) and 118855-19 (x86)).

  16. rmformat does not show my complete 1 TB Lacie disk capacity in Solaris 9. Why?

    Install the latest patch updates or try connecting to a system with latest Solaris 10 update. (Refer to General questions section for patch details). This should resolve the issue. On Solaris 9, this is a known bug. Check with usb-help@sun.com

  17. I have tried to access my storage devices through vold but the device is not recognised. How can I access my device?

    There have been problems reported when a storage device is accessed using vold. Vold is not hotplug aware in Solaris 8 and 9. In the short term (until the vold problems are resolved), it is better to disable or kill vold and access your storage device through commands like format etc. which will show the hard disks or storage devices that have been recognised by Solaris. Refer to the man page scsa2usb(7D) for details and work-around.

  18. Is there a workaround for making vold hotplug aware?

    We have script that will allow you to do this for Solaris 8 and Solaris 9. Email usb-help@sun.com for details.

  19. How do I find my memory sticks on Solaris 8, Solaris 9, Solaris 10 if I do not run vold?

    On Solaris 8, Solaris 9, use the command cfgadm, and check /dev/dsk entries. On Solaris 10 use the command rmformat.

  20. I tried an USB memory stick from a colleague and it worked "as-is" without trouble. Then I tried a different memory stick that I bought and this new one is even not recognized by the kernel.

    We have noticed this before. If you do a prtconf -v of the working with the non working devices, compare the following lines:

    storage, instance #3..
    Hardware properties:...
    name='usb-product-name' type=string items=1
    value='USB 2.0 Storage Device'..
    name='usb-revision-id' type=int items=1
    value=00000103
    name='usb-product-id' type=int items=1
    value=00005621
    name='usb-vendor-id' type=int items=1
    value=00000402

    In Solaris 10, in the file /kernel/drv/scsa2usb.conf, enable the following:

    attribute-override-list = "vid=* reduced-cmd-support=true";  

    and reboot the system.

  21. When vold tries to mount my 200GB pcfs file system it hangs for a long time. The same when I manually mount it.

    Check the device with the latest OpenSolaris release and if the problem persists, please report to usb-help@sun.com.

  22. On my Solaris 10 system (S10_74L2A), the IOMEGA REV drive shows up as READ only. How do I access the drive?

    This bug is a known bug that has been fixed in OpenSolaris and Solaris 10 Update 2 or later.

  23. How do I create a pcfs FAT32 filesystem on my USB memory stick?

    # /etc/init.d/volmgt stop
    # rmformat (to find the device, assume it is /dev/rdsk/c4t0d0p0)

    Zero out fdisk table:

    # dd if=/dev/zero of=/dev/rdsk/c4t0d0p0 count=16
    # mkfs -F pcfs -o fat=32 /dev/rdsk/c6t0d0p0:c
    # mount -F pcfs /dev/dsk/c4t0d0p1 /mnt
  24. How do I get vold to mount read-only?

    # /etc/init.d/volmgt stop

    /etc/rmmount.conf currently has:

    mount * hsfs udfs ufs -o nosuid 

    Change this to:

    mount * hsfs udfs ufs -o nosuid,ro

    Change in /etc/vold.conf:

    use cdrom drive /dev/rdsk/c*s2 dev_cdrom.so cdrom%d mode=0400
    use flopyy drive /dev/rdiskette[0-9] dev_floppy.so floppy%d mode=0x400
    use rmdisk drive /dev/rdsk/c*s2 dev_rmdisk%d mode=0400
    # /etc/init.d/volmgt start
  25. How do I newfs a very large disk? I am getting errors.

    # /etc/init.d/volmgt stop
    # rmformat (to find the disk, assume c4t0d0s0 (sparc))
    # newfs -T /dev/rdsk/c4t0d0s0
  26. Can I put ufs on other partitions than p0?

    No, only p0 is supported for ufs.

  27. I have a USB hard disk and it is treated like a removable media. I want it to be treated like a normal hard disk.

    In scsa2usb.conf, set removable=false for the vid and pid of this disk and reboot. With tamarack, this is no longer required. Please refer to details under vold replacement questions above.

  28. Will cdrecord be part of Solaris?

    cdrecord is part of Solaris 10 update 2 and in OpenSolaris and installed in /usr/bin.

  29. Can I use dvd+rw tools on Solaris?

    growisofs() is now part of Solaris 10 Update 2 and in OpenSolaris and installed in /usr/bin.

  30. There are many "tran_err" and "timeout" errors in /var/adm/messages when I am using a USB disk. What could be the problem?

    It always happens when the system has insufficient RAM installed. The fix for USB 2.0 is in Solaris 10 update 2 and OpenSolaris. The fix for USB 1.1 devices is in OpenSolaris releases.

  31. Can U3 devices such as the Memorex TravelDrive be used on Solaris?

    Yes, a U3 device should be usable as a flash drive on Solaris, but there might be compatibility issues for some devices. U3 smart software feature is Windows specific and not meaningful to Solaris. It is expected that a U3 device will present on Solaris an extra cdrom drive. The cdrom drive contains Windows specific software that are not relevant to Solaris.


Back to Top

USB Printers:

  1. I can't get my USB printer to work.

    Refer to http://opensolaris.org/os/community/printing/faq

    Automatic Printer Discovery was introduced in OpenSolaris and can be used to manage USB printers. For more information on this see the System Administration Guide at: http://docs.sun.com/app/docs/doc/819-7761/printdesktop-1.


Back to Top

USB Digital Cameras:

  1. How do I use my digital camera with Solaris?

    Digital cameras usually fall into two classes, the USB mass-storage class (class8) or the still-image class (class6). Check the "compatible" name in prtconf -v output for the class of your digital camera.

    If a digital camera falls in the mass-storage class, it can be supported by the native scsa2usb driver and used as a disk drive. Just plug it in and vold will mount it. If you are running Solaris 10, you may need to stop and start vold. This has been fixed in Solaris 10 Update 1 and later releases.

    If a digital camera falls in the still-image class, it can be supported by ugen driver and userland applications. If you are using Solaris 10 update 2 (or later releases) or OpenSolaris, ugen nodes will be created by default for digital camera devices and libusb should just work. There is no need to manually bind ugen driver. You can use gphoto or gtkam to view the pictures immediately after you plug in the device. But if you are using earlier Solaris 10 release, you need to check if the device is bound to ugen driver first. If not, bind it manually and then use gphoto or gtkam to view the pictures. Refer to libusb(3LIB) and ugen(7D) man pages.

  2. Isn't there a quick setup for gphoto?

    There is a way to bind ugen driver to devices with no class drivers by default. But, this is no longer necessary in latest OpenSolaris or Solaris 10 Update 2 (and later) releases.

    # add_drv -m '* 0666 root sys' ugen
    devfsadm: driver failed to attach: ugen
    Warning: Driver (ugen) successfully added to system but failed to attach
    # echo "ugen-default-binding=\"device\";" >> /kernel/drv/uhci.conf
    # echo "ugen-default-binding=\"device\";" >> /kernel/drv/ehci.conf
    # echo "ugen-default-binding=\"device\";" >> /kernel/drv/ohci.conf
    reboot (sorry)

    plug in your camera:

    % prtconf -D | grep ugen
    device, instance #0 (driver name: ugen)
    % /usr/demo/jds/bin/gphoto2 --auto-detect
    Model Port
    ----------------------------------------------------------
    Canon PowerShot S110 usb:
    % cd /tmp
    % /usr/demo/jds/bin/gphoto2 --get-all-thumbnails
    Detected a 'Canon:PowerShot S110'.
    Downloading 'IMG_2207.JPG' from folder '/DCIM/122CANON'...
    Downloading 'IMG_2207.JPG' from folder '/DCIM/
    122CANON'...
    Saving file as thumb_IMG_2207.jpg
    Downloading 'IMG_2208.JPG' from folder '/DCIM/122CANON'.
    ..
    Downloading 'IMG_2208.JPG' from folder '/DCIM/122CANON'...
    Saving file as thumb_IMG_2208.jpg

    alternatively, use gtkam, select your camera and view the pictures (This is a gui).

    % /usr/demo/jds/bin/gtkam 

    A few notes:
    The ugen default binding may bind other USB devices to ugen as well such as composite devices (eg. USB serial, USB audio). However, if you are only using USB memory stick/readers and digital camera, this should be fine. Also some KVMs present a composite device model and will stop working if you use the ugen default binding hack. (in prtconf, you will see "device" node with multiple children, sometimes named "interface").

    In Solaris Express, gphoto and gtkam are in /usr/sfw/bin or /usr/bin and there is no need to stop vold unless you are deleting pictures while vold has the camera mounted. In latest Solaris Express or Solaris 10 Update 2, ugen nodes will be created by default for digital camera devices and libusb should just work. There is no need to manually bind ugen driver.
    There is an interesting blog, 'gtkam on solaris 10' at http://blogs.sun.com/dp/entry/gtkam_usb_on_solaris_10
    Other interesting blogs are: http://technopark02.blogspot.com/2005/06/solaris-10-usb-digital-camera-howto.html and
    http://www.cuddletech.com/blog/pivot/entry.php?id=231

  3. My Sony digital camera is a USB mass-storage class device. Why does it fail to attach scsa2usb driver?

    Edit /kernel/drv/scsa2usb.conf, and enable the following:

    attribute-override-list = "vid=0x54c pid=0x10 rev=* subclass=ufi protocol=cb";

    You may need to change the pid to match the product id of your digital camera.


Back to Top

USB Scanner:

  1. Can I use a USB scanner on Solaris ?

    Refer to libusb(3LIB) and libusb.txt


Back to Top

USB Floppy:

  1. Can I use a USB floppy on Solaris ?

    Yes, but it will show up as a (very small) scsi disk. check /dev/dsk/c... nodes. There are no /dev/diskette nodes for usb floppy.

    If the floppy has no filesystem, do the following.

    # /etc/init.d/volmgt stop

    Plug in the device and run rmformat(1M). It will show you the device node for the USB floppy. Assume it is /dev/rdsk/c4t0d0p0 (x86).

    # mkfs -F pcfs -o nofdisk,size=2800 /dev/rdsk/c4t0d0p0
    # mount -F pcfs /dev/dsk/c4t0d0p0:c /mnt 
  2. Why doesn't rmformat -F work to format my USB floppy diskette?

    Low-level format failure on some USB devices has been reported. Please use pre-formatted floppies. You may want to create new filesystems using newfs / mkfs instead of formatting.


Back to Top

USB to Serial:

  1. Which USB to Serial device can I use with Solaris ?

    Solaris supports Digi InsideOut Networks' devices and recently, KeySpan and Prolific chipset based devices' support were also integrated to Solaris. Keyspan and Prolific USB serial drivers are available in OpenSolaris and in Solaris 10 Update 2 and later. PL2303 chip based adapters and Keyspan USA-19HS adapter are available as part of Solaris 10 Update 2.
    Keyspan USA-49WLC adapter is supported in OpenSolaris and will be available in Solaris 10 update 3. For Digi InsideOut Networks devices, please check the FAQs for Solaris posted at: http://www.digi.com/pdf/faq_ep_sun.pdf

    Some new USB to Serial Edgeport device from Digi InsideOut Networks do not work with installed Solaris 8, 9 and 10 releases. There are a variety of Edgeport devices being used by Solaris users. Most of the older devices and many of the new devices are now supported by Solaris.

    Devices that are verified on the latest USB to serial drivers for Solaris 8 (on SPARC only) , Solaris 9, and Solaris 10 are: Edgeport/1, Edgeport/2, Edgeport/4, Edgeport/421, Edgeport/416.

    The devices verified on Solaris 10 and should work untested on Solaris 8 and 9 are: Edgeport/412, Edgeport/8r.

    The devices currently reported to have issues are: Edgeport/2c, Edgeport/22c.

    For other Edgeport devices, contact Digi/IO Networks if interested.

    Please install the latest relevant patches (Refer to General section for patch details) and then try using the device.

  2. My Edgeport device is based on the latest TI chipset. Are these devices supported under Solaris 10 ?

    First, run prtconf -D and check the device id. The device id may look like: usbif1608,1.config1.0 Check the file /etc/driver_aliases if this id exists in it. If it does not, then run the following command as root:

     update_drv -a -i "usbif1608,1.config1.0" usbser_edge 

    You may want to reboot the machine. If the device still does not work, email the details to usb-help@sun.com. Some of the (Eg. latest Edgeport 8 and Edgeport 416) devices based on the latest TI chipset have been reported to not work correctly with the existing Solaris 10 driver.

  3. I have a USB serial device from Digi InsideOut Networks. It does not work although I have the latest patches and I am using an usb2.0 port (or have usbconf set to USBA1.0 everywhere).

    We have noticed that there are some Digi InsideOut Networks devices with firmware that is not compatible with the latest Solaris drivers on Solaris 8 or 9. Devices that had problems on Solaris 9 were found working well with the latest Solaris builds.

  4. I have installed the latest patches on my Solaris 9 installation. My device still does not work.

    You may be having the default USBA 0.0 configuration on your USB ports. Run the usbconfig script and select the option to set USBA 1.0 on all ports. Then try to connect. (Refer question 3 under 'USB General' for details)

    We highly recommend you use OpenSolaris or the latest Solaris 10 Update as the support for most of Edgeport devices is much better in current releases. (Refer question 2 under 'USB General' for details regarding Solaris releases)

  5. I have connected my Edgeport device and want to use tip to connect to target machine serially. How can I do this ?

    Before running tip, change directory to /dev/cua or /dev/term and check if there are new device entries like 0 1 2 3 etc. (this depends on the number of ports your device has) In the file /etc/remote file you can include all the device and port numbers you wish to access. The significant portion of the /etc/remote file is shown below.

         	uab:dv=/dev/cua/b:br#2400
    dialup1|Dial-up system:\
    :pn=2015551212:tc=UNIX-2400:
    u0:\
    :dv=/dev/cua/0:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:
    u1:\
    :dv=/dev/cua/1:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:
    u2:\
    :dv=/dev/cua/2:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:
    u3:\
    :dv=/dev/cua/3:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:

    u0...u3 are the names with which you will access the Edgeport ports and hence the target machines connected through them. You can rename u0..u3 to names you find convenient. Edit your /etc/remote file to have similar entries. You can connect to the first machine connected to port 0 (or /dev/cua/0) by running

         	# tip u0

    Also, refer to manpage usbser_edge(7D).

  6. I have connected my Edgeport device to my machine but I see messages like "driver not found" and the device does not work. I'm using Solaris 9.

    • Ensure that you have installed the latest USB patches (Refer question 1 under 'USB General' section for patch details)
    • If you are running Solaris 9, please run the usbconfig script and select option '1' to set all ports to USBA1.0 framework.
    • Determine what is the chipset that is on the device you are using. Refer to question 1 above for details.
    • Hotplug your device & Run devfsadm -C
  7. Can I use a USB modem?

    Support for USB modems and ISDN terminal adapters that conform to the Universal Serial Bus Communication Device Class Abstract Control Model (USB CDC ACM) specification was introduced in OpenSolaris. It is also available in Solaris 10 Update 4. See the usbsacm(7D) man page.

    It is also possible to use an Edgeport adapter and a serial modem.

  8. My Digi Edgeport device does not work on Solaris 8 and Solaris 9.

    Run usbconfig script and enable USBA1.0 on all hardware

  9. Are there any issues with ehci/uhci drivers I need to be aware of for USB to Serial Edgeport devices?

    On Solaris 8 and 9, sometimes ohci/uhci/ehci drivers are loaded too late. For USB serial devices that may cause a panic. The workaround is to edit the file /etc/system and enter the following lines:

    forceload:  drv/ohci
    forceload: drv/uhci
    forceload: drv/ehci
    forceload: drv/usba10_ohci
    forceload: drv/usba10_uhci
    forceload: drv/usba10_ehci
    (if you have all three controllers)
  10. Can I use Keyspan and Prolific USB serial adapters?

    Keyspan and Prolific USB serial drivers are available in OpenSolaris and in Solaris 10 Update 2 and later. PL2303 chip based adapters and Keyspan USA-19HS adapter are supported. Keyspan USA-49WLC adapter is supported in OpenSolaris and Solaris 10 Update 3. Prolific PL2303HX (Chip Rev D) is supported in Solaris 10 Update 4.

  11. How do I determine if a usb-to-serial device could be supported by Solaris usbsprl(7D) driver (for Prolific chipset based devices)?

    The usbsprl(7D) driver is available in Solaris 10 Update 2 and OpenSolaris.

    There are many usb-to-serial devices in the market that are based on Prolific chipsets.
    The Solaris usbsprl(7D) driver supports three kinds of Prolific chip sets: PL2303H, PL2303HX and PL2303X. These devices might have different vendor ids or product ids, for example, the ids of ATEN's UC-232A USB-to-serial (557,2008) are different with the ones from Prolific (67b,2303). For unknown devices, if they don't work by just plugging to the box, there is a way to determine if they could work with usbsprl driver. Plug the device and find out the vendor/product ids by looking for "usb" and the device related strings in the output of prtconf(1M):

    example$ prtconf -v

    Use update_drv(1M) to bind usbsprl driver to the device

    example$ su root
    example# update_drv -a -i '"usbxxx,xxx"' usbsprl
    Re-plug the device

    But this test might trigger unexpected problems, such as incorrect device behavior or system panic in extreme cases, so it is NOT recommended for inexperienced users.

    The following devices are known to work.under Solaris 10 with the usbprl driver. (Revision Id could be found from the above output of prtconf(1M) as well.)
    Vendor: Prolific    Model Name: PL2303          Vendor Id: "67b,2003"
    Vendor: Sitecom     Model Name: CN-104          Vendor Id: "6189,2068"
    Vendor: IOGear      Model Name: GUC232A         Vendor Id: "557,2008"
    Vendor: ATEN        Model Name: UC-232A         Vendor Id: "557,2008"
    Vendor: ELECOM      Model Name: UC-SGT          Vendor Id: "56e,5004"
    Vendor: IO DATA     Model Name: USB-RSAQ3       Vendor Id: "67b,aaa2"
    Vendor: RadioShack  Model Name: 6-Ft. (26-183)  Vendor Id: "5ad,fba"
    

    Notice:
    1. For ATEN UC-232A, the adapter with (Vendor Id,Product Id.Revision Id) equals to "557,2008.1" doesn't work with usbsprl driver.
    2. For ELECOM UC-SGT, the adapter with (Vendor Id,Product Id.Revison Id) equals to "56e,5003.1" doesn't work with usbsprl driver.

    The following example shows how to use update_drv(1M) to make usbsprl driver support the Sitecom CN-104 device:

    example$ su root
    example# update_drv -a -i '"usb6189,2068"' usbsprl
    
    Then re-plug the device.

  12. Are USB to Serial devices with RS-422 interfaces known to work with Solaris ?

    Yes. The following RS-422 USB to Serial devices work well with Solaris:

    (1)Digi InsideOut Networks Edgeport/1i
    (2)Digi InsideOut Networks Edgeport/2i
    (3)Digi InsideOut Networks Edgeport/4i

  13. My serial application hangs or I get a tcflush error. What is the fix?

    To address this, add the following line to /etc/iu.ap file.
      <usb serial driver name>   -1   0   ldterm   ttcompat
     (<usb serial driver name>  could be usbsprl, usbsksp or  usbser_edge )

     Run the following command and ignore error messages :
      # autopush -f /etc/iu.ap

     Connect USB serial device to the system.

     Run the following command to verify  ldterm and ttcompat modules have been pushed on top of the usb serial driver:
      # strconf < /dev/term/0

     The output should look like:
               ttcompat
               ldterm
               <usb serial driver name>

      Now, try your application again.

  14. Can I use a USB serial device for console access?

    Yes, but only Prolific based devices connected to an uhci controller are supported (ohci and ehci are not supported). For more information see http://www.opensolaris.org/os/community/on/flag-days/pages/2006061401/


Back to Top

USB Security:

  1. How can security issues be addressed when data is being transferred to or from a USB mass storage device ?

    At this time, there are no secure USB commands to transfer data to or from a USB mass storage device. If you are concerned about USB security, please add the following lines to the file /etc/system

    exclude:  drv/scsa2usb
    exclude: drv/usba10_scsa2usb #(For Solaris 8 and Solaris 9)

    and then reboot your system.

  2. How do I allow only my current devices but no new USB devices for security purposes?

    A usb security script usbsecure.pl is available that can be used for this purpose. There is a README and demo that can be refered to. Download the same from the following url: http://developers.sun.com/prodtech/solaris/driverdev/reference/codesamples/usb_security/index.html


Back to Top

Ugen / Libusb:

  1. How do I use ugen?

    Refer to ugen(7D) man page or use libusb(3LIB)

  2. Where can I download the ugen driver for Solaris 8 and Solaris 9.

    Install the latest Solaris 8 and 9 patches, and run usbconfig script from http://www.sun.com/bigadmin/scripts/sunScripts/usbconfig.txt. (Refer to question 3 under 'USB General' for more details).

  3. Is libusb supported on Solaris?

    Yes. Libusb API support is available for both Solaris and Sun Ray. In Solaris 10, refer to the man pages ugen(7d) and libusb (/usr/sfw/share/doc/libusb/libusb.txt) for details. There is an interesting blog at: http://blogs.sun.com/roller/page/dp/20041223#gtkam_usb_on_solaris_10

  4. I wish to write libusb applications. Where/how do I begin?

    Please refer to libusb.txt (Refer to libusb(3LIB) man page).

  5. Ugen and libusb do not support isochronous requests. Is this correct?

    That is correct, there is work in progress on this. Send mail to usb-help@sun.com for the latest status.

  6. I want to use ugen but I can't get it to bind.

    Using prtconf -v, check the compatible names for the node that you want to bind to. Then check /etc/driver_aliases and make sure that the correct compatible name is in /etc/driver_aliases. Note that quotes (" ") are needed. Also check /etc/name_to_major whether an add_drv ugen is needed (For Solaris 8, Solaris 9, use usba10_ugen) After binding ugen, issue the update_drv command and the unplug the device and re-insert the device (ie., hotplug the device - hotplug can usually resolve binding issues).

    In Solaris 10, manual setup of ugen is required. In OpenSolaris and Solaris 10 Update 2 (and later releases), any USB device without a class driver which is bound to usb_mid(7D) driver will export a ugen interface by default and will therefore work with libusb(3LIB). Other drivers that also export ugen interfaces include scsa2usb(7D) and usbprn(7D). So devices bound to these drivers should all work with libusb without manual binding of ugen driver. Refer to the General section for "libusb should just work" patch.

  7. Where are the libusb sources?

    The source packages are available in OpenSolaris. Refer to libusb(3LIB), which has a pointer to libusb.txt with source package information.

  8. What permissions do I need to access ugen device nodes?

    In Solaris release earlier than Solaris 10 Update 2, when you need to manually bind ugen driver, the device permissions are decided by the -m option used with add_drv command. For example, if you bind ugen driver by

    # add_drv -m '* 0666 root sys' ugen
    It means the ugen device nodes are owned by root, but are readable and writable by other users. You can access ugen nodes later in any user account. If you bind ugen driver by
    # add_drv -m '* 0644 root sys' ugen
    Then the ugen nodes are only writable by root. If you want to write to the nodes, you need to be root.

    In latest OpenSolaris or Solaris 10 Update 2 and later releases, when you no longer bind ugen driver manually, the ugen permissions are given to console login user. So you have to log on console to be able to access the ugen nodes. Refer to logindevperm(4).


Back to Top

Sun Ray USB:

  1. If a USB device is supported on Solaris will it work with Sun Ray as well?

    The Sun Ray implementation of USB drivers is different from Solaris implementation. Please download the SRSS 4 for the latest Sun Ray support for USB devices. For device support details check: http://www.sun.com/io_technologies/sunray/sunray0.html.

  2. Are USB 2.0 devices from Quatech supported ?

    Currently only USB 1.1 devices from Quatech are supported. The current Sun Ray driver does not support USB 2.0 on the new Quatech devices SSU2-100, DSU2-100 and QSU2-100.

Back to Top

Reporting Problems:

  1. If your problem is not resolved even after reading through this FAQ, please email usb-help@sun.com with the following information:

    a) Your usb device and computer details including model number and vendor name.

    b) Output logs of the following commands that were run on your machine.

        # uname -a 

    # dmesg

    # prtconf -vD

    # cat /etc/driver_aliases

    # cat /etc/name_to_major
    c) Run the following command immediately after you hit upon your usb problem and include the generated log in
    your email.
      # echo "::usba_debug_buf" | mdb -k > /tmp/usblog 
      # echo "::prtusb -vt" |mdb -k >> /tmp/usblog 
    (The ::prtusb dcmd is only available in OpenSolaris and not in earlier releases.)
  2. If the problem is related to libusb, enable libusb debug info by setting the environment variable SUN_LIBUSB_DEBUG to 3 or higher.

    Eg: # export SUN_LIBUSB_DEBUG=3
    and run the application on command line in the same terminal.
  3. For USB mass-storage device problems, please stop vold (refer question 3 and 4 under 'USB Storage' for details) when you are testing and generating debug information. There is a blog containing a dtrace script that may help debugging scsa2usb problems. Dtracing SCSI (http://blogs.sun.com/chrisg/entry/scsi_d_script)


Back to Top

Sun Microsystems is providing links to these products as a courtesy. Sun Microsystems makes no representations regarding the products or any information related thereto. Any questions and complaints or claims regarding the products must be directed to the appropriate Vendor. Solaris SolarisReady and OpenSolaris are trademarks or registered trademarks of Sun Microsystems Inc. in the U.S. and other countries. All other trademarks are the property of their respective owners.

Would you recommend this Sun site to a friend or colleague?
Contact About Sun News & Events Employment Site Map Privacy Terms of Use Trademarks Copyright 1994-2007 Sun Microsystems, Inc.