Netplug
Contents
Introduction to Netplug
Netplug is a Linux daemon that brings up/down network interfaces in response to network cables being plugged in and out. This application is mostly useful for a laptop or computer (used for lan parties?) that is often relocated to different LANs.
The netplugd rc script shared below replaces the clfs-bootscripts network script. If you remove the network script and symlinks in the rc#.d directories, and later decide you want them, then merely reinstall from the clfs-bootscripts.
Dependencies
Required
- Dhcpcd
- or other dhcp client
Configuration Information
This package does not use a configure script. Any additional configuration must be made within the Makefile.
Non-Multilib
Much of this, including the patches were ripped from the Gentoo ebuild. These instructions did successfully install the application onto a pentium-m based x86 laptop.
Modify the Makefile:
remove=" -ggdb3 " [[ " ${CFLAGS} " == *" -O"[0-9]" "* ]] && remove="${remove}-O3 " sed -i -e "s/${remove}/ /" Makefile sed -i '/bk_root/,$d' Makefile
Apply patches:
patch -Np0 -i ../netplug-1.2.9-gcc4-1.patch patch -Np1 -i ../netplug-1.2.9-remove-nest-1.patch patch -Np1 -i ../netplug-1.2.9-ignore-wireless-1.patch
Compile and install the package:
make make install
Multilib
AFAICT this package does not provide any libraries so only one installation is needed.
32Bit
Must be tested and any instructions should be included by others
N32
Must be tested and any instructions should be included by others
64Bit
Must be tested and any instructions should be included by others
Configuring
Create the netplugd script:
cat > /etc/rc.d/init.d/netplugd << "EOF #!/bin/sh ######################################################################## # Begin $rc_base/init.d/netplugd # # Description : Netplugd-1.2.9 # # Authors : Harvey Muller # # Version : 00.02 # # Notes : Still beta # ######################################################################## . /etc/sysconfig/rc . ${rc_functions} if [ ! -x /sbin/netplugd ]; then echo "/sbin/netplugd missing, or needs to be installed ..." exit 1 fi # Use netplugd if present, it supplies NETPLUGDARGS if needed. if [ -f /etc/sysconfig/netplugd ]; then . /etc/sysconfig/netplugd fi if [ `id -u` != "0" ] && [ "$1" = "start" -o "$1" = "stop" ] ; then echo "You must be root to start, stop or restart netplugd." exit 1 fi case "${1}" in start) boot_mesg "Starting network plug daemon..." loadproc /sbin/netplugd ${NETPLUGDARGS} -p /var/run/netplugd.pid RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/netplugd ;; stop) boot_mesg "Stopping network plug daemon..." killproc netplugd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/netplugd ;; restart|reload) ${0} stop ${0} start ;; status) statusproc netplugd RETVAL=$? ;; condrestart) [ -f /var/lock/subsys/netplugd ] && restart || : ;; *) echo "Usage: ${0} {start|stop|reload|restart|status|condrestart}" exit 1 ;; esac exit $RETVAL # End $rc_base/init.d/netplugd EOF
Create symlinks to netplugd script:
ln -sf /etc/rc.d/init.d/netplugd /etc/rc.d/rc0.d/K80netplugd ln -sf /etc/rc.d/init.d/netplugd /etc/rc.d/rc1.d/K80netplugd ln -sf /etc/rc.d/init.d/netplugd /etc/rc.d/rc2.d/S21netplugd ln -sf /etc/rc.d/init.d/netplugd /etc/rc.d/rc3.d/S21netplugd ln -sf /etc/rc.d/init.d/netplugd /etc/rc.d/rc4.d/S21netplugd ln -sf /etc/rc.d/init.d/netplugd /etc/rc.d/rc5.d/S21netplugd ln -sf /etc/rc.d/init.d/netplugd /etc/rc.d/rc6.d/K80netplugd
If you have configured your wired interface through udev (or other means) to be named eth0, and you only have one wired interface, then we may as well configure netplug to use it only:
sed -i 's/eth\*/eth0/' /etc/netplug/netplugd.conf
Netplug requires the /var/lock/subsys directory be present:
[ -d /var/lock/subsys ] || install -d -m755 /var/lock/subsys
Make links in /sbin for ifup and ifdown:
ln -sf /etc/sysconfig/network-devices/ifup /sbin/ifup ln -sf /etc/sysconfig/network-devices/ifdown /sbin/ifdown
And finally modify ifconfig.etho/dhcpcd changing ONBOOT=yes to ONBOOT=no, using your favorite editor, or use the following sed script:
sed -i -e '/ONBOOT/s/yes/no/' /etc/sysconfig/network-devices/ifconfig.eth0/dhcpcd
Contents
Installed Programs: /sbin/netplugd
Installed Libraries: none
Installed Directories: /etc/netplug, /etc/netplug.d, /var/lock/subsys
Installed Scripts: /etc/netplug.d/netplug, /etc/rc.d/init.d/netplugd
Installed Documentation: /usr/share/man/man8/netplugd.8
Short Descriptions
netplugd: a daemon which automatically brings your network interface up/down based on cable insertion/removal.