Re: udev-> libusb issue, already posted to libusb group

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

 



On Fri, Jun 26, 2009 at 11:23:08AM -0700, jack craig wrote:
> responses below
> 
> Greg KH wrote:
> > On Thu, Jun 25, 2009 at 04:21:09PM -0700, jack craig wrote:
> >>
> >> Greg KH wrote:
> >>> On Thu, Jun 25, 2009 at 11:12:29AM -0700, jack craig wrote:
> >>>> I knew the 'Big Guns' wouldnt fail me! :)
> >>>>
> >>>>
> >>>> Greg KH wrote:
> >>>>> On Thu, Jun 25, 2009 at 09:04:59AM -0700, jack craig wrote:
> >>>>>> i have created the rule, ...
> >>>>>>
> >>>>>> BUS=="usb", ATTRS{idVendor}=="1808", ATTRS{idProduct}=="5555", NAME="obdii", MODE="0666", SYMLINK+="obdii"
> >>>>>>
> >>>>>> when i plug in my widget, sure enough, i get a /dev/obdii created with
> >>>>>> my desired permissions so udev is ok (AFAIK).
> >>>>> It should be a symlink, right?  What is the link pointing to?
> >>>> well, as i expect it, /dev/obdii should get created on usb hotplug
> >>>> event and evaporate when its unplugged.
> >>> Again, what is that link pointing to?
> >> the intention was for it to point to the /dev/bus/usb/003/### where
> >> the libusb is accessing the device.  i am creating this rule for the
> >> first time, it could easily be wrong, but it does create the
> >> /dev/obdii as a standalone character device file with the proper
> >> perms.
> >>
> >> i tried this code with and w/o the symlink and it made no difference.
> > 
> > And again, what exactly is this device node, or link?  What does:
> > 	ls -l /dev/obdii
> > show?
> 
> crw-rw-rw- 1 root root 251, 29 2009-06-26 07:02 /dev/obdii
> 
> and the node that libusb is using ...

251:29?  What is major 251?  What does /proc/devices/ show?

> crw-rw-r-- 1 root root 189, 257 2009-06-26 07:02 /dev/bus/usb/003/002

Yup, that's the device you need to be modifying.

> and lsusb's view of the world, ...
> 
> Bus 001 Device 004: ID 058f:6335 Alcor Micro Corp. SD/MMC Card Reader
> Bus 001 Device 003: ID 13fe:1f00 Kingston Technology Company Inc. DataTraveler 2.0 4GB Flash Drive
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 005 Device 002: ID 0b05:b700 ASUSTek Computer, Inc.
> Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 003 Device 002: ID 1808:5555 Multiplex Engineering OBDII to USB Interface
> Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 002 Device 002: ID 046d:c526 Logitech, Inc.
> Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> 
> the rule i am trying to make work, ...
> 
> BUS=="usb", ATTRS{idVendor}=="1808", ATTRS{idProduct}=="5555", NAME="obdii", MODE="0666"
> 
> note i removed the SYMLINK bit as that was a shot in the dark on my part thinking well,
> maybe if i added the SYMLINK, it would link /dev/obdii to /dev/bus/usb/003/002, but that didnt work.
> 
> > 
> > What is this device?
> 
> an obdII interface.

Which is what?

>    Does a kernel driver bind to it already?
> 
> yes, as i needed to use the libusb_detach_kernel_driver so i could access my device with libusb.

What driver is binding to it?

>    If so,
> > why are you trying to mess with libusb?
> because i'd prefer not to write any kernel level driver code.
> 
> so, a bit of background, i used to work on the usb stack years ago while at sco.
> i enjoyed that work and have gotten away from development over the years since.
> 
> i wanted to get back into the usb swing of things(they have changed a lot as well as matured).
> 
> i chose the libusb approach as i could write my stuff in userland code and
> the libusb provided the initial device discovery so i could use libusb to get a  handle to my unique widget.
> 
> i just need to do read/write of 8 byte packets so i dont see a real need to use the kernel driver if the userland
> option works for my sync i/o usage. pls let me know if i am missing something there, i may well be.
> 
> i have been using sudo /myprog to run my code as the perms created on /dev/bus/usb/003/002 are only 660.
> i want to fix that so i can get world accessible access to the obd interface and udev seems to be
> creating my device node properly.
> 
> my perception of the remaining issue is to get /dev/obdii device node to be what i use as during enumeration,
> sometimes its /dev/bus/usb/003/002, but sometimes /dev/bus/usb/003/004, etc.
> 
> does this provide enough additional information? if not, what else may i provide?
> 
> i am going to try the udevadm monitor later this am, but got a chore do to first.

Change your rule to apply to the correct device, you are binding to the
usb device created by some driver that binds to it, not the usbfs
device.

good luck,

greg k-h
--
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