#!/bin/bash TESTIP="192.168.1.1" # AP IP is reasonably choice if [ "$1" = "-h" ]; then echo "-r only remove modules" echo "-w watchdog mode" exit 0 fi while [ 1 -eq 1 ]; do ITERATOR=0 lsmod | grep r8180 > /dev/null while [ $ITERATOR -le 3 -a $? -eq 0 ]; do iwconfig wlan0 rate 5.5M iwconfig wlan0 rate 1M iwconfig wlan0 rate 2M iwconfig wlan0 rate 11M iwconfig wlan0 ap off iwpriv wlan0 resetstats 1 ITERATOR=$((ITERATOR+1)) done UNLOAD_MODULES="r8180 ieee80211_rtl ieee80211_crypt_tkip_rtl ieee80211_crypt_wep_rtl ieee80211_crypt_ccmp_rtl ieee80211_crypt_rtl" for MODULE in ${UNLOAD_MODULES}; do lsmod | grep ${MODULE} > /dev/null && rmmod ${MODULE} done if [ "$1" = "-r" ]; then exit 0 fi sleep 0.5s modprobe -v r8180 sleep 0.5s iwconfig wlan0 rate 11M fixed sudo iwconfig wlan0 ap auto iwconfig wlan0 rate auto if [ "$1" != "-w" ]; then exit 0 fi while [ 1 -eq 1 ]; do sleep 5m; ping -c 6 ${TESTIP} if [ $? -ne 0 ]; then break; fi done done