Use shell scripts to convert the wifi mode (STA and soft AP) in linux, wifista

Source: Internet
Author: User

Use shell scripts to convert the wifi mode (STA and soft AP) in linux, wifista

Reprinted please indicate the source: http://blog.csdn.net/hellomxj1/

Function: converts the Wi-Fi STA and AP functions in linux.

Implementation results: 1. Add the wifi password account add_wifi_account;

2. The script wifi_start started in wifi mode;

3. README_WIFI_START;


The specific implementation process is as follows:

Add a wi-fi 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 used to add accounts and passwords to the wpa configuration file, so that you can use the sta mode to enable automatic network connection. If the configuration file contains multiple account information, connections are established sequentially. If one of them is successful, it will not be executed.


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

 

There are mainly two modules. One is the direct input of the sta mode startup. /wifi_start sta; to start the instance. For the other instance, enter :. /wifi_start ap 192.168.2.10; you can enter the soft AP mode. Considering the constant conversion of the two modes, I will check the process in the early stage of execution and close the previously enabled process, when this feature is enabled, it can run normally;


Help 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 the usage instructions of my scripts for ease of use;



The time is tight, and the implementation of the function may be faulty. I hope to give you more suggestions.



How to edit files using shell scripts in linux

1. sed '6d 'yourfile>/tmp/yourfile. tmp & mv-f/tmp/yourfile. tmp yourfile
2. sed '3g 'yourfile
3. sed-n '8s/^ .. \ (... \). */\ 1/P' yourfile

TIPS: How can I import the shell script to a customized linux system and run it to save input?

It seems that a samba, vsftpd, or nfs service needs to be started to be shared. Otherwise, the scp remote copy is used. However, the IP address must be set in advance so that the virtual machine and the real machine can copy the IP address in the same network segment and then directly run the shell script. add the script name to sh in the current directory. If not, check the permission and change the shell script permission.

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.