Author Topic: Wifi Profiles Stopgap Solution  (Read 1614 times)

Zal42

  • Newbie
  • *
  • Posts: 15
    • View Profile
Wifi Profiles Stopgap Solution
« on: December 20, 2005, 03:05:59 am »
Since I can't do without connection profiles for my wifi networking, I came up with a stopgap solution for use while waiting until Opie's Network app does the right thing. Perhaps other people will find it useful too. Here it is.

I'm running OZ3.5.4-RC1 on tosa, but this should work regardless of the platform. It uses opie-sh to provide the GUI, so if you haven't installed it (and why haven't you? It's an excellent tool to slap quickie GUIs onto your shell scripts), then do an "ipkg install opie-sh" before you start.

Step One

Create a file in /opt/QtPalmtop/bin named "wlanchooser.sh", and make it executable:

touch /opt/QtPalmtop/bin/wlanchooser.sh
chmod +x /opt/QtPalmtop/bin/wlanchooser.sh


Edit the file and paste in this script:

Code: [Select]
#!/bin/sh

OPIE_SH=$OPIEDIR/bin/opie-sh
OURNAME="WLAN Chooser"
NETDIR="/etc/network"
DBASEDIR="${NETDIR}/wlanlib"


# ---- Code begins

WLANLIST=`ls -1 $DBASEDIR`
wlanstat=`ifconfig wlan0 2> /dev/null`
  
if [ "x$wlanstat" = "x" ]; then
   command=`echo "$WLANLIST" | $OPIE_SH -g -i -t "Activate which profile?" -l 2>/dev/null`
  
   if [ "x$command" != "x" ]; then
      cp $DBASEDIR/$command $NETDIR/interfaces
      ifup wlan0 | $OPIE_SH -t "${OURNAME} Results" -f
   fi
else
   $OPIE_SH -m -t "$OURNAME" -M "Shall I disconnect the WLAN?" -g
   command=$?
  
   if [ "$command" = "0" ]; then
      ifdown wlan0
   fi
fi

rm -f /tmp/qcop-msg-wlanchooser.sh

Step Two

Create a file in /opt/QtPalmtop/apps/Opie-SH/ named "wlanchooser.desktop":

touch /opt/QtPalmtop/apps/Opie-SH/wlanchooser.desktop

Edit the file and paste this in:

Code: [Select]
[Desktop Entry]
Exec=wlanchooser.sh
Icon=opie-sh/opie-sh
Type=Application
Name=WLAN Chooser
Comment=Choose between wlan configurations

Step Three

Make a new subdirectory:

mkdir /etc/network/wlanlib

Step Four

Copy your existing interface script to the directory, with a new name, such as:

cp /etc/network/interfaces /etc/network/wlanlib/Roaming


That's about it. When you run the chooser, you'll get a list of all the files in /etc/network/wlanlib/ and when you pick one, it will get copied over the top of /etc/network/interfaces. So, create a whole new interfaces file for each different "profile" you want, and save it to /etc/network/wlanlib/ with some descriptive name.

If you run the Chooser when your wlan0 interface is active, you'll get a confirmation box. Confirm and the wlan0 interface will be brought down. (Cancel by tapping on the little 'x'. I really should add a proper button, I guess.)


It's crude, but it works well enough for me. I have three files in wlanlib, named "Roaming", "Home", and "Office".
« Last Edit: December 20, 2005, 03:59:09 am by Zal42 »