RT3070 STA模式——开发板实现上网功能
来源:互联网 发布:mac桌面上快捷图标删除 编辑:程序博客网 时间:2024/05/16 19:50
北方有佳人,遗世而独立。
北方有佳人,绝世而独立。
一顾倾人城,再顾倾人国。
宁不知倾城与倾国?
佳人难再得!
交叉编译器环境:arm-linux-gcc-4.5.4 (可通过命令/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc -v查询)
开发板平台: fl2440
rt3070中文名称为雷凌3070,是台湾雷凌(Ralink)科技有限公司生产的一款专用于usb无线网卡的处理芯片。是一种低功耗高度集成的MAC / BBP和2.4G RF单一芯片,支持300Mbps的吞吐量。
RT3070无线网卡有两种工作模式STA模式和softAP模式,分别由STA驱动和softAP驱动来实现,STA驱动支持无线网卡工作在STA模式下,可以连接到网络实现上网功能。而SoftAP的驱动支持无线网卡工作在softAP模式下,可以作为一个软的接入点(相当于一个路由器),实现无线路由器功能。前面的学习过程中,在FL2440上面已经使能了DM9000的有线网卡(eth0)和USB驱动,可以使用DM9000网卡接入网线实现上网功能,现在对于FL2440基于RT3070添加STA驱动使其可以使用雷凌公司的RT3070芯片实现无线上网功能。
修改内核配置:
[*] Networking support ---> -*- Wireless ---> <*> cfg80211 - wireless configuration API [*] enable powersave by default [*] cfg80211 wireless extensions compatibility [*] Wireless extensions sysfs files {*} Common routines for IEEE802.11 drivers <*> Generic IEEE 802.11 Networking Stack (mac80211) Device Drivers ---> Generic Driver Options ---> -*- Userspace firmware loading support [*] Include in-kernel firmware blobs in kernel binary [*] Network device support ---> [*] Wireless LAN ---> <*> Ralink driver support ---> <*> Ralink rt27xx/rt28xx/rt30xx (USB) support [*] rt2800usb - Include support for rt33xx devices [*] Ralink debug output
楼主只作简要分析,具体移植过程可参照博客:
http://blog.csdn.net/Edroid1530/article/details/72230196
总结(简略步骤):
内核使能无线网卡后,要连路由器上网还需要移植无线上网工具:openssl和wpa_supplicant,openssl是一个库,存放wpa_supplicant工具所依赖的库文件。
一、使能网卡:
添加内核支持,使能成功后出现wlan0.
> ifconfig wlan0 up
wlan0 Link encap:Ethernet HWaddr 00:A1:B0:40:6E:F7
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)
第三行:MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
第四、五行:接收、发送数据包情况统计
第七行:接收、发送数据字节数统计信息
二、第三方应用移植:
1、移植openssl库:
和之前移植madplay播放器类似,首先要查看下载下来的包是否有Makefile,如果没有的话,必有一个config或者configure。如果存在Makefile的话,只需要将Makefile中有关编译的内容改成交叉编译就可以。如果不存在Makefile一般要做如下操作生成Makefile:
/config no-asm shared –prefix=
pwd
/_install
no-asm是在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的。
shared生成动态连接库。
prefix=路径 就是你的安装目录。安装完成后在这个目录下会有四个文件夹:bin lib include ssl。这四个目录非常重要,openssl编程就需要这些目录的配合。
2、移植wpa_supplicant
(1)备份:cp keconfig .config
defconfig—–>.config (第二步)
kconfig——->.config———->makefile(第三步)
(2)修改.config:
配置文件中:
CC 指定了交叉编译器的路径 以及用-L指定所依赖的库所在的目录,也就是我们在上面移植的openssl库的lib路径。
CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。
LDFLAGS:gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法:LDFLAGS=-L/usr/lib -L/path/to/your/lib。每安装一个包都几乎一定的会在安装目录里建立一个lib目录。如果明明安装了某个包,而安装另一个包时,它愣是说找不到,可以抒那个包的lib路径加入的LDFALGS中试一下。
LIBS:告诉链接器要链接哪些库文件,如LIBS = -lpthread -liconv
移植完成后生成三个工具:
- wpa_cli 默认的启动命令
- wpa_passphrase 生成配置文件
- wpa_supplicant 连接wifi命令
通过命令可查看某个工具所依赖的库:
>arm-linux-readelf -d ./wpa_supplicant
wpa_passphrase使用实例:
/*Router_LingYun_Master是我将要连接的路由器的SSID*//*ling_emb是SSID为Router_Lingyun的路由器认证密码*/wpa_passphrase Router_LingYun_Master lingyun_emb>> /etc/wpa_supplicant.conf
生成了一个配置文件wpa_supplicant.conf,文件中存放着我们需要连接的路由器的SSID以及密码。
wpa_supplicant使用实例:(连接wifi)
wpa_supplicant -B -d -Dwext -i wlan0 -c /etc/wpa_supplicant.conf
-B 后台执行
-d 增加调试信息输出
-Dwext 驱动名称
-i 网口名称
-c 附加配置文件,即根据配置文件执行操作
3、Wireless tools移植
wireless_tools.29.tar.gz
这个工具提供了很多工具,最好移植一下。
http://download.csdn.net/detail/u010944778/8916883
修改makefile:
## Compiler to use (modify this for cross compile). CC = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc ## Other tools you need to modify for cross compile (static lib only). AR = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ar RANLIB = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ranlib
修改完后编译生成如下工具:
- iwevent:通过linux下面的netlink机制将内核的信息发送给用户态程序,这里的用户态程序就是iwevent。通过该命令可获得无线网卡连接上ap时的打印信息
iwpriv:操作Wireless Extensions 特定驱动。通过iwpriv,我们可以得到AP的一些参数设置,也可以设置自己的WIFI参数。
iwgetid:
- ifrename:基于各种静态标准命名接口
- iwspy :获取每个节点链接的质量(只能查阅与之相连的节点)
- iwconfig:设置基本无线参数
- iwlist :扫描、列出频率,比特率,密钥等
iwconfig使用实例:
#iwconfig wlan0 key xxxx //输入验证密码 #iwconfig wlan0 key open //密码验证功能打开 #iwconfig wlan0 essid “edan” //设置ESSID #iwconfig wlan0 ap auto //加入无线网络 #ifconfig wlan0 192.168.1.23 //设置wifi IP地址
参考:http://www.cnblogs.com/tkid/p/3998721.html
四、手动设置DHCP
#配置IP地址ifconfig wlan0 192.168.0.168 #配置默认网关route add default gw 192.168.0.1 //必须与你电脑在同一个网段#配置DNSecho "nameserver 114.114.114.114" > /etc/resolv.conf
五、自动获取IP:
busybox已经集成了DHCP的客户端和服务端,源码编译过后的examples/udhcp/simple.script作为DHCP客户端的示例配置文件如下,将其重命名为/usr/share/udhcpc/default.script,特别注意必须给default.script 可执行权限**。直接拷贝到开发板udhcpc指定目录下就可以。
然后运行如下命令可自动获取:
udhcpc -i wlan0
然后就可以上网了,可以ping百度试试。
六、通过脚本实现开机自启:
将脚本命名为S**
#!bin/shifconfig eth0 192.168.1.111 up ifconfig wlan0 upwpa_supplicant -B -d -Dwext -i wlan0 -c /etc/wpa_supplicant.conf //连接wifi ifconfig wlan0 192.168.0.123 route add default gw 192.168.0.1echo "nameserver 114.114.114.114" > /etc/resolv.conf
因为脚本默认自启目录是/app/etc/init.d/以及/etc/init.d/,所以我们可以把该脚本命名为以S打头,在app目录下创建路径etc/init.d或者直接把脚本放到/etc/init.d目录,都可以实现脚本自启动。
楼主只作简要分析,具体移植过程可参照博客:
http://blog.csdn.net/Edroid1530/article/details/72230196
- RT3070 STA模式——开发板实现上网功能
- FL2440——RT3070 STA模式 实现无线上网功能
- RT3070无线网卡AP模式——开发板实现路由功能
- RT3070无线网卡AP模式——开发板实现路由功能并使客户端成功联网
- RT3070无线网卡AP模式——开发板实现路由功能并使客户端成功联网
- RT3070之STA模式实现无线上网
- RT3070无线网卡STA模式并使开发板接入Wifi上网
- 实现RT3070无线网卡STA模式并使开发板接入Wifi上网
- 开发板STA模式下使用RT3070无线网卡接入WiFi上网
- fl2440-添加RT3070驱动(STA模式)实现无线上网
- RT3070无线网卡STA模式
- android开发板实现关机功能
- RT3070 STA和softAP模式驱动移植
- FL2440——RT3070 softAP模式 实现无线路由器功能
- fl2440开发板 rt3070芯片——AP模式
- fl2400开发板rt3070芯片—station模式
- 教程——Basys3开发板实现示波器设计
- RT3070无线网卡Sta模式和Ap模式的使用
- 说一说solr命令行(cmd)
- 第1章 基础知识
- Android build(1) -- makefile Android Building System 分析
- 读懂tomact源码4:Host
- Java网络编程——第十章 安全Sokcet
- RT3070 STA模式——开发板实现上网功能
- Android Spanned实现TextView富文本效果(2)--表情
- bzoj 4176 Lucas的数论
- ubuntu apt删除软件
- Android build(3) -- 学习makefile 其中的函数
- grep正则表达式
- Recycleview的实例及于listview的强弱分析
- C#操作数据库
- Codeforces 799C. Fountains