Re: udev not called on USB disconnect

From: Greg KH
Date: Mon Jun 05 2006 - 12:19:53 EST


On Mon, Jun 05, 2006 at 10:34:20AM +0200, Ondrej Zary wrote:
> Hello,
> I'm trying to do automount/umount for my Canon camera using udev. The
> camera does not support mass storage so I'm using gphotofs+fuse to
> access it.
> I created canon.rules file in /etc/udev/rules.d which contains:
>
> BUS=="usb", SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="306e",
> ACTION=="add", RUN+="/usr/bin/gphotofs /mnt/camera -o allow_other"
> BUS=="usb", SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="306e",
> ACTION=="remove", RUN+="/sbin/umount -f /mnt/camera"

You can't read sysfs values when a device is removed, because those
sysfs files are not present anymore. Try testing the environment
variables instead.

> (the file contains only two lines).
> When I plug in the camera, the first rule is executed and camera mounted
> properly. However, disconnecting it does not do anything, the second
> rule is never executed. I also tried rule as simple as:
>
> BUS=="usb", RUN+="/bin/touch /123"
>
> If I understand udev correctly, that should create /123 file on each USB
> event. It works when connecting the camera but does not do anything on
> disconnect.

Are you sure that no other rule ahead of this one stopped this rule from
ever being read?

Also, udev questions belong on the linux-hotplug-devel mailing list...

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/