设为首页 收藏本站
查看: 7985|回复: 0

[经验分享] 【Linux】OpenWRT的无线设置注意事项——从2.4G到5G,hwmode不简单

[复制链接]

尚未签到

发表于 2015-10-27 09:10:26 | 显示全部楼层 |阅读模式
  硬件说明:
  操作系统: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
  • config wifi-device 'radio0'
  •         option type 'mac80211'
  •         option hwmode '11ng'
  •         option path 'platform/ar934x_wmac'
  •         option htmode 'HT40+'
  •         list ht_capab 'LDPC'
  •         list ht_capab 'SHORT-GI-20'
  •         list ht_capab 'SHORT-GI-40'
  •         list ht_capab 'TX-STBC'
  •         list ht_capab 'RX-STBC1'
  •         list ht_capab 'DSSS_CCK-40'
  •         option noscan '1'
  •         option channel '7'
  •         option txpower '27'
  •         option country 'CN'


  • config wifi-iface
  •         option device 'radio0'
  •         option network 'lan'
  •         option mode 'ap'
  •         option ssid 'openwrt_25g'
  •         option encryption 'psk-mixed'
  •         option key '11111111'


  • #2
  • config wifi-device 'radio1'
  •         option type 'mac80211'
  •         option hwmode '11na'
  •         option path 'pci0000:00/0000:00:00.0'
  •         list ht_capab 'LDPC'
  •         list ht_capab 'SHORT-GI-20'
  •         list ht_capab 'SHORT-GI-40'
  •         list ht_capab 'TX-STBC'
  •         list ht_capab 'RX-STBC1'
  •         list ht_capab 'DSSS_CCK-40'
  •         option htmode 'HT40+'
  •         option country 'CN'
  •         option noscan '1'
  •         option txpower '17'
  •         option channel '149'


  • config wifi-iface
  •         option device 'radio1'
  •         option network 'lan'
  •         option mode 'ap'
  •         option ssid 'openwrt_5g'
  •         option encryption 'psk-mixed'
  •         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命令查询。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-131234-1-1.html 上篇帖子: 【源】从零自学Hadoop(03):Linux准备上 下篇帖子: Linux系统crond定时任务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表