[This time as text - sorry to Alan who will have got it twice]
Thanks for your response;
I provide further info below, and apologize for the original confused
request.
Alan Stern wrote:
On Mon, 19 Jan 2009, Sam Liddicott wrote:
I've soldered added a usb connector to my Freecom Musicpal internet
radio, and it works fine with USB memory sticks, but gets stuck if there
is a USB hub inserted.
I don't know enough to tell if it is a kernel problem or a user space
problem
It's not a userspace problem.
Thats helpful, thanks.
My USB hard disk has a built-in hub as lsusb shows:
Bus 005 Device 006: ID 1058:0702 Western Digital Technologies, Inc.
Passport External HDD
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
This doesn't show anything one way or another, since it doesn't
indicate whether device 006 is a hub or not.
Device 001 is a hub, though, surely? It vanishes when I remove the USB
hard disk.
The musicpal doesn't like usb hubs; it recognizes "a" usb device as
dmesg on the musicpal shows:
Jan 17 10:58:00 MusicPal user.info kernel: usb 1-1: USB disconnect,
address 6
Jan 17 10:58:01 MusicPal user.info kernel: usb 1-1: new high speed USB
device using ehci-mv88w8xx8 and address 7
Jan 17 10:58:01 MusicPal user.info kernel: usb 1-1: configuration #1
chosen from 1 choice
But it doesn't go on to enumerate the devices on the bus.
What devices? It sure looks like it enumerated the hub. That's what
the last line indicates.
Yes, but it didn't seem to enumerate the hard disk sitting of the end of
it.
I think I was too brief on my data sources for which I apologise.
The lsusb (shown above) was taken from my desktop PC based on a diff of
lsusb before and after inserting the disk. (The musicpal doesn't have
lsusb).
The dmesg above is from the musicpal.
It seems like the musicpal notices the hub built-in to the disk but not
the disk
What can I do to help it see the devices beyond the hub?
Fix the underlying problem! :-)
So I did some "control" tests using a cheap 4 port hub, which my desktop
PC lsusb shows as:
Bus 003 Device 005: ID 058f:9254 Alcor Micro Corp. Hub
Although it recognizes and mounts a usb memory stick when plugged
directly, it fails to do so if it is plugging in via the 4 port hub.
if I plug in a 4 port hub, dmesg -c shows:
$ dmesg -c
usb 1-1: new high speed USB device using ehci-mv88w8xx8 and address 12
usb 1-1: ep0 maxpacket = 8
usb 1-1: new high speed USB device using ehci-mv88w8xx8 and address 13
usb 1-1: ep0 maxpacket = 8
usb 1-1: new high speed USB device using ehci-mv88w8xx8 and address 14
usb 1-1: ep0 maxpacket = 8
usb 1-1: new high speed USB device using ehci-mv88w8xx8 and address 15
usb 1-1: ep0 maxpacket = 8
but the new hubs don't show up
$ ls -l /sys/bus/usb/drivers/hub/
lrwxrwxrwx 1 root root 0 Jan 17 10:56 1-0:1.0 ->
./../../../devices/platform/ehci-mv88w8xx8.1436/usb1/1-0:1.0
--w------- 1 root root 4096 Jan 17 10:56 bind
--w------- 1 root root 4096 Jan 17 10:56 new_id
--w------- 1 root root 4096 Jan 17 10:56 unbind
The dmesg above is from the musicpal when I insert a cheap self-powered
4 port hub
Above you wrote "a 4 port hub", and here you wrote "the new hubs".
Which is it, a single hub or multiple hubs?
Well... sometimes it's hard to tell. Based on the (working) PC dmesg
output (below) it seems to be a single 4 port hub. I wonder why the
music pal gave it 4 addresses.
On my desktop, lsusb shows:
Bus 002 Device 002: ID 058f:9254 Alcor Micro Corp. Hub
and /sys/bus/usb/drivers/hub shows:
lrwxrwxrwx 1 root root 0 2009-01-17 11:18 2-1:1.0 ->
./../../../devices/pci0000:00/0000:00:1d.1/usb2/2-1/2-1:1.0
for the new hub
Any tips as to what normally happens at this point?
Normally the hub is enumerated and bound to the hub driver. However
you don't need us to tell you what normally happens; you can see for
yourself by plugging the hub into your desktop machine.
Aye, I could have asked a clearer question if I had known enough to
construct one...
but I didn't know if it happened in kernel space, and I thought the hub
driver was in usbcore anyway (and therefore always present), so I am so
far from what little I know...
the only loadable module is the wland river, the rest is static.
The dmesg below was when I do the same thing on my desktop pc:
[47303.184027] usb 3-2: new full speed USB device using uhci_hcd and
address 5
[47303.354191] usb 3-2: configuration #1 chosen from 1 choice
[47303.357401] hub 3-2:1.0: USB hub found
[47303.359030] hub 3-2:1.0: 4 ports detected
I note that it doesn't mention assigning addresses - unlike the musicpal
which assigned 4
I've got a shell on the musicpal and can run many commands.
What does a normal system do to make the hub-connected devices appear?
You're not thinking about this the right way. It doesn't matter what a
normal system does; you should be worried about what _your_ system is
doing wrong.
I was hoping to do either a spot-the-difference or check that which
thing my bad system isn't doing. As I think usbcore holds the hub
drivers I was hoping the problem would be down to a hotplug action or
something...
Obviously you need a lot more information to find the problem. You
should use a kernel with CONFIG_USB_DEBUG enabled, and you should use
usbmon (see Documentation/usb/usbmon.txt) to trace what happens when
the hub is plugged in.
I'm using a 2.6.16 kernel and have checked "a" config file for that
kernel but don't find any obvious config options that might affect the
availability of the hub driver.
If the kernel has kexec, I might manage what you say, otherwise it's
going to be fun and games as there's only about 200K spare in the flash
anyway...
Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html