Skip to contentSkip to conversation

config questions

DISCUSSION Ian Walters 4 participants 5 messages Aug 26, 2002 – Aug 28, 2002

lore
Share & tools
lore
#0 lore raw

Hi,

Sorry if this sounds like a newbie question, but the search on the archives kind of suck.

I just finished (successfully after much pain) get hotplug to initialize a device for me when it was plugged in. But to do this I had to bypass all of the existing net.agent script.

I am guessing I didn't find the right documentation. I will tell you what I did and hopefully someone can tell me what I should have done.

Have usbnet loaded as a module.

in /etc/hotplug/net.agent before anything, do

mesg Checking for subscript for $INTERFACE $ACTION if [ -x "/etc/hotplug/interfaces/$INTERFACE" ] ; then
mesg Calling subscript for $INTERFACE $ACTION /etc/hotplug/interfaces/$INTERFACE $ACTION exit 0
fi

and in /etc/hotplug/interfaces reacted to the arguments registered and derigistered to do what I needed for /dev/usb0

Ideally I would always like to say... for devX put file into interfaces/devX and in that file do X for plugged in and Y for unplugged. Just like the init.d scripts.

Information on why my approach is wrong would help, the page
http://linux-hotplug.sourceforge.net/
talked a lot about what hotplug without ever getting to the one question most people would have...
"I have new device X and I want Y to happen when I plug it in. What do I do?"

Thanks for any information. If it turns out this description isn't in existence yet (for users who just want an answer to the above question, not understand how hotplug works) then I might do one up.

Ian.

-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#1 lore raw
Quoted 3 lines

I just finished (successfully after much pain) get hotplug to initialize a device for me when it was plugged in. But to do this I had to bypass all of the existing net.agent script.

Hmm, you didn't say what Linux distro you're using. They differ in how they manage network interfaces ... though there does seem to be a common failing of requring interfaces to be predefined, combined with inadequate (or even incorrect) documentation on how to predefine them.

But then it's complicated by the fact that different network devices all have different initialization models. At least some of those issues are already noted in the net.agent script.

Quoted 4 lines

I am guessing I didn't find the right documentation. I will tell you what I did and hopefully someone can tell me what I should have done.

Have usbnet loaded as a module.

Not necessary, it'll be modprobed when needed. Did you look at

http://www.linux-usb.org/usbnet/

for information about this driver? Your question made me push out some pending updates, which should get synced to the mirrors sometime tonight (document date 28 August). More examples, including zcip, but not yet a complete "out of the box" config example (except for a simple laptop/desktop setup).

The configuration I'd like to see work is basically combining the bridge tools (brctl etc) and zeroconf (zcip, plus ...) so those interfaces never require preconfiguration. (It'd be an option, but not the only or preferred one.)

Quoted 10 lines

in /etc/hotplug/net.agent before anything, do

mesg Checking for subscript for $INTERFACE $ACTION if [ -x "/etc/hotplug/interfaces/$INTERFACE" ] ; then
mesg Calling subscript for $INTERFACE $ACTION /etc/hotplug/interfaces/$INTERFACE $ACTION exit 0
fi

Quoted 2 lines

and in /etc/hotplug/interfaces reacted to the arguments registered and derigistered to do what I needed for /dev/usb0

There's no such thing as /dev/usb0! :)

But what you're doing there is defining a new network administration policy, which is something hotplug has so far avoided doing. Though I'm pretty much convinced it'll be essential for IP-over-USB, since otherwise distros will continue requiring pre-configuration (yeech) instead of just making that a (less desirable) policy option.

The /etc/sysconfig/network-scripts/ifcfg-usb0 script is how at least some distros handle that problem, not that there's good documentation on how to make them work. Not interfaces/usb0.

Quoted 3 lines

Ideally I would always like to say... for devX put file into interfaces/devX and in that file do X for plugged in and Y for unplugged. Just like the init.d scripts.

Whereas, the networking scripts currently invoke "ifup" on interfaces that are known to the distro's network admin tools. They can't often do anything useful on "unregister", like "ifdown", since the interface is gone by then. (Though ISTR that either SuSE or Debian had a version of "ifup" that updated some user mode database, so "ifdown" had to purge that data...) And sysadmin tools don't often handle "usb0" (etc) yet.

Quoted 5 lines

Information on why my approach is wrong would help, the page
http://linux-hotplug.sourceforge.net/
talked a lot about what hotplug without ever getting to the one question most people would have...
"I have new device X and I want Y to happen when I plug it in. What do I do?"

If you're asking as a user, the answer is: "It's probably supposed to happen automatically, without needing pre-configuration. But not all the tools are there yet."

If you're asking as a developer, then "UTSL, and good patches always help" is closer to the answer. Most of those pages are directed towards developers right now.

And it'd be a big help if someone packaged a general "hotplug event triggers user dialog" facility, so that when sysadmin attention is needed, the system can at least initiate a conversation with the user.

- Dave

Quoted 7 lines

Thanks for any information. If it turns out this description isn't in existence yet (for users who just want an answer to the above question, not understand how hotplug works) then I might do one up.

Ian.

-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#2 lore raw
In reply to Ian Walters
Quoted 10 lines · David Brownell
Quoted 3 lines

I just finished (successfully after much pain) get hotplug to initialize a device for me when it was plugged in. But to do this I had to bypass all of the existing net.agent script.

Hmm, you didn't say what Linux distro you're using. They differ in how they manage network interfaces ... though there does seem to be a common failing of requring interfaces to be predefined, combined with inadequate (or even incorrect) documentation on how to predefine them.

Using SuSE 8.0 at the moment.

Quoted 4 lines

But then it's complicated by the fact that different network devices all have different initialization models. At least some of those issues are already noted in the net.agent script.

Quoted 8 lines
Quoted 4 lines

I am guessing I didn't find the right documentation. I will tell you what I did and hopefully someone can tell me what I should have done.

Have usbnet loaded as a module.

Not necessary, it'll be modprobed when needed. Did you look at

http://www.linux-usb.org/usbnet/

admittedly not. It was already part of my kernel source code and worked without me having to do anything, so I didn't do anything :)

Quoted 7 lines

for information about this driver? Your question made me push out some pending updates, which should get synced to the mirrors sometime tonight (document date 28 August). More examples, including zcip, but not yet a complete "out of the box" config example (except for a simple laptop/desktop setup).

Quoted 5 lines

The configuration I'd like to see work is basically combining the bridge tools (brctl etc) and zeroconf (zcip, plus ...) so those interfaces never require preconfiguration. (It'd be an option, but not the only or preferred one.)

Pre-configuration will always need to be possible. It might be I want a alert to go somwhere else when the device is plugged in, or a certain program to start. But I understand what you mean here, its best if the 'end' guy only has to tack on something, and then only if he needs to do something out of the ordinary.

Quoted 10 lines
Quoted 10 lines

in /etc/hotplug/net.agent before anything, do

mesg Checking for subscript for $INTERFACE $ACTION if [ -x "/etc/hotplug/interfaces/$INTERFACE" ] ; then
mesg Calling subscript for $INTERFACE $ACTION /etc/hotplug/interfaces/$INTERFACE $ACTION exit 0
fi

Quoted 4 lines
Quoted 2 lines

and in /etc/hotplug/interfaces reacted to the arguments registered and derigistered to do what I needed for /dev/usb0

There's no such thing as /dev/usb0! :)

Um, yeah. my bad. What I was trying to say was 'unique ident for my device', which for me is INTERFACE=usb0.

Quoted 33 lines

But what you're doing there is defining a new network administration policy, which is something hotplug has so far avoided doing. Though I'm pretty much convinced it'll be essential for IP-over-USB, since otherwise distros will continue requiring pre-configuration (yeech) instead of just making that a (less desirable) policy option.

The /etc/sysconfig/network-scripts/ifcfg-usb0 script is how at least some distros handle that problem, not that there's good documentation on how to make them work. Not interfaces/usb0.

Quoted 3 lines

Ideally I would always like to say... for devX put file into interfaces/devX and in that file do X for plugged in and Y for unplugged.
Just like the init.d scripts.

Whereas, the networking scripts currently invoke "ifup" on interfaces that are known to the distro's network admin tools. They can't often do anything useful on "unregister", like "ifdown", since the interface is gone by then. (Though ISTR that either SuSE or Debian had a version of "ifup" that updated some user mode database, so "ifdown" had to purge that data...) And sysadmin tools don't often handle "usb0" (etc) yet.

Quoted 6 lines

Information on why my approach is wrong would help, the page
http://linux-hotplug.sourceforge.net/
talked a lot about what hotplug without ever getting to the one question most people would have...
"I have new device X and I want Y to happen when I plug it in. What do I do?"

If you're asking as a user, the answer is: "It's probably supposed to happen automatically, without needing pre-configuration. But not all the tools are there yet."

Quoted 7 lines

If you're asking as a developer, then "UTSL, and good patches always help" is closer to the answer. Most of those pages are directed towards developers right now.

And it'd be a big help if someone packaged a general "hotplug event triggers user dialog" facility, so that when sysadmin attention is needed, the system can at least initiate a conversation with the user.

This sounds exactly what I am thinking about. Something you could run, plug in your device, and then tell it what to do on that trigger, after all the hotplug stuff has been done. Guess its source code that I would be diving into and not Documentation at this point. Might have a look on the weekend.

Quoted 1 line

- Dave

Thanks for the information. I definately have a much clear idea of how its set up now and whats going on.

Ian.

-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing real-time communications platform! Don't just IM. Build it in!
http://www.jabber.com/osdn/xim
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#3 lore raw
In reply to Ian Walters
Quoted 6 lines
Quoted 2 lines

and in /etc/hotplug/interfaces reacted to the

arguments registered and

Quoted 1 line

derigistered to do what I needed for /dev/usb0

There's no such thing as /dev/usb0! :)

Is this the usb hub? I can't find usb0 in my system either(RHL 7.3), but /proc/devices lists "180 usb". I tried
mknod /dev/usb/hub c 180 0
but it didn't seem to point to the hub ('open' failed : "No such device"). What is the device file for the USB-UHCI hub?

AFAICS hotplug checks the file /proc/bus/usb/devices. Why not communicate with the hub directly using ioctl calls?

Thanks and regards
-Ajay

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing real-time communications platform! Don't just IM. Build it in!
http://www.jabber.com/osdn/xim
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#4 lore raw
In reply to Ian Walters
Quoted 7 lines · Ajay
Quoted 6 lines
Quoted 2 lines

and in /etc/hotplug/interfaces reacted to the

arguments registered and

Quoted 1 line

derigistered to do what I needed for /dev/usb0

There's no such thing as /dev/usb0! :)

Quoted 7 lines

Is this the usb hub? I can't find usb0 in my system either(RHL 7.3), but /proc/devices lists "180 usb". I tried
mknod /dev/usb/hub c 180 0
but it didn't seem to point to the hub ('open' failed : "No such device"). What is the device file for the USB-UHCI hub?

Why do you want to talk to the root uhci hub? Why would you want to talk to _any_ hub for that matter? You can't really do anything with them.

And device 180 0 is for a USB printer, not a USB hub. See the list at:
http://www.linux-usb.org/usb.devices.txt
for more info on the reserved USB major:minor numbers.

Quoted 3 lines

AFAICS hotplug checks the file /proc/bus/usb/devices. Why not communicate with the hub directly using ioctl calls?

If you _really_ want to send an ioctl command to a USB hub, you have to do it through usbfs, which is mounted at /proc/bus/usb usually. You need to find the specific file under that directory that matches your hub.

I really don't like having that ioctl in the kernel, and am looking to remove it. Why do you want to call it?

Actually, in looking at the kernel code some more, I don't see how anyone can call hub_ioctl()...

thanks,

greg k-h

-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing real-time communications platform! Don't just IM. Build it in!
http://www.jabber.com/osdn/xim
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel