全志 A63 Ubuntu wifi 启动脚本

    技术2025-03-06  33

    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模式

    #! /bin/bash 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 #root@Ubuntu:/etc# cat /tmp/run/wpa_supplicant/wpa.conf #ctrl_interface=/tmp/run/wpa_supplicant #network={ # ssid="wifi_2.4G" # #psk="12345678" # psk=5be71dd0f3081300ec5866092073d81749e05dcd727d7ffc6c8d7aa01d80c17d #} 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 } ##-------MAIN---------------- echo "start wifi" Daemon echo "exit setup"

    3.2 ap模式

    #! /bin/bash IS_SETUP_SUCCESS=0 #开启eth0 获取数据 ifconfig eth0 down ifconfig eth0 up function SetupWifiHotSpot(){ #sudo apt-get install hostapd dnsmasq udhcpd 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 #cat /sys/module/bcmdhd/parameters/firmware_path echo "/etc/firmware/ap6212a/nvram_ap6212.txt" > /sys/module/bcmdhd/parameters/nvram_path #cat /sys/module/bcmdhd/parameters/nvram_path sleep 1 ifconfig wlan0 up #AP 模式 #配置udhcpc #2.4G模式 802.11g 协议 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 #5G模式 802.11g 协议 #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=zwq_test" >> /var/run/hostapd/hostapd.conf #echo "channel=149" >> /var/run/hostapd/hostapd.conf #echo "hw_mode=a" >> /var/run/hostapd/hostapd.conf #echo "ieee80211n=1" >> /var/run/hostapd/hostaapd.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" #编辑/etc/sysctl.conf改动下面这行: #net.ipv4.ip_forward=1 #4.8 配置iptables防火墙 #sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT #sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT #到这里路由的NAT功能已经被启用,我们将刚才配置的iptables保存下来以便于下次使用: #sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #共享eth0的外网 #iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE #共享wwan0的外网 #----------------- #后台执行 hostapd 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 #杀掉udhcpc killall udhcpc #配置wlan0 ip ifconfig wlan0 192.168.2.20 #开启动态分配ip(为连接改AP热点的设备分配IP) 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 } ##-------MAIN---------------- 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# ./wifi_ap_ap6212.sh

    4.4 连接热点命令

    root@Ubuntu:/etc/firmware/ap6212a# ./wifi_sta_ap6212.sh

    如不能正常上网,请查看是否修改正确。

    Processed: 0.014, SQL: 12