#!/bin/sh #FILE: /sbin/eee-wifi-on-off.sh # main wifi toggle script (loads/unloads modules) . /usr/share/acpi-support/key-constants # The sequence here *may* be important. # (It seems to fail intermittently if you deviate.) unload_modules() { rmmod wlan_scan_sta rmmod wlan_tkip rmmod wlan_wep rmmod wlan_ccmp rmmod wlan_acl rmmod ath_pci sleep 1 rmmod ath_rate_atheros rmmod ath_hal rmmod wlan rmmod ath_dfs } # At least this one's straightforward. load_modules() { modprobe ath_pci } wifi_on() { # Force PCI Express Hotplug to reinit rmmod pciehp sleep 1 # pciehp_force may be unnecessary; Xandros did it. modprobe pciehp pciehp_force=1 sleep 1 # Switch on the hardware echo 1 >/proc/acpi/asus/wlan sleep 1 load_modules } wifi_off() { unload_modules echo 0 >/proc/acpi/asus/wlan } case $1 in on) acpi_fakekey $KEY_PROG1 wifi_on ;; off) acpi_fakekey $KEY_PROG2 wifi_off ;; toggle) STAT=`cat /proc/acpi/asus/wlan` if [ "$STAT" = "1" ]; then wifi_off; else wifi_on; fi ;; esac