As content from sun.com transfers over to oracle.com, I decided to temporarily repost the USB FAQ on this blog as we migrate over. This document is managed by myself and others across Oracle to help assist users in managing USB in Solaris 8, 9, and 10.Information about the USB specifications and products can befound at the USB Implementers Forumwebsite.

USB FAQs Rev 112009

The FAQs below are intended to provide some answers to issues faced byusers when trying to use USB devices under Solaris. Most of the FAQslisted here are focussed on Solaris 10 Update and OpenSolaris releases.Some questions concerning Solaris 8 and Solaris 9 are also included. Forthe most accurate information, users are advised to check out thedocumentation 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 USBdrivers

  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 meansexhaustive but attempts to cover as many USB devices as possible thatare known to work under Solaris. Also, in addition to many new devicesbeing introduced into the market each day, many may have undergonerevisions or updates to their firmware or hardware even though they maybe listed with the same model number or are no longer available.

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

    It is highly recommended that users upgrade their OS withthe latest USB patches for optimal results. Note: Patches listed heremay get superceded by later patches which are generally inclusive ofthe 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 oruse 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 sponsoredby Sun Microsystems, Inc, that is initially based on a subset of thesource code for the Solaris Operating System. It is a nexus for acommunity development effort where developers from Sun and elsewhere cancollaborate on developing and improving operating system technology.OpenSolaris is a single CD combined live/install image: a core operatingsystem, kernel, system libraries, a desktop environment and a packagemanagement system. Support is available through paid subscription servicesand developer assistance.

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

    Solaris Express Developer Edition is Sun's tested releasebuilt from the OpenSolaris bits and additional technology that has notbeen published in the OpenSolaris source base. For additional details,including support options, see the Developer Edition site. There is nocharge for this release. The Developer Edition is released every three tofour months and replaces the Solaris Express monthly release.

    More information about the OpenSolaris and Solaris Express releases can befound 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 thelatest USB fixes for Solaris 10. If you do not wish to install OpenSolarisbut want to install patches over your Solaris 10 installation, thefollowing 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 DualFramework 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 OpenSolarisrelease)


    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 notfully functional on Solaris 8 or Solaris 9, even after installingall 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, forexample to run all USB ports with the newer USBA 1.0 framework, youwill need to run the usbconfig script from: http://www.sun.com/bigadmin/scripts/.../usbconfig.txt

    If you are using a USB 2.0 device, please run usbconfigscript and select the option '1' that sets all USB ports to USBA1.0Framework 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 speccompliant but there are a few things to check :
    • if connected to usb1.x port then connect to usb2.0 orvice versa
    • insert a usb1.x or usb2.0 hub
      - if a usb2.0 device is on a usb2.0 port you can force itto usb1.x speed by inserting a usb1.x hub
      - if a 1.x device is on a usb1.x port you can force it towork 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 devicesnot recognized" above.

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


    mdb(1)has a dcmd ::usba_debug_buf for dumping the USB log buffer which maygive 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 inSolaris 8 and Solaris 9?

    Check with prtconf -D that all usb drivers have prefix ofusba10_

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

    On Solaris 8 and Solaris 9, check with prtconf -D whetherthe 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 formessages 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 USBdevice was recognized by the OS? What command can I use?

    You can use 'cfgadm' to find the port that your device isconnected 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 physicallydisconnecting the device)?

    # cfgadm -vl (Solaris 9 and later)
    # cfgadm -c disconnect usbx/y
    # prtconf -D The device node should no longer be listed. Refer tocfgadm_usb(1M).

  16. On my SPARC platform, when I don't use my device for anhour 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 mydevice and it does not work.

    Run prtconf -D on the command prompt and check if thedevice 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 x86but 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 oneswork 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-powereddevices 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 scriptavailable at: http://developers.sun.com/prodtech/s...ity/index.html

    To completely disable USB, you can remove the USB packageSUNWusb 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 -> PrinterPreferences

  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.

    Thismeans that a USB 2.0 device is connected to a USB1.x hub which isoperating at full speed (and not at high speed), because the USB1.xport 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 issupported on x86 platforms with S10 update 1 and later if the BIOS has USB2.0 support. Sparc systems with USB 2.0 support can boot from USB disks ifthe OBP(Open Boot Prom) is upgraded to version 4.27 or later. Before youcan boot Solaris from USB disk, you have to install Solaris on the diskfirst. Installing on USB memory sticks is not recommended as the number ofwrites 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 do I boot off a USB disk for an x86/x64-based server?

    Assuming you are using a Sun X-line server utilizing an AmericanMegatrends, Inc. (AMI) BIOS, press F2 at server bootup to enter the BIOS.Navigate to the Boot menu option using the arrow keys [1]. Hit return on Boot Device Priority [2]and hit return again with the 1st Boot Device selected [3]. You should see your USB device listed. Highlight it and press enter,then F10 to Save and Exit [4]. This will reboot your server using your USB disk as the primary boot device. If your USB device is not showing up in the Boot Device Priority menu, try seeing if it is listed in the Hard Disk Drives sectionunder Boot. You should be able to hit return on 1st Drive and see it listed [5]. If it still is not visible, you may want to check if your USB disk is USB 2.0 compatible, or alternatively, tryupgrading the BIOS to a newer version.

    This method is not exclusive to Sun servers. Any BIOS thatsupports booting from a USB 2.0 device should theoretically work with thismethod, although the exact menu layout may differ. Additionally, it's good tocheck if your USB device is verified to work with Solaris by visiting theSolaris Ready USB section.

    It is also worth noting that USB boot works equally well withboth external and internal USB ports [6]. On many 1U-based Sun servers with internal slots, the bottom port is inactive. Use thetop port for your USB device.

  27. How do I boot off a USB disk for a SPARC-based server?

    1) Ensure the OBP version is at least 4.27.ok .versionRelease 4.30.4 created 2009/08/19 07:18OBP 4.30.4 2009/08/19 07:18 Sun Ultra 45POST 4.30.4 2009/08/19 07:35OBDIAG 4.30.4 2009/08/19 07:292) Find the USB disk and copy its device pathok show-disksa) /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/diskb) /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/cdromc) /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/diskq) NO SELECTION Enter Selection, q to quit: q3) Create a USB alias using the device pathok nvalias usb /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/disk4) Boot the USB disk ok boot usb
  28. How can I get the product id and vendor id of a USBdevice?

    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'
  29. 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.

  30. 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.

  31. Is there USB Smart Card support in Solaris?

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

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

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

  33. 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).

  34. Can I use a USB modem?

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

  35. Is there java support for USB?

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

    Pressing the eject button on my CD/DVD drive does not eject the media.

    The Solaris HAL implementation does not currently have support for EjectPressed. This issue is fixed in OSOL build 124 and available to developers via opensolaris.org and genunix.org. For some devices, GNOME may display a popup message stating "Unable to unmount volume." A workaround for this is:

    svccfg -s rmvolmgr setprop rmvolmgr/eject_button=boolean: false svcadm restart rmvolmgr This does, however, limit you to pressing eject while a GNOME session is running.

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 andsample applications that run on Solaris 10 only. To get the latest USBdevelopment in Solaris, please install OpenSolaris or Solaris Expressbuilds. (Refer to question 4 under General section above). The WritingDevice Drivers guide for developers is available at: http://docs.sun.com/app/docs/doc/816...=USB+driverand contains detailed information on how to write a USB device driver forthe USBA 2.0 framework. A USB skeleton driver for the Solaris 10 OS isavailable 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 todevelop device drivers for the Solaris Operating System. This bookincludes step-by-step descriptions of writing, building, installing,loading, and testing real device drivers. These instructions help youunderstand how drivers control devices. This book also gives anoverview of the driver development environment, tools available to youto develop drivers, and techniques for avoiding some driver developmentproblems.

    Writing Device Drivers http://docs.sun.com/app/docs/doc/816-4854 This book provides information on developing drivers forcharacter-oriented devices, block-oriented devices, USB devices, andSCSI target and HBA devices for the Solaris Operating System (SolarisOS). This book discusses how to develop multithreaded reentrant devicedrivers for all architectures that conform to the Solaris DDI/DKI. Acommon driver programming approach is described that allows drivers tobe written without concern for platform-specific issues such asendianness and data ordering.

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

    There are also resources on the Sun Developer Networkwebsite: http://developers.sun.com/solaris/le...iver/index.jsp

Back to Top
USB Host Controllers:
  1. Is any third party USB 2.0 PCI card needed for USB 2.0support on older SUN SPARC / x86 machines?

    Yes, PCI Host Controller USB 2.0 cards from third partyvendors such as Addonics, D-Link or Belkin can be used before connectingUSB 2.0 devices for older SPARC/x64 machines. Please check the list ofverified USB devices at http://www.sun.com/io_technologies/s...TDPCI3.htmlfor other vendor details. On the latest Ultra 20 and other x64/x86-basedSUN platforms, USB 2.0 is natively supported.

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

    Please use the latest Solaris 10 or OpenSolaris for uhcisupport.

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

    SomeVIA controller revisions were found not to work reliably with the ehcidriver.The ehci(7D) man page describes a method to enable ehci (you maydo so at your ownrisk.)

  4. When I do a prtconf -D on my system, why do I see 3controllers (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 cardand 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 ohcicontroller.

  5. I see multiple USB controllers in prtconf output for myUSB2.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 currentconditions even if no device is connected.

    The fix for this condition is available with the introductionof USB power budgeting, which is available in OpenSolaris or Solaris 10Update 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:

    Can I use multiple mice on Solaris?

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

    Can I use multiple keyboards or a bar code scanner onSolaris?

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

    Can I build an extender by cascading hubs?

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

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

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

    Can I use non SUN keyboards/mice?


    Yes, many (such as Logitech etc.) are known to work but someothers have issues. Check http://www.sun.com/io for list of knownworking third party keyboards/mice. Some of the latest Logitech keyboardand mice have been tested under the latest release of Solaris. Werecommend you use latest OpenSolaris releases if you want to use theseLogitech devices.

    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.

    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 USB1.x hub.

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

    The Type 7 keyboard is the new USB 2.0 keyboard from SUNthat 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.

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

    If you are using a SPARC machine and Type 7 keyboard, pleaseupdate the OBP(Open Boot Prom) to the latest version for your system bydownloading the same from the SUN website. For most SPARC hardwareplatforms, the OBP version 4.16 or higher would work well. However, theOBP version for newer T2000 platform would be the l4.16 or latestrecommended 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.

    My device is not recognized when it is connected to the USBport of the SUN Type 7 keyboard? And, I see "Connectingdevice failure" being reported. Why? The internal hub of the Type 7 keyboard is a bus-poweredhub. 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.

    What is power budget control?

    Power budget control is specified in USB spec to limitdevice connections to a hub to avoid overcurrent condition. A self-powered hubcan supply a maximum of 500mA to each port, while a bus-powered hubshould only supply a maximum of 100mA to each port. With power budgetcontrol, devices consuming power more than 100mA will be deniedconnection to a bus-powered hub. And two bus-powered hubs are notallowed to be concatenated.

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

    Why doesn't my keyboard function after system halt on mySPARC 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.



    How to set keyboard layouts explicitly on OpenSolaris?

    Generally, Solaris and Xorg automatically detect your keyboard layout andload the right keytable automatically. But in some cases, the keyboardlayout detected by Solaris is not what user desires and this may requiresome manual settings. For example, when a keyboard is connected to a systemvia a KVM, it probably reports the keyboard layout different from the layoutof the actual keyboard.

    To configure the keyboard layout manually, please follow the belowinstructions to workaround this problem. Thefollowing instructions take US layout as an example. For other layout types,please see /usr/X11/share/X11/xkb/xkbtable.map.

    For Xorg (v1.5 or later) users, create a fdi file as below:

    cat > /etc/hal/fdi/policy/30user/99-x11-keyboard-settings.fdi