Re: Instructions for command line usage of WiFi.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Here's a script that turns WiFi on and off on my Dell laptop. (It works on my 2-hole desktop as well -- so the complexity. 'slsware' is my domain.)
# Makes sure the primary Ethernet port (ETH0) is up and
# sets a route to rrc through ETH0 (so SSH down there will by happy with the IP it gets) and
# sets DNS (/etc/resolv.conf) to the standard slsware values (in /etc/resolv.conf.sls)
#
# UP brings up the secondary Ethernet port (ETH1) by DHCP from the Frasier_Residents DHCP server,
# removes the ETH0 default route, and replaces it with an ETH1 default
#
# DOWN just puts things back as though there were no ETH1
ETH0_DEFAULT_IP="216.17.134.201"
ETH1_DEFAULT_IP="10.200.184.254"
TRUE="0"
leadingSpace=" "
function cleanUp()
{
# remove detritus
sudo rm ifconfig.all ifconfig.status route.status 2>/dev/null
# set DNS
sudo cp /etc/resolv.conf.sls /etc/resolv.conf
# say goodbye
if [ "$1" != "" ]
then
echo ; echo "${leadingSpace}$1"
fi
# show routing table
echo ; echo "${leadingSpace}route:" ; echo
sudo route
echo
}
ETH0="lo only"
ETH1=$ETH0
function getInterfaceNameStyle()
{
# get an 'ifconfig' of all interfaces
sudo ip a >ifconfig.all
egrep -q "eth.:" ifconfig.all
if [ "$?" == "$TRUE" ]
then
ETH0="eth0"
ETH1="wlan0"
return
fi
egrep -q "enp.s" ifconfig.all
if [ "$?" == "$TRUE" ]
then
ETH0="enp6s0"
ETH1="enp7s0"
return
fi
if [ "$ETH0" == "lo only" ]
then
cleanUp "$ETH0"
exit 0
fi
}
# are the interfaces in the eth<n> style?
getInterfaceNameStyle
# get current ifconfig status
ip -4 link ls up >ifconfig.status
# is ETH0 up?
egrep -q "${ETH0}:.*UP" ifconfig.status
ETH0_UP=$?
# is ETH1 up?
egrep -q "${ETH1}:.*UP" ifconfig.status
ETH1_UP=$?
# make sure ETH0 is up (it probably is, but...)
if [ "$ETH0_UP" != "$TRUE" ]
then
echo ; echo "${leadingSpace}bringing up $ETH0" ; echo
sudo ifup $ETH0
$ETH0_UP == "$TRUE"
fi
if [ "$1" == "up" ]
then
# is ETH1 already up?
if [ "${ETH1_UP}" == "$TRUE" ]
then
cleanUp "$ETH1 is already up"
exit 0
else
echo ; echo "${leadingSpace}bringing up $ETH1" ; echo
# bring up the DHCP interface
sudo ifup $ETH1
ip route >route.status
# remove the ETH0 default route
sudo ip route del default via $ETH0_DEFAULT_IP dev $ETH0
# is the wifi default not in the routing table?
egrep "default.*$ETH1" route.status
if [ "$?" != "$TRUE" ]
then
# if not, put it in
sudo ip route add default via $ETH1_DEFAULT_IP dev $ETH1
fi
# remove the ETH1 route to the LAN (there's already one for ETH0)
sudo ip route del 216.17.134.0/24 dev $ETH1
fi
elif [ "$1" == "down" ]
then
# is ETH1 already down?
if [ "$ETH1_UP" != "$TRUE" ]
then
cleanUp "$ETH1 is already down"
exit 0
else
sudo ifdown $ETH1
sudo ip route add default via $ETH0_DEFAULT_IP dev $ETH0
sudo cp /etc/resolv.conf.sls /etc/resolv.conf
fi
else
cleanUp "You forgot to say 'up' or 'down'..."
exit 0
fi
cleanUp ""
And here's a piece of /etc/network/interfaces:
# wlan0 -- Get DHCP from SSID: Frasier_Residents, PW: <password>
iface wlan0 inet dhcp
pre-up sudo ip addr flush dev wlan0
wpa-ssid Frasier_Residents
wpa-psk <password>
Hope this helps...
--
Glenn English
-----BEGIN PGP SIGNATURE-----
Version: ProtonMail
wsBzBAEBCAAGBQJfxIqdACEJEJ/XhjGCrIwyFiEELKJzD0JScCVjQA2Xn9eG
MYKsjDI02Qf8CkOUUDV1BfSUZhRNT/7Fvp8Fjqqcfy/VXTkuUDCyhBXGCqEh
gQfe+LVlq/HyZkjsDMSQl4qVzZzhETafopVi8MMwXCmcp9eVt37pLeJS+Wyh
k6/CXTqHy2or+TXW2vKtI7mWDlEqHFRlj7E1FkJJpN8WorAbuAhnX2xEGBcf
NzncvyOXsndbbqY3T1pwZFywivH9HiqAPJ4rRyjoBX7XNrv6Q170Icukq30A
y3reL1HRWmPH6JMZ7awiVWMxVe74bLQDlrYP+znwqopwQvEpYsCBP2Gd4lGv
fnUROVW6FvOvPuFEn+eK57KIgQoa/9oLdq4MbnmYEV7oebjrOQe+1w==
=Itjc
-----END PGP SIGNATURE-----
Reply to: