Skip to contentSkip to conversation

Executing user script

DISCUSSION Michael Wright 4 participants 6 messages Mar 26, 2001 – Mar 27, 2001

lore
Share & tools
lore
#0 lore raw

I have a script that I want to call everytime that hotplug gets activated. (i.e. I want to notify my application everytime a USB device is added or removed) Is there a way to do this without hard coding my script name in one of the hotplug scripts?

Thanks
Michael

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#1 lore raw
Quoted 5 lines · Michael Wright

I have a script that I want to call everytime that hotplug gets activated. (i.e. I want to notify my application everytime a USB device is added or removed) Is there a way to do this without hard coding my script name in one of the hotplug scripts?

A different way might be to look at usbdevfs. For usbview, I stat /proc/bus/usb/devices and if that changes, then I know a device was added or removed. Then you can go and scan the tree to see what happened.

devfs can also notify your program when a device is seen or removed.

As for your original question, I don't think there is a way to add a user helper, but not quite sure. Need to look at the scripts some more...

Hope this helps,

greg k-h

Signature · 6 lines
greg@(kroah|wirex).com

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
#2 lore raw
In reply to Michael Wright
Quoted 4 lines

I have a script that I want to call everytime that hotplug gets activated. (i.e. I want to notify my application everytime a USB device is added or removed) Is there a way to do this without hard coding my script name in one of the hotplug scripts?

Sounds exactly like when /etc/hotplug/usb.agent gets called, so at some level you just want a enhanced hotplug agent behavior.

At this point there's no general hook to make that particular behavioral change, so you'd have to modify or replace that agent script. Do you think this will be a common enough task that the scripts should accomodate it directly? You didn't say what your "application" does.

As Greg noted, if you have usbdevfs configured there are other ways to get such notifications. As just one example, the Java USB library has a standard notifier interface that calls out to report add/remove of devices and busses. I don't think the C "libusb" does such stuff now though.

- Dave

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#3 lore raw
In reply to Michael Wright

Yes, an enhanced hotplug agent behavior. I cannot be certain if this will be a common enough task that the scripts should accomodate it directly. I am certain that I would use the feature. Basically I do not want my application to poll for added/removed devices. I wanted to be told that a device was plugged in.
Also, I did not want to add my personal scripts to the agent so that it would be easy to install new releases of hotplug. I am looking for something generic.

-Michael

Quoted 25 lines · David Brownell
Quoted 4 lines

I have a script that I want to call everytime that hotplug gets activated. (i.e. I want to notify my application everytime a USB device is added or removed) Is there a way to do this without hard coding my script name in one of the hotplug scripts?

Sounds exactly like when /etc/hotplug/usb.agent gets called, so at some level you just want a enhanced hotplug agent behavior.

At this point there's no general hook to make that particular behavioral change, so you'd have to modify or replace that agent script. Do you think this will be a common enough task that the scripts should accomodate it directly? You didn't say what your "application" does.

As Greg noted, if you have usbdevfs configured there are other ways to get such notifications. As just one example, the Java USB library has a standard notifier interface that calls out to report add/remove of devices and busses. I don't think the C "libusb" does such stuff now though.

- Dave

Quoted 5 lines

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#4 lore raw
In reply to Michael Wright

I have a hard time designing without knowing some of the context. If this is truly an "application" rather than a system tool (of the sort that must integrate closely with other tools like the hotplug agents), why wouldn't it want to learn only about certain devices or classes thereof?

If it only wants to know about certain devices, then it's practical to just add lines to /etc/hotplug/usb.handmap to run scripts when those devices are added. In fact, you should be able to just add an "accepts anything" entry to that file right now (match_flags is zero, no test fails).

Updating the hotplug data will necessarily bring out some interesting upgrade issues, whether that data is viewed as such (all the mapfiles) or as code (scripts).

- Dave

----- Original Message -----
From: "Michael Wright" <[email protected]>
To: "David Brownell" <[email protected]>
Cc: <[email protected]>
Sent: Tuesday, March 27, 2001 10:08 AM
Subject: Re: Executing user script

Quoted 10 lines

Yes, an enhanced hotplug agent behavior. I cannot be certain if this will be a common enough task that the scripts should accomodate it directly. I am certain that I would use the feature. Basically I do not want my application to poll for added/removed devices. I wanted to be told that a device was plugged in.
Also, I did not want to add my personal scripts to the agent so that it would be easy to install new releases of hotplug. I am looking for something generic.

Quoted 35 lines

-Michael

Quoted 30 lines · David Brownell
Quoted 4 lines

I have a script that I want to call everytime that hotplug gets activated. (i.e. I want to notify my application everytime a USB device is added or removed) Is there a way to do this without hard coding my script name in one of the hotplug scripts?

Sounds exactly like when /etc/hotplug/usb.agent gets called, so at some level you just want a enhanced hotplug agent behavior.

At this point there's no general hook to make that particular behavioral change, so you'd have to modify or replace that agent script. Do you think this will be a common enough task that the scripts should accomodate it directly? You didn't say what your "application" does.

As Greg noted, if you have usbdevfs configured there are other ways to get such notifications. As just one example, the Java USB library has a standard notifier interface that calls out to report add/remove of devices and busses. I don't think the C "libusb" does such stuff now though.

- Dave

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#5 lore raw
In reply to Michael Wright
Quoted 5 lines · Michael Wright

I have a script that I want to call everytime that hotplug gets activated. (i.e. I want to notify my application everytime a USB device is added or removed) Is there a way to do this without hard coding my script name in one of the hotplug scripts?

It does not seem difficult...

1st we can create a /etc/hotplug/usb.ext_scripts (containing the names of programs we have to call) an then execute it line by line from usb.agent.

We can also use something like this

$SCRIPT plugged
$SCRIPT nodriver
$SCRIPT unplugged
$SCRIPT ok

so $1 in your script is the exit status of the various operation done by hotplug script.

Btw I think the devfs approach is better...

Signature · 11 lines
Gioele Barabucci (Gb]) 
) mailto:[email protected]
) http://www.gioelebarabucci.com
) ) I've been and now I've gone
) )          /Magic Pie^Oasis


_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel