1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
ifplugd 0.28
Overview
ifplugd is a Linux daemon which will automatically configure your
ethernet device when a cable is plugged in and automatically
unconfigure it if the cable is pulled. This is useful on laptops with
onboard network adapters, since it will only configure the interface
when a cable is really connected.
ifplugd ifplugd interfaces with your distribution's native network
configuration utilities.
Some features:
* Uses your distribution's native ifup/ifdown programs.
* May beep when the cable is unplugged, plugged, the interface
configuration succeeded or failed.
* Supports the Linux SIOCETHTOOL (newer, aka ethtool API),
SIOCGMIIREG (older, aka mii-diag/mii-tool API) and SIOCDEVPRIVATE
(oldest, aka mii-tool API) ioctl()s for getting link status.
Release 0.24 introduces support for link detection with the
IFF_RUNNING interface flag.
* Syslog support
* Small program - the binary is just 25 KB (plus 16 KB for
libdaemon).
* Multiple ethernet interface support
* Can be configured to ignore short "unplugged" periods (-d option)
or short "plugged" periods(-u option)
* Support for wireless networking. Whenever an association to an AP
is detected the network is configured. Have a look on [29]waproamd
if you need a facility to configure WEP keys before AP
associations succeed.
* Compatibility mode for network devices which do not support cable
detection (-F option)
Current Status
Version 0.28 is stable and has all the sensible features its users
could think of.
Documentation
Have a look on the man pages [30]ifplugd(8), [31]ifplugstatus(8),
[32]ifplugd.conf(5). (An XSLT capable browser is required)
Configuration
Edit /etc/ifplugd/ifplugd.conf for configuration changes. This file is
a bourne shell script sourced by the init script and used to start
ifplugd with appropriate arguments. You may specify more than one
ethernet interface in INTERFACES. For each interface a seperate
instance of ifplugd is spawned. The arguments specified in ARGS are
append to ifplugd's command line. Have a look on ifplugd -h or man
ifplugd for further information about the available options.
The network interface which is controlled by ifplugd should not be
configured automatically by your distribution's network subsystem,
since ifplugd will do this for you if needed.
On Debian systems, any interfaces named in ifplugd's INTERFACES
environment variable should not also be listed in an "auto" stanza in
/etc/network/interfaces.
Troubleshooting
When you are using the hotplug subsystem (Debian package hotplug) you
may notice that the network device is configured even when it is not
listed on an auto line in /etc/network/interfaces. This may be due to
hotplug being configured to ifup the network interface when it becomes
available. This was the default behavior in the Debian hotplug package
prior to release 0.0.20030117-1, for example. To prevent this you
should either upgrade your hotplug package or comment out the ifup
call in /etc/hotplug/net.agent.
When using ifplugd together with APM (and probably ACPI) suspends,
strange things may happen: some network devices fail to detect the
network cable for a short period of time before and after the suspend.
When using the -f switch, this will be treated as "no link beat", thus
the network is shutdown after a timeout. During this timeout the
machine changes to suspended state. When it is resumed again, the
timeout period will have expired and so the network is deconfigured,
however, as the next cable detection succeeds, the network is
configured again immediately. To fix this problem, ifplugd should be
disabled before the APM suspend and enabled back after the suspend.
This may be done by using apmd and adding a script to
/etc/apm/{suspend,resume}.d which simply calls /etc/init.d/ifplugd
suspend, resp. /etc/init.d/ifplugd resume. It might even be a good
idea to shut down the network completely during suspend, this may be
achieved by calling /etc/init.d/ifplugd stop and /etc/init.d/ifplugd
start in the appropriate places. I strongly urge the packagers of this
software for the Linux distributions to add such scripts to their
packages.
Requirements
A newer Linux Kernel (I think 2.2 is good enough, alltough I tested it
only with 2.4) with a compatible device driver and ethernet card. Most
modern cards and drivers are compatible, like mine which works with
the 8139too driver.
ifplugd was developed and tested on Debian GNU/Linux "testing" from
July 2003, it should work on most other Linux distributions (and maybe
Unix versions) since it uses GNU autoconf and GNU libtool for source
code configuration and shared library management.
The machine used was a Medion 9580-F laptop with a Realtek 8139
network card and a PRISM1 PCMCIA wireless LAN card.
ifplugd needs [36]libdaemon.
Acknowledgements
For the developers of mii-diag, ethtool and laptop-net, since I looked
on their source codes for learning how to use the link beat ioctls.
Oliver Kurth for packaging ifplugd for Debian and ifplugd's manpage
Stefan Seyfried, Thomas Hood, Asgeir Nilsen, Sean Reifschneider, R.
Steve McKown, David Mitchell, Norbert Preining, Herbert Graeber for
patches
Frederic Lepied for integrating ifplugd into Mandrake Linux
Lennart Poettering <mzvscyhtq (at) 0pointer (dot) de>, June 2005
$Id: README.html.in 124 2005-06-04 19:22:59Z lennart $
References
28. http://0pointer.de/lennart/projects/libdaemon/
29. http://0pointer.de/lennart/projects/waproamd/
30. http://0pointer.de/lennart/projects/ifplugd/ifplugd.8.xml
31. http://0pointer.de/lennart/projects/ifplugd/ifplugstatus.8.xml
32. http://0pointer.de/lennart/projects/ifplugd/ifplugd.conf.5.xml
33. http://www.sourceforge.net/projects/gkernel/
|