Using shell scripts to convert WiFi mode (STA and soft APs) on Linux Systems

Source: Internet
Author: User



Reprint Please specify source: http://blog.csdn.net/hellomxj1/



Function: Realize the conversion of WiFi STA and AP function on Linux system



Achieve results: 1, add wifi password account Add_wifi_account;



2, wifi two mode to start the script Wifi_start;



3, help information readme_wifi_start;






The specific implementation process is as follows:



Add WiFi Password account add_wifi_account




  1 #!/bin/sh                                                                                                                                
  2 
  3 echo "Add Wifi Account ..."
  4 
  5 if [ ! -e /usr/firmware/wifi/wpa_supplicant.conf]
  6 then
  7     echo "There is not wpa_supplicant.conf!!!"
  8     exit
  9 fi
 10     echo network={ >>/etc/wifi/wpa_supplicant.conf
 11     echo ssid=\"$1\" >>/etc/wifi/wpa_supplicant.conf
 12     echo psk=\"$2\" >>/etc/wifi/wpa_supplicant.conf
 13     echo key_mgmt=$3 >>/etc/wifi/wpa_supplicant.conf
 14     echo } >>/etc/wifi/wpa_supplicant.conf
 15 
 16 
 17     echo "ssid=\"$1\""
 18     echo "psk=\"$2\""
 19     echo "key_mgmt=$3"
 20 
 21 
 22 echo "Finshed!"
~                    





This section is mainly implemented to add the account and password to the WPA configuration file, so that the use of STA mode can be automatically connected to the network, if there is more than one account information in the configuration file, will be connected from the next, if one succeeds, will not go down.





WiFi Two mode-initiated script Wifi_start






1 #!/bin/sh
  2 
  3 echo "Start wifi ..."
  4 
  5 if [ ! -e /var/run/wpa_supplicant]
  6 then
  7 mkdir -p /var/run/wpa_supplicant
  8 fi
  9 
 10 busybox ifconfig wlan0 up
 11 
 12 ps -fe|grep wpa_supplicant |grep -v grep
 13 
 14 if [ $? -ne 0 ]
 15 then
 16 wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wifi/wpa_supplicant.conf&
 17 fi
 18 
 19 echo "######$1"
 20 
 21 if [ "$1" = "ap" ]
 22 then
 23 
 24     echo "Start wifi AP..."
 25 
 26     if [ ! $# == 2 ]
 27     then
 28         echo "Please input : start-wifi ap 192.168.1.xx(1-19)"
 29         exit
 30     fi
 31 
 32     if [ ! -e /var/lib/misc ]
 33     then
 34     mkdir -p /var/lib/misc
 35     fi
 36 
 37     if [ ! -e /var/lib/misc/udhcpd.leases ]
 38     then
 39     touch /var/lib/misc/udhcpd.leases
 40     fi                                                                                                                                   
 41 
 42     ifconfig wlan0 down
 43 
 44     result=`cat /sys/module/bcmdhd/parameters/firmware_path`
 45 
 46     if [ "$result" != "/usr/firmware/wifi/fw_43341_apsta.bin" ]
 47     then
 48     echo "/usr/firmware/wifi/fw_43341_apsta.bin">/sys/module/bcmdhd/parameters/firmware_path
 49     fi
 50 
 51     ifconfig wlan0 $2 up                                                                                                                 
 52 
 53     echo "Start hostapd ..."
 54 
 55     ps -fe|grep hostapd |grep -v grep
 56 
 57     if [ $? -eq 0 ]
 58     then
 59         ps -ef | grep hostapd | grep -v grep | awk '{print $1}' | sed -e "s/^/kill -9 /g" | sh -
 60     fi
 61 
 62     hostapd /etc/wifi/hostapd.conf&
 63 
 64     echo "Start udhcpd ..."
 65 
 66     ps -fe|grep udhcpd |grep -v grep
 67 
 68     if [ $? -eq 0 ]
 69     then
 70         ps -ef | grep udhcpd | grep -v grep | awk '{print $1}' | sed -e "s/^/kill -9 /g" | sh -
 71     fi
 72 
 73     udhcpd -fS /etc/udhcpd.conf&
 74 
 75     echo "Wifi AP finshed!"
 76 
 77 elif [ "$1" = "sta" ]
 78 then
 79     ifconfig wlan0 down
 80 
 81     result=`cat /sys/module/bcmdhd/parameters/firmware_path`
 82 
 83     if [ "$result" != "/usr/firmware/wifi/fw_43341.bin" ]
 84     then
 85     echo "/usr/firmware/wifi/fw_43341.bin">/sys/module/bcmdhd/parameters/firmware_path
 86     fi
 87 
 88     ifconfig wlan0 up
 89 
 90     udhcpc -i wlan0
 91 
 92 else
 93 
 94     echo "Error!! Please input again!"
 95 
 96 fi




Here are mainly divided into two modules, one is the STA mode to start the direct input./wifi_start STA; can be started, and the other is input directly to soft AP mode:./wifi_start ap 192.168.2.10, enter soft AP mode, Considering the continuous conversion of the two modes of the problem, I will be in the implementation of the process to check, the previous open process to close, while the opening to normal operation;






Help Information Readme_wifi_start







 1 <1>Introduction                                                                                                                          
  2 
  3     This document describes how to start wifi,and introduces the function and use methods of add-wifi-account and wifi-start;And add-        wifi-account and wifi-start in the "/etc/init.d" directory.
  4 
  5 <2>How to operate
  6 
  7 First,Add the available WiFi account
  8 
  9     #/etc/init.d/add-wifi-account "JZ_Guest" "#wwwingenic*" "WPA-PSK"
 10 
 11     Notes: "JZ_Guest" is the ssid of the network that you want to connect;
 12            "#wwwingenic* is the password of the network;
 13            " WPA-PSK"  is the encryption method of the network;
 14 
 15 Second,Start wifi
 16 
 17     /*Start wifi with STA model*/
 18 
 19     #/etc/init.d/wifi-start sta
 20 
 21     /*Start wifi with AP model*/
 22 
 23     #/etc/init.d/wifi-start ap 192.168.1.10
 24 
 25     Notes: 192.168.1.10 is ip of newton,you can use ip address from 192.168.1.1 <----> 192.168.1.19


Here is mainly the use of my script instructions, easy to use;









Time is relatively tight, the implementation of the function may have problems, I hope to give you a lot of advice.






Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.