1. 平台
全志A63 Ubuntu内核 linux 3.10wifi ap6212a1 ( ap6212@a0 : 该版本是ap6212旧版本,第二行丝印是8位数 ; ap6212@a1 : 该版本是ap6212新版本,第二行丝印是9位数,并且最后一位数字是1 ; ap6212@43436B0 : 该版本是ap6212最新版本,第二行丝印是9位数,并且最后一位数字是2 )
2. 文件
bcm_btlpm
.ko
bcm43438a1
.hcd
bcmdhd
.ko
config
.txt
fw_bcm43438a1
.bin
fw_bcm43438a1_apsta
.bin
fw_bcm43438a1_p2p
.bin
hostapd
.conf
interfaces
nvram_ap6212
.txt
udhcpd
.conf
wifi_ap_ap6212
.sh
wifi_sta_ap6212
.sh
3. wifi 脚本
3.1 sta模式
echo "start wifi"
IS_SETUP_SUCCESS=0
function SetupWifiStation
(){
RESULT=`lsmod
| grep bcmdhd`
if [ -z
"$RESULT" ]
then
echo "no bcmdhd"
else
echo "need to rmmod bcmdhd"
rmmod bcmdhd
fi
insmod
/etc
/firmware
/ap6212a
/bcmdhd
.ko
echo 1 >
/sys
/devices
/soc
/wlan
/power_state
echo "/etc/firmware/ap6212a/fw_bcm43438a1.bin" >
/sys
/module
/bcmdhd
/parameters
/firmware_path
echo "/etc/firmware/ap6212a/nvram_ap6212.txt" >
/sys
/module
/bcmdhd
/parameters
/nvram_path
ifconfig wlan0 up
mkdir
-p
/tmp
/run
/wpa_supplicant
/wpa_supplicant
echo 'ctrl_interface=/tmp/run/wpa_supplicant' >
/tmp
/run
/wpa_supplicant
/wpa
.conf
wpa_passphrase
"wifi_2.4G" "12345678" >>
/tmp
/run
/wpa_supplicant
/wpa
.conf
killall wpa_supplicant
sleep 2
wpa_supplicant
-d
-Dnl80211
-c
/tmp
/run
/wpa_supplicant
/wpa
.conf
-iwlan0
-B
sleep 10
udhcpc
-iwlan0
-A10
-n
RESULT=`curl www
.baidu
.com`
if [ -z
"$RESULT" ]
then
echo "need to try again"
IS_SETUP_SUCCESS=0
else
echo "wifi set up station"
IS_SETUP_SUCCESS=1
fi
}
function Daemon
(){
SetupWifiStation
while true
do
if [ $
{IS_SETUP_SUCCESS
} -ne 1
]
then
echo "---------need to try again"
sleep 2
SetupWifiStation
else
echo "setup wifi successfully"
break
fi
done
}
echo "start wifi"
Daemon
echo "exit setup"
3.2 ap模式
IS_SETUP_SUCCESS=0
ifconfig eth0 down
ifconfig eth0 up
function SetupWifiHotSpot
(){
RESULT=`lsmod
| grep bcmdhd`
if [ -z
"$RESULT" ]
then
echo "no bcmdhd"
else
echo "need to rmmod bcmdhd"
rmmod bcmdhd
fi
insmod
/etc
/firmware
/ap6212a
/bcmdhd
.ko
echo 1 >
/sys
/devices
/soc
/wlan
/power_state
echo "/etc/firmware/ap6212a/fw_bcm43438a1_apsta.bin" >
/sys
/module
/bcmdhd
/parameters
/firmware_path
echo "/etc/firmware/ap6212a/nvram_ap6212.txt" >
/sys
/module
/bcmdhd
/parameters
/nvram_path
sleep 1
ifconfig wlan0 up
mkdir
-p
/var/run
/hostapd
/
echo "interface=wlan0" >
/var/run
/hostapd
/hostapd
.conf
echo "driver=nl80211" >>
/var/run
/hostapd
/hostapd
.conf
echo "ctrl_interface=/var/run/hostapd" >>
/var/run
/hostapd
/hostapd
.conf
echo "ssid=111_test" >>
/var/run
/hostapd
/hostapd
.conf
echo "channel=6" >>
/var/run
/hostapd
/hostapd
.conf
echo "hw_mode=g" >>
/var/run
/hostapd
/hostapd
.conf
echo "ieee80211n=1" >>
/var/run
/hostapd
/hostapd
.conf
echo "ignore_broadcast_ssid=0" >>
/var/run
/hostapd
/hostapd
.conf
echo "wpa=2" >>
/var/run
/hostapd
/hostapd
.conf
echo "rsn_pairwise=CCMP" >>
/var/run
/hostapd
/hostapd
.conf
echo "wpa_passphrase=12345678" >>
/var/run
/hostapd
/hostapd
.conf
killall wpa_supplicant
killall hostapd
sleep 2
sudo sh
-c
"echo 1 > /proc/sys/net/ipv4/ip_forward"
iptables
-P INPUT ACCEPT
iptables
-P FORWARD ACCEPT
iptables
-t nat
-A POSTROUTING
-o eth0
-j MASQUERADE
RESULT=`hostapd
-B
/var/run
/hostapd
/hostapd
.conf
| grep AP
-ENABLED`
if [ -z
"$RESULT" ]
then
echo "need to try again"
IS_SETUP_SUCCESS=0
else
echo "wifi set up hotspot"
IS_SETUP_SUCCESS=1
fi
sleep 6
killall udhcpc
ifconfig wlan0 192
.168
.2
.20
udhcpd
/etc
/udhcpd
.conf
}
function Daemon
(){
SetupWifiHotSpot
while true
do
if [ $
{IS_SETUP_SUCCESS
} -ne 1
]
then
echo "---------need to try again"
sleep 2
SetupWifiHotSpot
else
echo "setup wifi successfully"
break
fi
done
}
echo "start wifi"
Daemon
echo "exit setup"
4. 使用
其中 wifi_sta_ap6212.sh 用于连接热点;wifi_ap_ap6212.sh 用于开启热点。
4.1 接入热点
如需接入一个新热点,修改脚本wifi_sta_ap6212.sh,找到wpa_passphrase “wifi_2.4G” “12345678” >> /tmp/run/wpa_supplicant/wpa.conf 部分,修改对应的名称和密码。
如名称为111 ,密码为12345678,则修改为 wpa_passphrase “111” “12345678” >> /tmp/run/wpa_supplicant/wpa.conf
4.2 开启热点
如需开启一个新热点,需要修改脚本wifi_ap_ap6212.sh,找到 echo “ssid=111_test” >> /var/run/hostapd/hostapd.conf echo “wpa_passphrase=12345678” >> /var/run/hostapd/hostapd.conf 部分,修改对应的名称和密码。 如名称为111,密码为12345678,则修改为 echo "ssid=111 " >> /var/run/hostapd/hostapd.conf echo “wpa_passphrase=12345678” >> /var/run/hostapd/hostapd.conf
4.3 开启热点命令
root@Ubuntu:
/etc
/firmware
/ap6212a
4.4 连接热点命令
root@Ubuntu:
/etc
/firmware
/ap6212a
如不能正常上网,请查看是否修改正确。