Simple Scheme Management

Here’s a simple method for managing your network schemes on Linux. You will need sudo installed and will need sudo privileges to run /sbin/cardctl.

Create the following shell script called scheme:

#!/bin/sh

SCHEME=`/usr/bin/basename $0`

if [ "$SCHEME" == "scheme" ]; then
  unset SCHEME
fi

/usr/bin/sudo /sbin/cardctl scheme $SCHEME

Install the script somewhere in your PATH (I put mine in ~/bin). Then make symlinks to the script with the names of schemes you want to access quickly, in the same directory:

rob@entropy:~/bin$ ln -s scheme home
rob@entropy:~/bin$ ln -s scheme oreilly
rob@entropy:~/bin$ ln -s scheme nocat
rob@entropy:~/bin$ ln -s scheme any

Now, make matching entries in your /etc/pcmcia/wireless.opts:

home,*,*,*)
	INFO="IBSS net at Home"
	ESSID="HomeNet"
	MODE="Ad-Hoc"
	KEY="1234-5678-90"
	RATE="11M"
	;;

oreilly,*,*,*)
	INFO="Work"
	ESSID="OReillyNet"
	MODE="Managed"
	KEY="s:sHHHH"
	IWCONFIG="power unicast"
	;;

nocat,*,*,*)
	INFO="NoCat Community net"
	ESSID="NoCat"
	MODE="Managed"
	;;

any,*,*,*)
	INFO="Default configuration"
	ESSID="ANY"
	MODE="Managed"
	;;

Now, when you want to change schemes quickly, just type home or any to instantly change all of your wireless and network settings. As an added bonus, typing scheme will show the current scheme. Keep in mind that sudo will prompt you for your password, as you will need to be root to change the scheme.

Get Building Wireless Community Networks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.