How to find USB devices in Linux?
I have yet to plug a USB device into any of our Ubuntu machines and have the computer immediately recognize it and put up an icon.
I would like to better understand what is happening within Linux with USB devices. If one gives the terminal command lsusb -v , a lot of information comes up (example quoted from such output for 'Bus 001 Device 001...below) but I am unsure what much of it means. I assume that some of it refers to the bus whether something is plugged in or not, and other of it refers to the device that is plugged in.
I also assume that at bootup Linux first sets up some sort of communications with the USB ports so that if anything gets plugged in, the presence of the device should be recognized.
Then presumeably Linux tries to figure out what it is, and if successful, somehow allow user accessability/use of the device.
So if a user wants to confirm that Linux:
-is aware of the device presence, and
-has or has not identified the device
regardless of whether the device is a flash memory (thumbdrive sort of thing), hard disk drive, CD or DVD reader or reader-writer:
what are the various things going on inside Linux so that the state of these things can be consistently determined by the user?
So is anyone able to explain in relatively simple terms what goes on from bootup differentiating between bus and device, especially including any commands that lead one to the information?
Resource referral is welcome, but most of what I have googled up is in pretty deep technical language and I am looking for something more oriented toward newbies. TIA.
Excerpted from lsusb -v
Code:
Bus 001 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3
iProduct 2
iSerial 1
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Triggering software events
Hello here are a couple of articles on the matter you might find verry interesting.
http://applications.linux.com/articl.../07/26/2129232
and
http://gentoo-wiki.com/HOWTO_ivman