From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg KH Date: Thu, 15 Nov 2001 22:02:58 +0000 Subject: Re: hotplug arch. and apps Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org On Thu, Nov 15, 2001 at 12:38:03PM -0800, Scott Cuyle Fritzinger wrote: > > Hey hotplug developers! My name is Scott Fritzinger, a developer with the > gPhoto project (www.gphoto.org) > > In pushing out our newest version (2.0), we are coming up with ideas as to > how to make digital cameras truly "plug and play" (when the user plugs in > the camera, it's ready to use). We have come up with the following > solution: > > Using a hotplug script (/etc/hotplug/usb/camera), we either set the > ownership of the device (/proc/bus/usb/001/003 for example) to that of the > locally logged in user in the case of a non-mass-storage camera, or we > mount the mass-storage camera to /camera0 and set ownership again to the > locally logged in user. this alleviates all the problems with permissions, > and make the camera ready to use right away. Sounds great. > the base of this is of course a hotplug script. there is a catch though: > how does hotplug know which cameras gphoto (or other applications) > support? we can easily go through and append the ID's to > /etc/hotplug/usb.handmap|usb.usermap, but what about when gphoto is > updated with a new camera list? we'd have to go back through find out > which entries are there, and then add new ones. and removing an ID would > be a bit tough too. > > I've come up with an idea that would make this REALLY easy to do, and it > is only slightly different than what hotplug currently does. instead of > just relying on usb.handmap or usb.usermap, why not create a directory > /etc/hotplug/usb.map/ and place files in there that contain the ID's for > the supported devices? the hotplug agent can open each file, look for ID's > and then run the corresponding scripts. This needs to play nice with the automated /lib/modules//modules.usbmap files too (these are automatically built by depmod so the hotplug scripts know what kernel drivers match what devices. But I suppose if no match is found in the kernel driver list, searching a directory is a good idea. > like, you can place all the HID device "lines" in /etc/hotplug/usb.map/hid These should be covered by the modules.usbmap file. > in our (gphoto's) case, we can place everything in > /etc/hotplug/usb.map/camera for all known (still) camera ID's. This will > be a VERY generic file, not gphoto specific at all, but rather supportive > of all apps out there. this file will cause the agent to run the > /etc/hotplug/usb/camera script, which will then mount (usb mass storage) > or set permissions on the device. What would you expect the /etc/hotplug/usb.map/camera file to look like? Would it have all usb product/vendor ids that gphoto2 works with, or would there be single file for ever product/vendor pair? > this design allows for other applications that implement user-land drivers > via libusb to set up proper permissions on the device when it is plugged > in. That is a great idea, and as more USB devices are supported by user space programs (like gphoto) instead of kernel drivers, this will become more important. > is it possible alter the usb agent to work in this way? the downside would > be disk hits for each file in /etc/hotplug/usb.map/* (a little slower), > but the flexibility is that each application can EASILY update the devices > it supports by just placing a file in there instead of having to search > through a single file and replace (usb.handmap). Don't worrry about the speed hit, the flexibility is much more important (I don't think a user minds that a device takes an extra second or so to initialize everything when it is plugged in.) > ideas? thoughts? I think it's a great idea, and am interested in further implementation details. thanks, greg k-h _______________________________________________ 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