from:http://blog.csdn.net/sparksalmon/article/details/8445287

最近一直在开发机顶盒上的无线功能,把这一段的经验记录下来,以后还有需要的时候。

硬件、驱动和系统

  • USB无线网卡:ralink3070
  • 驱动:ralink3070的驱动源代码
  • 操作系统:linux

内核模块和工具

  • 内核模块:源码编译的内核模块rt5370sta.ko
  • 工具:iwconfig,iwpriv,iwlist

使用时首先加载内核模块

insmod /root/modules/rt5370sta.ko

激活无线网卡(会加载无线的默认配置文件 /etc/Wireless/RT2870STA/RT2870STA.dat,相关设置可参考资料1)

ifconfig ra0 up

无线扫描结果与无线设置

无线热点扫描

iwlist ra0 scan

无线热点信息查看与设置

iwpriv ra0 set

iwpriv ra0 show

查看无线连接状态

iwpriv ra0 connStatus

使用iwpriv设置好无线参数,如果能连接上无线,使用iwconfig就能看到刚才所连接无线的essid。

下面主要说明一下无线扫描结果与无线连接设置之间的关系

1. 认证方式:开放或者共享,密码:无

Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=94/100  Signal level=-53 dBm  Noise level=-92 dBm
Encryption key: off
Bit Rates:54 Mb/s
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WEPAUTO
iwpriv ra0 set EncrypType=NONE
iwpriv ra0 set SSID="wlan_test"

2. 认证方式:开放或者共享,密码:有,加密方式:WEP

Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=94/100  Signal level=-53 dBm  Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WEPAUTO
iwpriv ra0 set EncrypType=WEP
iwpriv ra0 set SSID="wlan_test"

3. 认证方式:WPAPSK,加密方式:TKIP

Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100  Signal level=-17 dBm  Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPAPSK
iwpriv ra0 set EncrypType=TKIP
iwpriv ra0 set SSID="wlan_test"
iwpriv ra0 set WPAPSK="12345678"

4. 认证方式:WPAPSK,加密方式:AES

Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100  Signal level=-15 dBm  Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPAPSK
iwpriv ra0 set EncrypType=AES
iwpriv ra0 set SSID="wlan_test"
iwpriv ra0 set WPAPSK="12345678"

5. 认证方式:WPA2PSK,加密方式:TKIP

Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100  Signal level=-17 dBm  Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK
Preauthentication Supported
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPA2PSK
iwpriv ra0 set EncrypType=TKIP
iwpriv ra0 set SSID="wlan_test"
iwpriv ra0 set WPAPSK="12345678"

6. 认证方式:WPA2PSK,加密方式:AES

Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100  Signal level=-17 dBm  Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Preauthentication Supported
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPA2PSK
iwpriv ra0 set EncrypType=AES
iwpriv ra0 set SSID="wlan_test"
iwpriv ra0 set WPAPSK="12345678"

7. 认证方式:自动(WPAPSK/WPA2PSK),加密方式:自动(AES或TKIP)

Cell 04 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100  Signal level=-47 dBm  Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
Preauthentication Supported
从扫描结果可以看到,所谓自动模式,即包含所有的认证方式或者加密方式。
故在上面的扫描结果下,使用3,4,5,6中的任何iwpriv设置都可以连接到无线。

注意事项

1. 无线热点之间切换的问题
如果已经连接上一个无线热点,切换到另一个时,直接通过iwpriv设置,新无线不会生效。
我通过调用iwconfig ra0 essid off解决了这个问题,不知道是否合适,有待进一步的查找资料和验证。

2. 路由的问题
开机设置了有线连接的默认路由,当无线连接后,也设置了一个默认路由
两个默认的路由网段一样时,会导致不插网线,但连上无线时,ping不通无线路由器。
删除之前的默认路由,或者关闭eth0能解决问题,但还是要注意无线网卡和有线网卡共同工作时可能会出现问题。

参考资料

1. https://wiki.archlinux.org/index.php/Rt2870

嵌入式linux无线网卡的使用的更多相关文章

  1. 嵌入式Linux利用Wifi搭建无线服务器(物联网实践之无线网关)

    在 http://www.cnblogs.com/heat-man/p/4564539.html中,在嵌入式Linux开发板上我们从最底层实现了一个智能家居的远程控制系统,然而采取的是用网线连接到交换 ...

  2. 嵌入式Linux学习方法——给那些彷徨者(上)

    要想学好嵌入式Linux,首先要解决两个重要问题: 1. 学什么? 2. 怎么学? 首先解决第一个问题. 嵌入式Linux的系统架构包括软件和硬件两个部分,如下图: 再来看看一个成熟的嵌入式产品的开发 ...

  3. 为什么要有uboot?带你全面分析嵌入式linux系统启动过程中uboot的作用

    1.为什么要有uboot 1.1.计算机系统的主要部件 (1)计算机系统就是以CPU为核心来运行的系统.典型的计算机系统有:PC机(台式机+笔记本).嵌入式设备(手机.平板电脑.游戏机).单片机(家用 ...

  4. 嵌入式 Linux下永久生效环境变量bashrc

    嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到 ...

  5. 制作自己的嵌入式Linux电脑_转

    制作自己的嵌入式Linux电脑 http://os.51cto.com/art/201409/450334.htm 原文链接:http://blog.jobbole.com/75414/ 包含器件选择 ...

  6. 用Windows+VirtualBox搭建嵌入式Linux开发环境

    Windows+VirtualBox的嵌入式Linux开发环境的搭建 最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用 ...

  7. 嵌入式Linux的调试技术

    本节我们研究嵌入式Linux的调试技术,对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试.刚开始讲了打印内核调试信息:printk,这个函数的用法与printf函数类似,只不过p ...

  8. 嵌入式linux应用程序移植方法总结

    嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...

  9. 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识

    驱动开发读书笔记. 0.06  嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...

随机推荐

  1. ldconfig及 LD_LIBRARY_PATH

    dconfig及 LD_LIBRARY_PATH 1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library ...

  2. eclipse调试的基本意义

    step into就是单步执行,遇到子函数就进入并且继续单步执行: step over是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为 ...

  3. android优化(json工具,message新建/传递,avtivity深入学习视频)

    1,在线json校验工具:www.bejson.com 2, 在handler中经常使用的 message的传递上,message.what使用静态量 . private static final i ...

  4. orczhou----MYSQL

    https://yq.aliyun.com/users/1597777588650149?spm=5176.blog11192.yqblogcon1.2.5mdGQb

  5. 【转】cocos2d-x获取系统时间——2013-08-25 10

    欢迎转载,本帖地址:http://blog.csdn.net/jinjian2009/article/details/9449585 之前使用过cocos2d-x获取系统时间,毫秒级的 long ge ...

  6. ZBLibrary不能运行的解决方法

    ADT运行   右键ZBLibrary Demo > Run as > Android Application 可能出现部分错误,解决方案如下: 右键Project(这里为ZBLibrar ...

  7. 快速安装VIM开发环境

    *Mac上当前用户的.vim目录打包*:附件地址:http://pan.baidu.com/s/1sj5FjZJ 1. 备份好系统的原来的vim配置文件,以备恢复使用:         mv ~/.v ...

  8. day-4

    /* 早上黑板上的倒计时变成了120小时 嗯 很快就要结束了 上午考试 据老师说很简单 老师 :"我就说说~"..... 下午改题 T3好辣脑子 感觉智商不够了 T2dp写丑了 然 ...

  9. .net+easyui系列--Pagination 分页

    使用 JS 创建分页 <div id="pat" style="background:#efefef;border:1px solid #ccc;"> ...

  10. 数据搬运工DSS~介绍

    DSS介绍 DSS是为了实现异地数据同步而开发的一套.net平台的应用程序,它寄宿到windows服务上,由多个客户端和一个服务端组成,其中客户端用来收集数据(数据源端),服务端用来将数据写入指定数据 ...