linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* hotplug and test and set
@ 2005-01-01 23:03 Rainer Dorsch
  2005-01-02  0:06 ` Kay Sievers
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Rainer Dorsch @ 2005-01-01 23:03 UTC (permalink / raw)
  To: linux-hotplug

Hello,

I have an Epox DG02A usb dongle for bluetooth.

$ ls usbview
[...]
Bus 003 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle


I added a script to start pand into my /etc/hotplug.d/usb directory on my 
Debian system. 

rd@topsi:~$ cat /etc/hotplug.d/usb/epox-bluetooth.hotplug
#!/bin/sh
pidfile=/var/run/pand.pid
lockfile=/var/lock/pand.lock
DAEMON=/usr/bin/pand
case `echo $PRODUCT|cut -d / -f 1-2` in
        # a12/1/525 and a12/1/828 have been seen for the Epox BT DB02A
        a12/1) break ;;
        *) exit ;;
esac
case $TYPE in
        224/1/1) break ;;
        *) exit ;;
esac
case $ACTION in
        add)
            # poor man's locking
            if [ ! -e $lockfile ]; then
              touch $lockfile
              echo entered locked area >> /tmp/epox.log
              hcitool scan >> /tmp/epox.log
              sleep 1
              start-stop-daemon --start --exec $DAEMON -- --nodetach --role 
PANU --search --encrypt --pidfile $pidfile
            fi
            ;;
        remove)
            start-stop-daemon --stop --exec $DAEMON --pidfile $pidfile
            rm $lockfile
            ifdown bnep0
            ;;
esac
rd@topsi:~$


My problem is that this script is called four times when the dongle is plugged 
in. I order to avoid to call pand four times, I added a poor test and set to 
the script to add a lock when a pand is running. Does anybody know, what I 
could do to get a better locking behaviour, e.g. an atomic test and set?


Many thanks,
Rainer

-- 
Rainer Dorsch
Alzentalstr. 28
D-71083 Herrenberg
07032-919495
Icq: 32550367


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: hotplug and test and set
  2005-01-01 23:03 hotplug and test and set Rainer Dorsch
@ 2005-01-02  0:06 ` Kay Sievers
  2005-01-02  1:27 ` Marco d'Itri
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Kay Sievers @ 2005-01-02  0:06 UTC (permalink / raw)
  To: linux-hotplug

On Sun, 2005-01-02 at 00:03 +0100, Rainer Dorsch wrote:
> I added a script to start pand into my /etc/hotplug.d/usb directory on my 
> Debian system. 
...
> My problem is that this script is called four times when the dongle is plugged 
> in.

What is in the DEVPATH variable of all four events? I expect you can
sort out the right one.

Kay



-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: hotplug and test and set
  2005-01-01 23:03 hotplug and test and set Rainer Dorsch
  2005-01-02  0:06 ` Kay Sievers
@ 2005-01-02  1:27 ` Marco d'Itri
  2005-01-02 13:30 ` Rainer Dorsch
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Marco d'Itri @ 2005-01-02  1:27 UTC (permalink / raw)
  To: linux-hotplug

On Jan 02, Rainer Dorsch <rdorsch@web.de> wrote:

> My problem is that this script is called four times when the dongle is plugged 
> in. I order to avoid to call pand four times, I added a poor test and set to 
> the script to add a lock when a pand is running. Does anybody know, what I 
> could do to get a better locking behaviour, e.g. an atomic test and set?

From http://linux-hotplug.sourceforge.net/?selected=usb:

There are two kinds of usb hotplug event: device, and interface. Kernel
2.6 added device events, as well as reporting the complete set of
interface events. You can tell which kind of event by the environment
variables: device events don't include PRODUCT, or any of the other
parameters here except DEVPATH and ACTION.

So:

# ignore device events
[ "$PRODUCT" ] || exit 0

-- 
ciao,
Marco


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: hotplug and test and set
  2005-01-01 23:03 hotplug and test and set Rainer Dorsch
  2005-01-02  0:06 ` Kay Sievers
  2005-01-02  1:27 ` Marco d'Itri
@ 2005-01-02 13:30 ` Rainer Dorsch
  2005-01-02 15:23 ` Kay Sievers
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Rainer Dorsch @ 2005-01-02 13:30 UTC (permalink / raw)
  To: linux-hotplug

Am Sonntag, 2. Januar 2005 02:27 schrieb Marco d'Itri:
> On Jan 02, Rainer Dorsch <rdorsch@web.de> wrote:
> > My problem is that this script is called four times when the dongle is
> > plugged in. I order to avoid to call pand four times, I added a poor test
> > and set to the script to add a lock when a pand is running. Does anybody
> > know, what I could do to get a better locking behaviour, e.g. an atomic
> > test and set?
> >
> >From http://linux-hotplug.sourceforge.net/?selected=usb:
>
> There are two kinds of usb hotplug event: device, and interface. Kernel
> 2.6 added device events, as well as reporting the complete set of
> interface events. You can tell which kind of event by the environment
> variables: device events don't include PRODUCT, or any of the other
> parameters here except DEVPATH and ACTION.
>
> So:
>
> # ignore device events
> [ "$PRODUCT" ] || exit 0

Many thanks for the quick reply.

I added

(date
echo $DEVPATH
echo $PRODUCT
echo $TYPE
echo $ACTION) >> /tmp/epox.log

into the script.

The result is

Sun Jan  2 14:06:32 CET 2005
/devices/pci0000:00/0000:00:07.2/usb1/1-2


add
Sun Jan  2 14:06:32 CET 2005
/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0
a12/1/525
224/1/1
add
entered locked area
Sun Jan  2 14:06:32 CET 2005
/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1
a12/1/525
224/1/1
add
Sun Jan  2 14:06:32 CET 2005
/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2
a12/1/525
224/1/1
add


That means that I should scan for a DEVPATH variable ending with 1.0 (?)

Many thanks,
Rainer

-- 
Rainer Dorsch
Alzentalstr. 28
D-71083 Herrenberg
07032-919495
Icq: 32550367


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: hotplug and test and set
  2005-01-01 23:03 hotplug and test and set Rainer Dorsch
                   ` (2 preceding siblings ...)
  2005-01-02 13:30 ` Rainer Dorsch
@ 2005-01-02 15:23 ` Kay Sievers
  2005-01-02 17:07 ` Rainer Dorsch
  2005-01-02 18:15 ` Kay Sievers
  5 siblings, 0 replies; 7+ messages in thread
From: Kay Sievers @ 2005-01-02 15:23 UTC (permalink / raw)
  To: linux-hotplug

On Sun, 2005-01-02 at 14:30 +0100, Rainer Dorsch wrote: 
> Am Sonntag, 2. Januar 2005 02:27 schrieb Marco d'Itri:
> > On Jan 02, Rainer Dorsch <rdorsch@web.de> wrote:
> > > My problem is that this script is called four times when the dongle is
> > > plugged in. I order to avoid to call pand four times, I added a poor test
> > > and set to the script to add a lock when a pand is running. Does anybody
> > > know, what I could do to get a better locking behaviour, e.g. an atomic
> > > test and set?
> > >
> > >From http://linux-hotplug.sourceforge.net/?selected=usb:
> >
> > There are two kinds of usb hotplug event: device, and interface. Kernel
> > 2.6 added device events, as well as reporting the complete set of
> > interface events. You can tell which kind of event by the environment
> > variables: device events don't include PRODUCT, or any of the other
> > parameters here except DEVPATH and ACTION.
> >
> > So:
> >
> > # ignore device events
> > [ "$PRODUCT" ] || exit 0
> 
> Many thanks for the quick reply.

> /devices/pci0000:00/0000:00:07.2/usb1/1-2
> /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0
> a12/1/525
> /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1
> a12/1/525
> /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2
> a12/1/525

You get one device event and three interface events for this USB device.

> That means that I should scan for a DEVPATH variable ending with 1.0 (?)

You may just just match the event for the device. Just add the exit
statement Marco suggested and negate it to skip interface events
instead.

Kay



-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: hotplug and test and set
  2005-01-01 23:03 hotplug and test and set Rainer Dorsch
                   ` (3 preceding siblings ...)
  2005-01-02 15:23 ` Kay Sievers
@ 2005-01-02 17:07 ` Rainer Dorsch
  2005-01-02 18:15 ` Kay Sievers
  5 siblings, 0 replies; 7+ messages in thread
From: Rainer Dorsch @ 2005-01-02 17:07 UTC (permalink / raw)
  To: linux-hotplug

Am Sonntag, 2. Januar 2005 16:23 schrieb Kay Sievers:
> On Sun, 2005-01-02 at 14:30 +0100, Rainer Dorsch wrote:
> > Am Sonntag, 2. Januar 2005 02:27 schrieb Marco d'Itri:
> > > On Jan 02, Rainer Dorsch <rdorsch@web.de> wrote:
> > > > My problem is that this script is called four times when the dongle
> > > > is plugged in. I order to avoid to call pand four times, I added a
> > > > poor test and set to the script to add a lock when a pand is running.
> > > > Does anybody know, what I could do to get a better locking behaviour,
> > > > e.g. an atomic test and set?
> > > >
> > > >From http://linux-hotplug.sourceforge.net/?selected=usb:
> > >
> > > There are two kinds of usb hotplug event: device, and interface. Kernel
> > > 2.6 added device events, as well as reporting the complete set of
> > > interface events. You can tell which kind of event by the environment
> > > variables: device events don't include PRODUCT, or any of the other
> > > parameters here except DEVPATH and ACTION.
> > >
> > > So:
> > >
> > > # ignore device events
> > > [ "$PRODUCT" ] || exit 0
> >
> > Many thanks for the quick reply.
> >
> > /devices/pci0000:00/0000:00:07.2/usb1/1-2
> > /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0
> > a12/1/525
> > /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1
> > a12/1/525
> > /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2
> > a12/1/525
>
> You get one device event and three interface events for this USB device.
>
> > That means that I should scan for a DEVPATH variable ending with 1.0 (?)
>
> You may just just match the event for the device. Just add the exit
> statement Marco suggested and negate it to skip interface events
> instead.
>

Hmm... $PRODUCT and $TYPE are empty for the interface. Wouldn't that mean that 
I try to start pand for every usb device?

Thanks,
Rainer

-- 
Rainer Dorsch
Alzentalstr. 28
D-71083 Herrenberg
07032-919495
Icq: 32550367


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: hotplug and test and set
  2005-01-01 23:03 hotplug and test and set Rainer Dorsch
                   ` (4 preceding siblings ...)
  2005-01-02 17:07 ` Rainer Dorsch
@ 2005-01-02 18:15 ` Kay Sievers
  5 siblings, 0 replies; 7+ messages in thread
From: Kay Sievers @ 2005-01-02 18:15 UTC (permalink / raw)
  To: linux-hotplug

On Sun, 2005-01-02 at 18:07 +0100, Rainer Dorsch wrote:
> Am Sonntag, 2. Januar 2005 16:23 schrieb Kay Sievers:
> > On Sun, 2005-01-02 at 14:30 +0100, Rainer Dorsch wrote:
> > > Am Sonntag, 2. Januar 2005 02:27 schrieb Marco d'Itri:
> > > > On Jan 02, Rainer Dorsch <rdorsch@web.de> wrote:
> > > > > My problem is that this script is called four times when the dongle
> > > > > is plugged in. I order to avoid to call pand four times, I added a
> > > > > poor test and set to the script to add a lock when a pand is running.
> > > > > Does anybody know, what I could do to get a better locking behaviour,
> > > > > e.g. an atomic test and set?
> > > > >
> > > > >From http://linux-hotplug.sourceforge.net/?selected=usb:
> > > >
> > > > There are two kinds of usb hotplug event: device, and interface. Kernel
> > > > 2.6 added device events, as well as reporting the complete set of
> > > > interface events. You can tell which kind of event by the environment
> > > > variables: device events don't include PRODUCT, or any of the other
> > > > parameters here except DEVPATH and ACTION.
> > > >
> > > > So:
> > > >
> > > > # ignore device events
> > > > [ "$PRODUCT" ] || exit 0
> > >
> > > Many thanks for the quick reply.
> > >
> > > /devices/pci0000:00/0000:00:07.2/usb1/1-2
> > > /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0
> > > a12/1/525
> > > /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1
> > > a12/1/525
> > > /devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2
> > > a12/1/525
> >
> > You get one device event and three interface events for this USB device.
> >
> > > That means that I should scan for a DEVPATH variable ending with 1.0 (?)
> >
> > You may just just match the event for the device. Just add the exit
> > statement Marco suggested and negate it to skip interface events
> > instead.
> >
> 
> Hmm... $PRODUCT and $TYPE are empty for the interface. Wouldn't that mean that 
> I try to start pand for every usb device?

You are right, sorry. I thought you were using the usermap and not the
multiplexer infrastructure.

Kay



-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2005-01-02 18:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-01 23:03 hotplug and test and set Rainer Dorsch
2005-01-02  0:06 ` Kay Sievers
2005-01-02  1:27 ` Marco d'Itri
2005-01-02 13:30 ` Rainer Dorsch
2005-01-02 15:23 ` Kay Sievers
2005-01-02 17:07 ` Rainer Dorsch
2005-01-02 18:15 ` Kay Sievers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).