All you should have to do is change your rc.inet1.conf DHCP info and then restart rc.inet1
On my laptop, eth0 is my ethernet card and eth1 is my wireless card. So, if I want to switch from wireless to LAN, I remove the "yes" from "USE_DHCP[1]" and add a "yes" to USE_DHCP[0]
Then /etc/rc.d/rc.inet1 restart
Vice-versa if you want to go from LAN to wireless. I've made a /sbin/network script that does everything for me. I have several wireless hotspots that I connect to and I got tired of modifying my rc.wireless.conf and rc.inet1.conf...
In case you are even remotely interested, I'll post it. It's extremely amaturish and overly long but it get's the job done. This is on my own SysVinit Slackware version so locations/names of the files are different than where Slackware puts them. But that's easy enough to change to suit Slackware.
wireless.conf
Code:
# Wireless LAN adapter configuration
VERBOSE=1
case "$HWADDR" in
*)
# Home:
ESSID="MadPenguin"
KEY="b576bdcba1773df06422ac55cb"
# Gypsy Cafe:
#ESSID="2WIRE230"
# Gwen's Airport:
#ESSID="Any"
#KEY="421a0f733138f3c93ba20b6089"
# Beth:
#ESSID="synapse"
#KEY="9dd0414685b6ea173a001b7063"
MODE="Managed"
;;
esac
/sbin/network
Code:
#!/bin/sh
cd /etc/sysconfig
case "$1" in
###############################################################################
home)
echo "Connecting to Home Network..."
# Uncomment the particulars:
if grep '#ESSID="MadPenguin"' wireless.conf 1> /dev/null 2> /dev/null ; then
sed -i 's@#ESSID="MadPenguin"@ESSID="MadPenguin"@g' wireless.conf
fi
if grep '#KEY="b5' wireless.conf 1> /dev/null 2> /dev/null ; then
sed -i 's@#KEY="b5@KEY="b5@g' wireless.conf
fi
# Comment the rest:
if grep '#ESSID="2WIRE230"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="2WIRE230"@#ESSID="2WIRE230"@g' wireless.conf
fi
if grep '#ESSID="Any"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="Any"@#ESSID="Any"@g' wireless.conf
fi
if grep '#ESSID="synapse"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="synapse"@#ESSID="synapse"@g' wireless.conf
fi
if grep '#KEY="42' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="42@#KEY="42@g' wireless.conf
fi
if grep '#KEY="9d' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="9d@#KEY="9d@g' wireless.conf
fi
cat << EOF > /etc/resolv.conf
nameserver 192.168.2.1
search Iceberg
EOF
/etc/rc.d/init.d/inet1 restart
;;
###############################################################################
gypsy)
echo "Connecting to Gypsy Cafe Network..."
# Uncomment the particulars:
if grep '#ESSID="2WIRE230"' wireless.conf 1> /dev/null 2> /dev/null ; then
sed -i 's@#ESSID="2WIRE230"@ESSID="2WIRE230"@g' wireless.conf
fi
# Comment the rest:
if grep '#ESSID="MadPenguin"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="MadPenguin"@#ESSID="MadPenguin"@g' wireless.conf
fi
if grep '#ESSID="Any"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="Any"@#ESSID="Any"@g' wireless.conf
fi
if grep '#ESSID="synapse"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="synapse"@#ESSID="synapse"@g' wireless.conf
fi
if grep '#KEY="42' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="42@#KEY="42@g' wireless.conf
fi
if grep '#KEY="b5' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="b5@#KEY="b5@g' wireless.conf
fi
if grep '#KEY="9d' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="9d@#KEY="9d@g' wireless.conf
fi
cat << EOF > /etc/resolv.conf
nameserver 192.168.1.254
search gateway.2wire.net
EOF
/etc/rc.d/init.d/inet1 restart
;;
###############################################################################
gwen)
echo "Connecting to Gwen's Airport Network..."
# Uncomment particulars:
# Why do people put whitespace in their ESSID?
if grep '#ESSID="Any"' wireless.conf 1> /dev/null 2> /dev/null ; then
sed -i 's@#ESSID="Any"@ESSID="Any"@g' wireless.conf
fi
if grep '#KEY="42' wireless.conf 1> /dev/null 2> /dev/null ; then
sed -i 's@#KEY="42@KEY="42@g' wireless.conf
fi
# Comment the rest:
if grep '#ESSID="MadPenguin"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="MadPenguin"@#ESSID="MadPenguin"@g' wireless.conf
fi
if grep '#ESSID="2WIRE230"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="2WIRE230"@#ESSID="2WIRE230"@g' wireless.conf
fi
if grep '#ESSID="synapse"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="synapse"@#ESSID="synapse"@g' wireless.conf
fi
if grep '#KEY="b5' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="b5@#KEY="b5@g' wireless.conf
fi
if grep '#KEY="9d' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="9d@#KEY="9d@g' wireless.conf
fi
/etc/rc.d/init.d/inet1 restart
;;
###############################################################################
beth)
echo "Connecting to Beth's network..."
# Uncomment the particulars:
if grep '#ESSID="synapse"' wireless.conf 1> /dev/null 2> /dev/null ; then
sed -i 's@#ESSID="synapse"@ESSID="synapse"@g' wireless.conf
fi
if grep '#KEY="9d' wireless.conf 1> /dev/null 2> /dev/null ; then
sed -i 's@#KEY="9d@KEY="9d@g' wireless.conf
fi
# Comment the rest:
if grep '#ESSID="MadPenguin"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="MadPenguin"@#ESSID="MadPenguin"@g' wireless.conf
fi
if grep '#ESSID="2WIRE230"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="2WIRE230"@#ESSID="2WIRE230"@g' wireless.conf
fi
if grep '#ESSID="Any"' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@ESSID="Any"@#ESSID="Any"@g' wireless.conf
fi
if grep '#KEY="b5' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="b5@#KEY="b5@g' wireless.conf
fi
if grep '#KEY="42' wireless.conf 1> /dev/null 2> /dev/null ; then
true
else
sed -i 's@KEY="42@#KEY="42@g' wireless.conf
fi
cat << EOF > /etc/resolv.conf
domain Belkin
nameserver 192.168.2.1
EOF
/etc/rc.d/init.d/inet1 restart
;;
###############################################################################
ethernet)
# Set up the particulars:
sed -i '/USE_DHCP\[0\]/s/""/"yes"/g' inet1.conf
# Blank the rest:
sed -i '/USE_DHCP\[1\]/s/"yes"/""/g' inet1.conf
sed -i '/USE_DHCP\[2\]/s/"yes"/""/g' inet1.conf
sed -i '/USE_DHCP\[3\]/s/"yes"/""/g' inet1.conf
# Don't cat a reslov.conf. dhcpcd SHOULD handle that.
# We could be attempting to connect to ANY network.
/etc/rc.d/init.d/inet1 restart
# Default inet1.conf back to wireless for the next call:
sed -i '/USE_DHCP\[0\]/s/"yes"/""/g' inet1.conf
sed -i '/USE_DHCP\[1\]/s/""/"yes"/g' inet1.conf
;;
###############################################################################
scan)
iwlist scan
;;
###############################################################################
help)
echo
echo "Usage for 'network' script :"
echo
echo "help - Prints this help list"
echo "home - Connect via wireless to your home network"
echo "gypsy - Connect via wireless to the Gypsy Cafe network"
echo "gwen - Connect via wireless to Gwen's network"
echo "beth - Connect via wireless to Beth's network"
echo "ethernet - Connect via ethernet cable to any network using DHCP"
echo "scan - Scan the air for available wireless networks"
echo " Will not work if connected via ethernet"
echo
;;
###############################################################################
*)
echo
echo "Usage: network {help|home|gypsy|gwen|beth|ethernet|scan}"
echo
exit 1
;;
esac
Isn't that the most absurdly sloppy thing you've ever seen?
Hey... It works...
This is on a Powerbook so my airport card is supported under the kernel. rc.inet1.conf has support for wireless devices assigned as wlan0 if it happens to have that designation under ifconfig/iwconfig..
You can also call rc.inet1 with specific device arguements...
/etc/rc.d/rc.inet1 eth0_start