【轉】【Linux】OpenWRT的無線設置注意事項——從2.4G到5G


 

硬件說明:

操作系統:OpenWRT

網卡:AR9220R52Hn

網卡驅動:ath9k

 

OpenWRT在刷機完成之后,並不會自動開啟無線功能,需要手動修改配置文件,然后重啟網絡服務。管理無線功能的配置文件是:

/etc/config/wireless

內容有兩部分組成:config wifi-device和config wifi-iface。前者配置無線網卡的工作模式、信道、MAC地址、使用哪些天線(一般有1、2、3三個天線,視網卡上有幾個饋線接口而定)、是DSSS還是OFDM等信息。后者配置網卡接口信息,如接口的名稱、ESSID、密碼和加密方式,網絡連接(network配置項)等。網絡連接network這一項必須和/etc/config/network中的某個interface一致,表示無線網卡對應哪一個interface(接口)。

例如下面這個配置,包含兩個config wifi-device+config wifi-iface的配置塊,這需要有兩個網卡。(由於筆者寫博客的電腦和管理OpenWRT的電腦不是同一個,為了方便,以下內容是從別處復制而來的,並不影響敘述的正確性。)

  1. # 1
  2. config wifi-device 'radio0'
  3.         option type 'mac80211'
  4.         option hwmode '11ng'
  5.         option path 'platform/ar934x_wmac'
  6.         option htmode 'HT40+'
  7.         list ht_capab 'LDPC'
  8.         list ht_capab 'SHORT-GI-20'
  9.         list ht_capab 'SHORT-GI-40'
  10.         list ht_capab 'TX-STBC'
  11.         list ht_capab 'RX-STBC1'
  12.         list ht_capab 'DSSS_CCK-40'
  13.         option noscan '1'
  14.         option channel '7'
  15.         option txpower '27'
  16.         option country 'CN'
  17. config wifi-iface
  18.         option device 'radio0'
  19.         option network 'lan'
  20.         option mode 'ap'
  21.         option ssid 'openwrt_25g'
  22.         option encryption 'psk-mixed'
  23.         option key '11111111'
  24. #2
  25. config wifi-device 'radio1'
  26.         option type 'mac80211'
  27.         option hwmode '11na'
  28.         option path 'pci0000:00/0000:00:00.0'
  29.         list ht_capab 'LDPC'
  30.         list ht_capab 'SHORT-GI-20'
  31.         list ht_capab 'SHORT-GI-40'
  32.         list ht_capab 'TX-STBC'
  33.         list ht_capab 'RX-STBC1'
  34.         list ht_capab 'DSSS_CCK-40'
  35.         option htmode 'HT40+'
  36.         option country 'CN'
  37.         option noscan '1'
  38.         option txpower '17'
  39.         option channel '149'
  40. config wifi-iface
  41.         option device 'radio1'
  42.         option network 'lan'
  43.         option mode 'ap'
  44.         option ssid 'openwrt_5g'
  45.         option encryption 'psk-mixed'
  46.         option key '11111111'

下面主要說下個別幾個配置項,其他配置項要么不常用,要么一目了然。

1 channel:信道

    Channel的值必須是正確的,想知道網卡支持那些信道,可以用iwlist命令查看:

iwlist c (或寫全稱:iwlist channel)

    這里要注意的是,如果網卡工作在5G下,雖然根據802.11a的標准,5G下的信道從60到165之間有許多許多,而使用iwlist查詢到的網卡信息也說明網卡支持這些信道,但也許channel配置項只能寫149以上的值。因為我國的5G信道只允許使用149以上的信道。

 

2  hwmode:工作在什么標准下

    hwmode和channel是對應的,例如,如果channel是149,意味着網卡工作在5G下,那么hwmode不能寫11g,因為11g標准定義的通信頻率是不包含5G的,只有11a才可以。

    hwmode的值不能亂寫(這也是我今天才知道的)。合法的值有:11a 11b 11g 11na 11ng等。使用其他奇怪的值,也許在網卡服務啟動的時候內核不會complain,也許網絡服務開啟后,並非不能正常地部署好AP,但配置也許是錯誤的:在我的實驗中,我需要將AP配置到11n下,但由於把hwmode的值寫成了11an,結果並未如我所願,網卡其實工作在了11a標准下,此時雖然可以建立AP,可以ping通,但是11n並未啟用,不符合我的需求。

    原因可以用下面這段shell來說明。在解析配置文件的時候,是下面代碼中第8行開始的這段case代碼來解析的,從前往后依次嘗試匹配11bg、11a、11b、11g,然后是11n*(也就是11na、11ng),然后是其他(用$default作為hwmode的值)。

復制代碼
 1 wifi_fixup_hwmode() {
 2     local device="$1"
 3     local default="$2"
 4     local hwmode hwmode_11n
 5     config_get channel "$device" channel
 6     
 7     config_get hwmode "$device" hwmode
 8     case "$hwmode" in
 9         11bg) hwmode=bg;;
10         11a) hwmode=a;;
11         11b) hwmode=b;;
12         11g) hwmode=g;;
13         11n*)
14             hwmode_11n="${hwmode##11n}"
15             case "$hwmode_11n" in
16                 a|g) ;;
17                 default) hwmode_11n="$default"
18             esac
19             config_set "$device" hwmode_11n "$hwmode_11n"
20         ;;
21         *)
22             hwmode=
23             if [ "${channel:-0}" -gt 0 ]; then 
24                 if [ "${channel:-0}" -gt 14 ]; then
25                     hwmode=a
26                 else
27                     hwmode=g
28                 fi
29             else
30                 hwmode="$default"
31             fi
32         ;;
33     esac
34     config_set "$device" hwmode "$hwmode"
35 }
復制代碼

 

3  config wifi-iface中的mode

    mode是網卡的工作模式,這個和hwmode(硬件模式)不同,值的是網卡作為什么角色在通信。一般會有以下幾種角色,但網卡並不一定都支持這些角色:

   sta:用戶端,WiFi的使用者

   master:接入點(AP)

   ad-hoc:只有在這一模式下,設備可以和其他ad-hoc模式下的設備組成多跳網絡(MESH網絡),這需要一些無線ad-hoc路由協議,例如著名的batmand協議。

   monitor:只有在這一模式下,網卡可以監聽同信道上的其他設備的幀。可以獲取這些幀的地址、內容、RSSI(甚至信道狀態信息CSI,理論上可以,實際上根據我們的測試,基於Intel 5300網卡的CSI Tools並不能穩定工作在monitor模式下,這一點CSI Tools的作者Daniel也承認了)。

    網卡支持的工作模式,可以用iw list命令查詢。

 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM