All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: Re: general hotplug/udev questions
Date: Fri, 19 Aug 2005 16:56:47 +0000	[thread overview]
Message-ID: <20050819165647.GA21656@vrfy.org> (raw)
In-Reply-To: <1124394814.4483.46.camel@rich>

On Fri, Aug 19, 2005 at 09:47:59AM -0700, Greg KH wrote:
> On Fri, Aug 19, 2005 at 10:33:02PM +0600, Alexander E. Patrakov wrote:
> > Greg KH wrote:
> > 
> > >On Fri, Aug 19, 2005 at 03:09:59PM +0600, Alexander E. Patrakov wrote:
> > > 
> > >
> > >>Do I understand correctly that the "crawl through sysfs" approach means 
> > >>bus-specific conversion between sysfs contents (e.g the fact that 
> > >>/sys/bus/usb/devices/1-1/idProduct contains "4002" here) and environment 
> > >>variables (in this case, PRODUCT=...)?
> > >>   
> > >>
> > >
> > >Yes, but it's a world easier now that we have added the 'modalias' sysfs
> > >files so we don't have to reconstruct anything.  All we care about at
> > >coldplug time is loading the modules and creating existing device nodes.
> > > 
> > >
> > Sorry, no. We should also care about providing some hook for packages 
> > like SANE and gPhoto2 to chown/chmod pseudofiles in /proc/bus/usb. This 
> > requires perfect reconstruction of at least $PRODUCT and $DEVICE.
> 
> Like Kay said, /proc/bus/usb/???/ is now dead.  We have sane device nodes for
> those usbfs files now that udev can manipulate the permissions for
> properly.  Run the latest -mm trees to see this.
> 
> Kay, you have a libusb patch to support this, right?  Care to share it?

It requires this crazy udev rule:
  SUBSYSTEM="usb_device", PROGRAM="/bin/sh -c 'X=%k X=$${X#usbdev} B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c"

and this patch to libusb, that falls back to the real nodes if usbfs is
not mounted.

###
Patch against libusb, to prepare for the upcoming changes in
the Linux usb core, which will create real device nodes in /dev
with udev. The following rule:
  SUBSYSTEM="usb_device", PROGRAM="/bin/sh -c 'X=%k X=$${X#usbdev} B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK="%c"

creates a similar structure in /dev as usbfs creates in /proc to
be picked up by libusb.

I've removed the fallback to /sys/bus/usb cause this is completely
wrong and can and will never work and /dev/usb is used differently
and will also not provide access to the raw usb devices.

Signed-off-by: Kay Sievers <kay.sievers@suse.de>
---

diff -u -r1.73 linux.c
--- linux.c	1 Mar 2005 19:36:42 -0000	1.73
+++ linux.c	9 Aug 2005 00:06:43 -0000
@@ -636,11 +636,8 @@
     if (check_usb_vfs("/proc/bus/usb")) {
       strncpy(usb_path, "/proc/bus/usb", sizeof(usb_path) - 1);
       usb_path[sizeof(usb_path) - 1] = 0;
-    } else if (check_usb_vfs("/sys/bus/usb")) { /* 2.6 Kernel with sysfs */
-      strncpy(usb_path, "/sys/bus/usb", sizeof(usb_path) -1);
-      usb_path[sizeof(usb_path) - 1] = 0;
-    } else if (check_usb_vfs("/dev/usb")) {
-      strncpy(usb_path, "/dev/usb", sizeof(usb_path) - 1);
+    } else if (check_usb_vfs("/dev/bus/usb")) {
+      strncpy(usb_path, "/dev/bus/usb", sizeof(usb_path) -1);
       usb_path[sizeof(usb_path) - 1] = 0;
     } else
       usb_path[0] = 0;	/* No path, no USB support */



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

  parent reply	other threads:[~2005-08-19 16:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-18 19:53 general hotplug/udev questions rich turner
2005-08-18 20:14 ` Greg KH
2005-08-18 20:49 ` Kay Sievers
2005-08-19  9:09 ` Alexander E. Patrakov
2005-08-19 11:10 ` Marco d'Itri
2005-08-19 16:23 ` Greg KH
2005-08-19 16:33 ` Alexander E. Patrakov
2005-08-19 16:35 ` Kay Sievers
2005-08-19 16:38 ` Marco d'Itri
2005-08-19 16:47 ` Greg KH
2005-08-19 16:56 ` Kay Sievers [this message]
2005-08-19 17:11 ` Greg KH
2005-08-19 17:18 ` Kay Sievers
2005-08-21  7:16 ` Alexander E. Patrakov
2005-08-24 19:43 ` Kay Sievers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050819165647.GA21656@vrfy.org \
    --to=kay.sievers@vrfy.org \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.