#!/bin/sh

loadwlan()
{
    DRIVER=$1

    echo "" && echo -n "Loading WLAN modules..."

    case "$DRIVER" in
	kernel)
	    modprobe zd1211rw
	    ;;
	*)
	    echo "wrong parameter!"
	    ;;
    esac
}

loadfwfile()
{
    FWFILE=$1
    echo 1 > /sys/class/firmware/1-1/loading
    cat /lib/firmware/zd1211/$FWFILE > /sys/class/firmware/1-1/data
    echo 0 > /sys/class/firmware/1-1/loading
}

loadfw()
{
    echo "" && echo "Loading firmware..."
    loadfwfile zd1211b_ub
    usleep 10000
    loadfwfile zd1211b_uphr
}

etherup()
{
    IFACE=$1
    echo "" && echo "Bringing up ethernet..."
    ifup -i /etc/network/interfaces.wlan $IFACE
}

wlansetup()
{
    SETUP=$1
    IFACE=$2

    echo "" && echo "Setting up wireless interface ..."

    case "$SETUP" in
	iwconfig)
	    iwconfig $IFACE enc 43353342353238363245373935
	    iwconfig $IFACE essid synertronixx
	    ;;
    esac
}

###############################################################################

setup_kernel()
{
    WLANSETUP=$1
    IFACE=$2
    loadwlan kernel &
    sleep 2
    loadfw
    usleep 800000
    etherup $IFACE
    wlansetup $WLANSETUP $IFACE
}

###############################################################################

setup()
{
    IFACE="eth1" # or wlan0 (depends on driver and stick)

    echo "" && echo -n "Starting WLAN setup..."

    setup_kernel iwconfig $IFACE
}

###############################################################################

setup
exit 0
