UID1465246
威望0
金钱19
交易诚信度0
主题0
帖子14
注册时间2019-5-18
最后登录2020-2-7
新手上路

交易诚信度0
注册时间2019-5-18
|
/usr/local/sbin/hotplug #!/bin/sh # let /sbin/hotplug do the dirty work first /sbin/hotplug $1 #define log file. set to /dev/null if you want to suppress logging LOG=/var/log/hotplug.log # log the event echo "[`date`] hotplug SUBSYSTEM=$SUBSYSTEM, ACTION=$ACTION, PRODUCT=$PRODUCT, TYPE=$TYPE, INTERFACE=$INTERFACE, DEVPATH=$DEVPATH" >> $LOG EVENT="$SUBSYSTEM.$INTERFACE.$ACTION"; if [ "$EVENT" = "net.wlan0.add" ] ; then # start wifi monitor /usr/local/sbin/wifi_monitor $INTERFACE & elif [ "$EVENT" = "net.wlan0.linkup" ] ; then /sbin/udhcpc -i $INTERFACE -t 15 -b -q -s /etc/udhcpc.script >> $LOG 2>&1 fi /usr/local/sbin/wifi_monitor #!/bin/sh PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin WPA_CTRL_INTERFACE=/var/lock/wpa_supplicant WPA_SUPPLICANT_PID=/var/lock/wpa_supplicant.pid WPA_SUPPLICANT_CONF=/tmp/wpa_supplicant.conf WIFI_CONF=/usr/local/etc/wifi.conf if [ -z "$1" ] ; then echo "Usage: wifi_monitor <interface>" exit 1 fi IFACE=$1 PIDFILE=/var/lock/wifi_monitor.$IFACE.pid SYSFS="/sys/class/net/$IFACE" if [ -e $PIDFILE ] && grep -q wifi_monitor /proc/`cat $PIDFILE`/cmdline ; then echo "wifi_monitor: another instance is running, quiting..." exit fi read_conf() { for v in ESSID SECURITY WEP_AUTH WEP_KEYINDEX WEP_KEY WPA_PASSPHRASE ; do unset CONF_$v ; done for line in `grep -E '^ *[A-Z_]+ *= *[^ #]+' $WIFI_CONF|sed -e 's/#.*//' -e 's/ *//g'` ; do eval CONF_$line ; done } reload() { echo "wifi_monitor: reloading..." ifconfig $IFACE down iwconfig $IFACE essid off } quit() { exit; } cleanup() { [ -e $WPA_SUPPLICANT_PID ] && pkill -x wpa_supplicant rm -f $WPA_SUPPLICANT_PID rm -rf $WPA_CTRL_INTERFACE rm -f $PIDFILE } setup_wifi() { [ -n "$CONF_ESSID" ] || { echo "Error: ESSID not defined!" ; return; } # scan for AP ifconfig $IFACE up local count=0 until [ $count -ge 3 ] || iwlist $IFACE scanning|grep -q $CONF_ESSID ; do echo "AP $CONF_ESSID not found, sleeping..."; sleep 5; let 'count=count+1'; done if [ $count -lt 3 ] ; then [ "x$CONF_SECURITY" != "xWPA" ] && [ -e $WPA_SUPPLICANT_PID ] && kill `cat $WPA_SUPPLICANT_PID` case "$CONF_SECURITY" in NONE) iwconfig $IFACE key off iwconfig $IFACE essid "$CONF_ESSID" ;; WEP) [ -n "$CONF_WEP_KEY" ] || { echo "Error: WEP_KEY not defined!" ; return; } if [ -n "$CONF_WEP_KEYINDEX" ] ; then iwconfig $IFACE key $CONF_WEP_AUTH [$CONF_WEP_KEYINDEX] "$CONF_WEP_KEY" else iwconfig $IFACE key $CONF_WEP_AUTH "$CONF_WEP_KEY" fi iwconfig $IFACE essid "$CONF_ESSID" ;; WPA) [ -n "$CONF_WPA_PASSPHRASE" ] || { echo "Error: WPA_PASSPHRASE not defined!" ; return; } if [ ! -e $WPA_SUPPLICANT_PID ] || ! pgrep -x wpa_supplicant > /dev/null ; then # generate the wpa_supplicant.conf if [ "x$LAST_WPA_PASSPHRASE" != "x$CONF_ESSID.$CONF_WPA_PASSPHRASE" ] ; then WPA_PSK=`wpa_passphrase "$CONF_ESSID" "$CONF_WPA_PASSPHRASE"|grep -o 'psk=[0-9a-z]\{64\}'` LAST_WPA_PASSPHRASE="$CONF_ESSID.$CONF_WPA_PASSPHRASE" fi cat >$WPA_SUPPLICANT_CONF<<-EOF ctrl_interface=$WPA_CTRL_INTERFACE network={ ssid="$CONF_ESSID" scan_ssid=1 proto=WPA RSN key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP $WPA_PSK } EOF wpa_supplicant -B -Dwext -i$IFACE -c$WPA_SUPPLICANT_CONF -P$WPA_SUPPLICANT_PID fi ;; esac fi } trap 'reload' HUP trap 'quit' INT QUIT TERM trap 'cleanup' EXIT echo $ > $PIDFILE # wait until the kernel structure is ready. FIXME: Is this really necessary? until [ -d $SYSFS ] ; do sleep 1; done while [ -d $SYSFS ] ; do carrier=`cat $SYSFS/carrier 2>/dev/null` if [ "x$carrier" != "x1" ] ; then # reload configuration read_conf setup_wifi fi sleep 10 done /usr/local/etc/wifi.conf - WEP实例 ESSID=MYESSID # wireless security: NONE, WEP or WPA SECURITY=WEP # WEP security mode: open or restricted WEP_AUTH=restricted WEP_KEYINDEX=1 WEP_KEY="06af3154902d96506b3cbe6bae" /usr/local/etc/wifi.conf - WPA实例 ESSID=MYESSID # wireless security: NONE, WEP or WPA SECURITY=WPA WPA_PASSPHRASE="testtest" |
|