OpenWRT

OpenWRT默认开启WiFi

2021-03-29  本文已影响0人  炎鸿

1.目标源文件openwrt/package/kernel/mac80211/files/lib/wifi/mac80211.sh

2.修改

detect_mac80211() {
        devidx=0
        config_load wireless
        while :; do
                config_get type "radio$devidx" type
                [ -n "$type" ] || break
                devidx=$(($devidx + 1))
        done

        for _dev in /sys/class/ieee80211/*; do
                [ -e "$_dev" ] || continue

                dev="${_dev##*/}"

                found=0
                config_foreach check_mac80211_device wifi-device
                [ "$found" -gt 0 ] && continue

                mode_band="g"
                channel="11"
                htmode=""
                ht_capab=""

                iw phy "$dev" info | grep -q 'Capabilities:' && htmode=HT20

                iw phy "$dev" info | grep -q '\* 5... MHz \[' && {
                        mode_band="a"
                        channel=$(iw phy "$dev" info | grep '\* 5... MHz \[' | grep '(disabled)' -v -m 1 | sed 's/[^[]*\[\|\].*//g')
                        iw phy "$dev" info | grep -q 'VHT Capabilities' && htmode="VHT80"
                }

                iw phy "$dev" info | grep -q '\* 5.... MHz \[' && {
                        mode_band="ad"
                        channel=$(iw phy "$dev" info | grep '\* 5.... MHz \[' | grep '(disabled)' -v -m 1 | sed 's/[^[]*\[\|\|\].*//g')
                        iw phy "$dev" info | grep -q 'Capabilities:' && htmode="HT20"
                }

                [ -n "$htmode" ] && ht_capab="set wireless.radio${devidx}.htmode=$htmode"

                path="$(mac80211_phy_to_path "$dev")"
                if [ -n "$path" ]; then
                        dev_id="set wireless.radio${devidx}.path='$path'"
                else
                        dev_id="set wireless.radio${devidx}.macaddr=$(cat /sys/class/ieee80211/${dev}/macaddress)"
                fi

                uci -q batch <<-EOF
                        set wireless.radio${devidx}=wifi-device
                        set wireless.radio${devidx}.type=mac80211
                        set wireless.radio${devidx}.channel=${channel}
                        set wireless.radio${devidx}.hwmode=11${mode_band}
                        ${dev_id}
                        ${ht_capab}
                        set wireless.radio${devidx}.disabled=0

                        set wireless.default_radio${devidx}=wifi-iface
                        set wireless.default_radio${devidx}.device=radio${devidx}
                        set wireless.default_radio${devidx}.network=lan
                        set wireless.default_radio${devidx}.mode=ap
                        set wireless.default_radio${devidx}.ssid=OpenWrt
                        set wireless.default_radio${devidx}.encryption=psk-mixed+ccmp
                        set wireless.default_radio${devidx}.password=12345678
EOF
                uci -q commit wireless
                devidx=$(($devidx + 1))
        done
上一篇 下一篇

猜你喜欢

热点阅读