Re: How to identfy USB physical port?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rupesh Gujare <rgujare@xxxxxxxxxxxxxxx> wrote on 2012/04/04 11:03:24:
> >>>>>
> >>>> Did you tried $lsusb -t
> >>> Yes, but mine look:
> >>> lsusb -t
> >>> Bus#  2
> >>> `-Dev#   1 Vendor 0x1d6b Product 0x0002
> >>>     `-Dev#   2 Vendor 0x8087 Product 0x0024
> >>> Bus#  1
> >>> `-Dev#   1 Vendor 0x1d6b Product 0x0002
> >>>     `-Dev#   2 Vendor 0x8087 Product 0x0024
> >>>       `-Dev#   3 Vendor 0x03f0 Product 0x0024
> >>>
> >>>> Following is output when I connect USB mass storage drive on port 4. :-
> >>>>
> >>>> $ sudo lsusb -t
> >>>> /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
> >>>>        |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
> >>>>            |__ Port 4: Dev 5, If 0, Class=stor., Driver=usb-storage, 480M
> >>>>
> >>> hmm, wonder what the problem might be. I got:
> >>> lsusb -V
> >>> lsusb (usbutils) 004
> >>>
> >>>    Jocke
> >>>
> >>>
> >> $lsusb -V
> >> lsusb (usbutils) 001
> >>
> >> Which kernel version&  linux distribution are you working on ?
> >> If you are on older one moving to newer version might help.
> > gentoo with kernel 3.2.1
> >
> >> Can you find following device tree ?
> >> /sys/bus/usb/devices/
> > Yes, lots of stuff there.
> > ls /sys/bus/usb/devices/
> > 1-0:1.0  1-1  1-1:1.0  1-1.5  1-1.5:1.0  2-0:1.0  2-1  2-1:1.0  usb1  usb2
> >
> >> If I remember correctly 'lsusb' will read USB device information from
> >> above tree.
> > Here is a strace with lsusb 005, do you see what is up?
> >
> >
> > access("/proc/bus/usb/devices", R_OK)   = 0
> > open("/proc/bus/usb/devices", O_RDONLY|O_LARGEFILE) = 6
> >
> Looks like you have usbfs mounted at /proc/bus/usb
>
> Can you try after unmounting usbfs ?
>
> $ sudo umount /dev/bus/usb

umount  /proc/bus/usb/ you mean?

Doing so fixes the problem:
lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
        |__ Port 5: Dev 3, If 0, Class=HID, Driver=usbhid, 1.5M

/proc/bus/usb seems to depend on kernel config USB_DEVICEFS, looks
like it is safe to remove this option?

In any case I think usbutils is buggy as it prefers something it
cannot handle.

config USB_DEVICEFS
	bool "USB device filesystem (DEPRECATED)"
	depends on USB
	---help---
	  If you say Y here (and to "/proc file system support" in the "File
	  systems" section, above), you will get a file /proc/bus/usb/devices
	  which lists the devices currently connected to your USB bus or
	  busses, and for every connected device a file named
	  "/proc/bus/usb/xxx/yyy", where xxx is the bus number and yyy the
	  device number; the latter files can be used by user space programs
	  to talk directly to the device. These files are "virtual", meaning
	  they are generated on the fly and not stored on the hard drive.

	  You may need to mount the usbfs file system to see the files, use
	  mount -t usbfs none /proc/bus/usb

	  For the format of the various /proc/bus/usb/ files, please read
	  <file:Documentation/usb/proc_usb_info.txt>.

	  Modern Linux systems do not use this.

	  Usbfs entries are files and not character devices; usbfs can't
	  handle Access Control Lists (ACL) which are the default way to
	  grant access to USB devices for untrusted users of a desktop
	  system.

	  The usbfs functionality is replaced by real device-nodes managed by
	  udev.  These nodes lived in /dev/bus/usb and are used by libusb.

--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux