On Fri, 2001-10-26 at 07:43, Guennadi Liakhovetski wrote:
> > Disappearance of a connected device is a bad sign. You should look into
> > this problem.
>
> No, I think it wasn't connected, when it disappeared, I just set it up
> (the drivers), connected the mouse, after some tweaking it worked, so, I
> disconnected it, then, I think, it disappeared and when I re-connected it
> and re-loaded the modules - it still didn't appear... But maybe I forgot
> to do something...
Normally you don't need to reload any drivers. You (or hotplug) modprobe
them once, and they stay loaded even if you disconnect the device
(mouse). When you reconnect the drivers are already loaded, and they
claim the device (interface) at once.
You can use /sbin/lsmod to see what drivers are loaded.
> > Maybe hardware problem, maybe software. The host controller driver
> > provides the interface to the bus, and if it is not loaded (or not
> > working properly) then you don't see devices connected to that
> > controller.
>
> Sorry, didn't quite get it. You are talking about the computer (host), not
> the device, right?
Yes, the host.
> AFAIunderstand, the usb-stack consists of the low-level
> generic usb driver (usb-uhci), and then, onthe top of this - device
> specific drivers, right?
There is a generic USB layer (usbcore) that manages HCDs and provides
the API. This is why you can use USB even if no HCD is loaded, or when
10 HCDs are loaded. HCD (like usb-uhci) plugs into that generic USB
layer, and when it discovers a bus then this new bus appears in the
/proc/bus/usb/devices. The filesystem entries are actually created by
the generic layer, and they are present (and empty) even if no HCD is
loaded or working.
> So, is usb-uhci sufficient to recognise any
> usb-device and (at least) make a corresponding record in
> /proc/bus/usb/devices, or is a specific driver required for this?
The HCD, together with the generic layer of the USB stack (usb.c and
friends) does that. The device driver is not required to list the device
in the /proc/bus/usb/devices. What the device driver does, once it
claims some interfaces of a device, is that the driver's name is shown
in (braces) next to the claimed interface in /proc/bus/usb/devices.
> > Have a look at your /var/log/messages.
>
> Nothing there - when I connect that board.
I assume you enabled verbose USB debugging in the kernel config, right?
It dumps descriptors of newly connected devices into the kernel log.
This is very useful if you do any USB development.
If your device is totally "invisible" and causes no changes anywhere
then my guess would be that it is broken (or the cable is broken).
That is because the USB detection is done electrically, by pulling one
of data lines high or low depending on speed.
First, you need to verify that your USB setup is working. Try as many
USB devices as you can find, plug them and unplug them - they should
appear in /proc/bus/usb/devices once connected, and disappear after you
disconnect the device. If the verbose logging is on then you also should
see the descriptors in the kernel log. You don't need device-specific
drivers for this test. usbview utility may be of help here.
After you are sure that your USB host works then you can connect your
Bluetooth device and see what happens. If the *presence* of the device
is not detected then it's easy (electrical issues).
Dmitri
PGP signature