|
|
USB FAQ
Information about the USB specifications and products can be
found at the USB Implementers Forum
website.
USB FAQs Rev 100909
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
- General Questions
- Driver Development Kit
- USB Host Controllers
- USB Keyboard, Mouse, Hubs
- USB Audio
- USB Video
- USB Storage
- USB Printers
- USB Digital Cameras
- USB Scanner
- USB Floppy
- USB to Serial
- USB Security
- Ugen / Libusb
- Sun Ray USB
- Reporting Problems
General questions:
-
What types of USB devices are supported in Solaris?
Refer to usb(7D) man page which lists all bundled USB
drivers
-
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.
-
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.
-
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/
-
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).
-
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.
-
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.
-
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
-
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.
-
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.
-
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
-
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_
-
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
-
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
-
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).
-
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.
-
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
-
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).
-
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.
-
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.
-
I need to extend to 100m or more. how do I use this?
You can use active cable extenders.
-
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
-
How do I configure my USB printer?
Use print manager, /usr/sbin/printmgr
Or use JDS Java Launch -> Preferences -> Printer
Preferences
-
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.
-
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.
-
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 American
Megatrends, 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 section
under 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, try
upgrading the BIOS to a newer version.
This method is not exclusive to Sun servers. Any BIOS that
supports booting from a USB 2.0 device should theoretically work with this
method, although the exact menu layout may differ. Additionally, it's good to
check if your USB device is verified to work with Solaris by visiting the
Solaris Ready USB section.
It is also worth noting that USB boot works equally well with
both external and internal USB ports [6]. On many
1U-based Sun servers with internal slots, the bottom port is inactive. Use the
top port for your USB device.
-
How do I boot off a USB disk for a SPARC-based server?
1) Ensure the OBP version is at least 4.27.
ok .version
Release 4.30.4 created 2009/08/19 07:18
OBP 4.30.4 2009/08/19 07:18 Sun Ultra 45
POST 4.30.4 2009/08/19 07:35
OBDIAG 4.30.4 2009/08/19 07:29
2) Find the USB disk and copy its device path
ok show-disks
a) /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/disk
b) /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/cdrom
c) /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/disk
q) NO SELECTION
Enter Selection, q to quit: q
3) Create a USB alias using the device path
ok nvalias usb /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/disk
4) Boot the USB disk
ok boot usb
-
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'
-
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.
-
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.
-
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.
-
Where do I find some freeware NIC USB drivers?
There are some freeware NIC USB drivers on Masa Murayama's
site and sourceforge.net.
-
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).
-
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.
-
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/.
-
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:
-
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.
-
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.
-
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:
-
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.
-
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.
-
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.)
-
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.
-
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.
-
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:
-
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.
-
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.
-
Can I build an extender by cascading hubs?
You can but it is not recommended cascading beyond
3. Also, self powered hubs are recommended.
-
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.
-
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.
-
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 USB
1.x hub.
-
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.
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.
- 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.
-
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.
-
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:
-
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.griffintechnology.com/. Some
Logitech audio devices have also been reported to work.
-
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:
-
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.
-
Where can I find more information on using Ekiga?
See the official FAQ at http://www.ekiga.org/faq/
Back to Top
USB Storage:
-
Where do I find documentation related to USB Storage
devices ?
Solaris System Administration Guide and refer to FAQ #8 in
the General Section above.
-
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.
-
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.
-
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/
-
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)
-
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
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
-
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.
-
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.
-
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
-
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.
-
How do I mount my iPod?
Use -o hidden option:
mount -F pcfs -o hidden /dev/dsk/c5t0d0s0:1 /ipod
-
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.
-
Does Solaris support NTFS?
No, not at this time. There is a project to port FUSE to
Solaris, which will add support for NTFS. See http://opensolaris.org/os/project/fuse/
-
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.
-
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)).
-
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
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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
-
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
-
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
-
Can I use a single filesystem on a drive that is larger than 1TB?
PSARC
2008/336 added the plus1TB project to support booting on disks > 1 TB.
This makes it possible to use UFS or pcfs on drives up to 2TB in size on
systems running a 64 bit kernel. This Feature is available in the
OpenSolaris 2008.11 release and will be in a future update of Solaris 10.
For systems running older releases of Solaris 10 or OpenSolaris, you can
use the entire drive as a ZFS volume instead.
-
Can I put ufs on other partitions than p0?
No, only p0 is supported for ufs.
-
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.
- Will cdrecord be part of Solaris?
cdrecord is part of Solaris 10 update 2 and in OpenSolaris
and installed in /usr/bin.
- 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.
-
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.
-
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:
-
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:
-
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.
-
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
-
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:
-
Can I use a USB scanner on Solaris ?
Yes, you can on OpenSolaris. See sane(7), xsane(1), scanimage(1), xscanimage(1) on OpenSolaris. For other Solaris versions,
refer to libusb(3LIB) and libusb.txt.
Back to Top
USB Floppy:
-
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
-
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:
-
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 following Edgeport TI chip based adapters are supported on Opensolaris and Solaris10 Update6
Edgeport/8 (usb1608, 244)
Edgeport/416 (usb1608, 247)
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.
The following devices are known to work under Opensolaris with the usbftdi(7D) driver.
Vendor: Future Technology Devices Model Name: 8U232AM Serial Vendor Id: "403,6001"
Vendor: Future Technology Devices Model Name: SEMC DSS-20 SyncStation Vendor Id: "403,fc82"
Vendor: Future Technology Devices Model Name: Crystalfontz CFA-632 USB LCD Vendor Id: "403,fc08"
Vendor: Future Technology Devices Model Name: Crystalfontz CFA-634 USB LCD Vendor Id: "403,fc09"
Vendor: Future Technology Devices Model Name: Crystalfontz CFA-633 USB LCD Vendor Id: "403,fc0b"
Vendor: Future Technology Devices Model Name: Crystalfontz CFA-631 USB LCD Vendor Id: "403,fc0c"
Vendor: Future Technology Devices Model Name: Crystalfontz CFA-635 USB LCD Vendor Id: "403,fc0d"
Vendor: Future Technology Devices Model Name: Matrix Orbital USB Serial Vendor Id: "403,fa00"
Vendor: Future Technology Devices Model Name: Matrix Orbital MX2 or MX3 Vendor Id: "403,fa01"
Vendor: Future Technology Devices Model Name: Matrix Orbital MX4 or MX5 Vendor Id: "403,fa02"
Vendor: Future Technology Devices Model Name: Matrix Orbital VK/LK202 Family Vendor Id: "403,fa03"
Vendor: Future Technology Devices Model Name: Matrix Orbital VK/LK204 Family Vendor Id: "403,fa04"
Vendor: Future Technology Devices Model Name: OpenPort 1.3 Mitsubishi Vendor Id: "403,cc48"
Vendor: Future Technology Devices Model Name: OpenPort 1.3 Subaru Vendor Id: "403,cc49"
Vendor: Future Technology Devices Model Name: OpenPort 1.3 Universal Vendor Id: "403,cc4a"
Vendor: Future Technology Devices Model Name: Expert ISDN Control USB Vendor Id: "403,e888"
Vendor: Future Technology Devices Model Name: USB-RS232 OptoBridge Vendor Id: "403,e889"
Vendor: Future Technology Devices Model Name: Expert mouseCLOCK USB II Vendor Id: "403,e88a"
Vendor: Future Technology Devices Model Name: Precision Clock MSF USB Vendor Id: "403,e88b"
Vendor: Future Technology Devices Model Name: Expert mouseCLOCK USB II HBG Vendor Id: "403,e88c"
Vendor: SIIG Model Name: Serial Vendor Id: "7cc,0421"
Vendor: Intrepid Control Systems Model Name: ValueCAN CAN bus interface Vendor Id: "93c,0601"
Vendor: Intrepid Control Systems Model Name: NeoVI Blue vehicle bus interface Vendor Id: "93c,0701"
Vendor: B&B Electronics Model Name: RS-422/485 Vendor Id: "856,ac01"
Vendor: Melco, Inc Model Name: PC-OP-RS1 RemoteStation Vendor Id: "411,00b3"
Keyspan USA-49WG adapter is supported on OpenSolaris and Solaris10 Update5.
-
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.
-
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.
-
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 to question 9 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 4 under 'USB General' for details
regarding Solaris releases)
-
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).
-
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
-
I have two Edgeport 416 connected to a single system, but only 12 serial devices are available to use at a time even though all 32 ports are attaching.
This is a known issue in which there are not enough ehci/ohci resources to support two Edgeport 416 devices. Opening some of the serial devices may return errno 6. A workaround has been discovered by adding the following lines to /etc/system and rebooting the system:
set ohci:ohci_ed_pool_size=200
set ohci:ohci_td_pool_size=400
set ehci:ehci_qh_pool_size=200
set ehci:ehci_qtd_pool_size=400
-
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 USB serial adapter and a serial modem.
-
My Digi Edgeport device does not work on Solaris 8 and
Solaris 9.
Run usbconfig script and enable USBA1.0 on all hardware
-
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)
-
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.
-
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.
-
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
-
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.
-
Can I use a USB serial device for console access?
Yes, Prolific based devices are supported by connecting to a uhci host controller on Solaris Express Community Edition Build 43 and later as well as OpenSolaris 2008.05, 2008.11 and 2009.06. Prolific based devices are supported by connecting to an ehci and ohci host controller on Solaris Express Community Edition Build 112 and later. FTDI based devices are supported by connecting to an ehci, ohci and uhci host controller on Solaris Express Community Edition Build 113 and later. See usbsprl(7D) and usbftdi(7D) for more information.
Back to Top
USB Security:
-
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.
-
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:
-
How do I use ugen?
Refer to ugen(7D) man page or use libusb(3LIB)
-
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).
-
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
-
I wish to write libusb applications. Where/how do I
begin?
Please refer to libusb.txt (Refer to
libusb(3LIB) man page).
-
Ugen and libusb do not support isochronous requests. Is
this correct?
Not fully correct, ugen can support isochronous transfer on OpenSolaris, see ugen(7D). However, libusb doesn't support
isochronous requests. But you can use OpenUSB if you'd like this feature. OpenUSB is the next generation library to manage USB
devices on OpenSolaris. It has much richer interfaces, see libopenusb(3LIB) for more detail.
-
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.
-
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.
-
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:
-
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/sunray-index.html.
-
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:
-
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.)
-
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.
-
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
|