Yet another USB post

From: James Noyes (nntp_at_retrogeeks.com)
Date: 01/30/05


Date: Sun, 30 Jan 2005 05:26:42 -0700


(Post duplicated on supportforums.sun.com - I just want to increase my
response possibilities)

Long-time Solaris user and reasonably competent admin here, but fairly new
to USB in general, and VERY new to it on Solaris. I apologize for the
length of this post, but I wanted to be thorough.

After reading a number of success stories, and acquiring a few USB devices,
I decided it was time to get USB going on my Solaris workstation (Ultra 60
running Solaris 9 112233-12).

I installed an IOGear GUF320 (2 Firewire/3 USB 2.0) PCI card.
I chose this card since I have a limited number of PCI slots, and I wanted
firewire as well, in anticipation of being able to use it down the road.
It was listed in the BigAdmin HCL as working, and the price was decent.

I've read the FAQ at http://www.sun.com/io_technologies/USB-Faq.html
I've read most of the USB-related threads already posted here.
I've got patch 115553-14 installed successfully.
I've done a reconfigure boot.

"prtdiag" shows the card as:

Bus Freq
Brd Type MHz Slot Name Model
--- ---- ---- ---------- ---------------------------- --------------------
0 PCI 33 PCI 3 usb-pci10b9,5237.17fc.5237.1+
0 PCI 33 PCI 3 usb-pci10b9,5237.17fc.5237.1+
0 PCI 33 PCI 3 usb-pci10b9,5237.17fc.5237.1+
0 PCI 33 PCI 3 usb-pci10b9,5239.17fc.1688.2+
0 PCI 33 PCI 3 firewire-pci10b9,5253.17fc.5+

"prtconf -D" shows (trimmed for brevity):

SUNW,Ultra-60
    pci, instance #0 (driver name: pcipsy)
        usb, instance #0 (driver name: ohci)
        usb, instance #1 (driver name: ohci)
            storage, instance #1 (driver name: scsa2usb)
                disk, instance #31 (driver name: sd)
        usb, instance #2 (driver name: ohci)
            storage, instance #0 (driver name: scsa2usb)
                disk, instance #30 (driver name: sd)
        usb (driver name: usba10_ehci)
        firewire, instance #0 (driver name: hci1394)
            unit

At this point, things are "sort of" working, and I have a whole bunch of
questions as a result. I'd appreciate any useful input I can get.

There is a "usb" prtconf entry with "usba10_ehci" after it. The FAQ says
this should be the USB 2.0 host controller. However, it does not have an
instance number assigned. Why not? Did I miss something in my setup/install
that would cause this? Is the driver not recognizing my card properly? Did
I make a poor choice of card? Is there a different combination FireWire/USB
2.0 card that would be a better choice, even if it costs a little more?

"cfgadm -l" and "cfgadm -vl" don't show any output relating to USB
devices at all, even though prtconf does. Again, did I miss a step in my
setup/install that would lead to this?

I (obviously) have two storage devices attached. One is a memory stick
device, and is definitely USB 1.x. The other is my iPod and is definitely
USB 2.0. However, both are showing up with the scsa2usb driver, suggesting
they're being seen as 1.x devices, and both appear to be running at 1.x
speeds. A copy of a large file onto the iPod showed just under 700K/sec
transfer speeds. Is the iPod running at 1.x speeds just because the 2.0
host controller isn't working correctly, or for some other reason?

I tried to use the usbconfig utility provided at
http://www.sun.com/bigadmin/scripts/sunScripts/usbconfig.txt
If I select the "1" option to choose all USBA 1.0, none of the USB ports
function at all, and I see the message:
Jan 30 02:02:17 hostname usba10: [ID 593373 kern.info] /pci@1f,4000/usb@4,3
    (usba10_ehci0): ehci_init_ctlr: No SOF's have started
in /var/adm/messages. If I choose the "D" option to use defaults, I get the
current situation with the usb 2.0 port apparently being unrecognized. Is the
"D" option the one I should be using?

vold. Yes, I've read that vold isn't terribly cooperative with USB devices.
But it "sort of" works, and I'm wondering if it's going to improve to
"really" working at some point.
If I stop and restart vold, both the iPod and the memory stick device get
mounted under /rmdisk. If I "eject" either one of these devices, it unmounts
cleanly. In the case of the iPod, it even changes its display to the
"check-mark" indicating it's safe to remove. But for either device, if I
reconnect it, it will not mount unless I stop and restart vold again. At
that point, either device happily remounts just like it was. Will there be
an update to vold at some point to make it remount these sorts of devices
every time they are disconnected and reconnected without having to stop and
restart it?

I've read that under Solaris 9, a "HUP" of vold should make it remount
reconnected devices. Mine doesn't seem to do that, though, and only works
if I stop it and restart. Is there a patch I'm missing maybe that adds this
behavior? Even a "HUP" is more manageable than a stop/restart cycle.

Also, the mount of the iPod currently takes about 90 seconds. I can see the
mount command running with a "ptree `pgrep vold`" command. Is this taking
so long because of the slow USB 1.x speed? Will this mount happen faster
once I get the iPod working at USB 2.0 speeds? Is the brief "pause" I get
at the iPod's mount when I do a "df -k" happening for the same reason?

The memory stick mounts as "/rmdisk/128mstick", where "128mstick" is the name
assigned to the memory stick. The iPod mounts as "/rmdisk/unnamed_rmdisk".
Where is the name for a pcfs hard drive taken from? What do I need to do to
put a name on the iPod drive so it will mount as, say, "/rmdisk/iPod" instead?

The memory stick device is accessed via my PDA. The PDA also has a "sync"
mode where it presents as a serial device, not a storage device. When I
activate this mode, a "device" entry is created in prtconf, like this:

    usb, instance #2 (driver name: ohci)
        device, instance #0 (driver name: usb_mid)
            interface

and the /dev/usb entry for it points to a "usb_mid" device:

lrwxrwxrwx 1 root root 50 Jan 30 03:56 device0 -> ../../devices/pci@1f,4000/usb@
4,2/device@1:usb_mid

This device does not seem to be acknowledged by the system (the sync aborts
with a "could not establish connection" message on the PDA). Where might I
find an appropriate driver that will allow the PDA to sync via USB? I
understand that drivers to make USB PDAs appear as tty devices exist, but
I've had no luck locating one for Solaris.

I'm really looking forward to using these (and other) USB devices, and my
experience so far indicates that even though things may not be 100% just yet,
they should be some time in the near future. I'm willing to wait for what's
still to come, but I'd sure like to use whatever capabilities exist so far.
Hopefully some useful followup will get me to that point.



Relevant Pages

  • Re: Mounting an iPod as an external HDD
    ... (i don't know enough to say if compiling the drivers into ... > How do I mount a USB external drive? ... > I don't know how to mount a USB device. ... I was wondering how I would mount the iPod on my FreeBSD ...
    (freebsd-stable)
  • [solved] Re: mounting iPod with USB
    ... i just want to mount it to write music to it. ... > usb mouse), and the vfat file systemt is inserted as a module. ... - i need to load several kernel modules, like usb-storage and sbp2, ... for the iPod to show up in my /proc/scsi/scsi. ...
    (Debian-User)
  • Re: Solaris 9/10, usb storage > 500 gig
    ... controller but only sees 500 gigs of the array. ... Solaris 9 and a rev of 10 from approx June ... Does Solaris support> 500 gig USB drives? ...
    (comp.unix.solaris)
  • Re: Solaris 9/10, usb storage > 500 gig
    ... controller but only sees 500 gigs of the array. ... Solaris 9 and a rev of 10 from approx June ... Does Solaris support> 500 gig USB drives? ...
    (comp.unix.solaris)
  • howto access usb printer from application level
    ... I am a beginner in solaris, and I have some question about writing C ... matrix printer attached to the usb port. ... said that usbprndriver can be access by prnio(generic printer ... to help me out access the usb device. ...
    (comp.unix.solaris)