wifi 驱动移植范例
、改Makefile: 里面没有dm6441平台的,我看到有dm6446的,所以就在这里改了
ifeq ($(PLATFORM),DM6446)
LINUX_SRC = /root/work/linux-2.6.18_pro500
CROSS_COMPILE=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-
Endif
这两个路径一定要正确。后来我想了一下这个Makefile里面的平台只是指定了内核和编译工具链,应该随便改哪个平台都是一样的吧。
2、改os/linux/config.mk
设置CC,LD :
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld
不用修改。
3.复制.dat文件到/etc/目录:
README上说是把RT2870STA.dat 复制到 /etc/Wireless/RT2870STA/RT2870STA.dat,
这里的目录要自己建。
三、用到的测试工具和库文件。
后来我从厂家那里拿到了他们驱动和工具。
我把厂家驱动光盘里WF8000-U_091225/linux/usr下的bin文件cp到/usr/bin 下。注意要改权限 chmod a+x /usr/bin/* 用于测试的工具就算装好了。
但是我把 libiw.so.29拷到/lib目录下但是和没拷错误一样,结果拷到根目录下成功,但是库不能放在这里啊,我估计要放到/usr/lib下,还没有试。
四、测试:
查看模块驱动里面的iwpriv_usage.txt可知道各个命令的参数,我由于当初没有看这里面的东西在进入有密码的路由器时吃了大亏,原来这里写的很清楚。
insmod rt3070sta.ko
ifconfig ra0 up 启用无线网卡,至于为什么是ra0,因为我的使用手册上是这样做的
此时cat /proc/wireless 可以看到多了一个ra0
iwlist scanning 可以搜索到可用的网络 iwlist ra0 scanning (只搜索ra0的无线网络)
iwpriv ra0 set SSID="name"无线网络配置 name是搜到的一个网络的名字。假如不要密码这样就行了。
iwpriv ra0 set WPAPSK="A3DDD" 输入登陆密码
iwconfig ra0 key open 打开密码 输入密码后 一定要加这条命令哦,不然连接不上
ifconfig ra0 192.168.1.109 netmask 255.255.255.0为无线网卡指定IP地址
设置网关 route add default gw 192.168.1.1
之后我在ubantu上ping 192.168.1.109 成功。这些命令就是所谓的工具。
在超级终端ping 外网成功。
各种密码的命令参数,这在iwpriv_usage.txt里面可以查到。
无密码:
iwpriv ra0 set SSID="Vodafone D100"
注意:在切换到无密码的用户时,若之前是有密码用户,则要iwconfig ra0 key off。
WPA型密码:
网上说若路由器的加密方式是wpa的话要移植wpa_supplicant工具,我没有这样做,还是可以。
iwpriv ra0 set NetworkType=Infra 网络类型有Infra,Adhoc两种,前者是基于AP的,后者是p2p
iwpriv ra0 set AuthMode=WPAPSK OPEN,SHARED,WEPAUTO,WPAPSK,WPA2PSK,WPANONE
iwpriv ra0 set EncrypType=TKIP NONE,WEP,TKIP,AES
iwpriv ra0 set SSID="Vodafone D100"
iwpriv ra0 set WPAPSK="1234567890"
WEP型密码:
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=OPEN
iwpriv ra0 set EncrypType=WEP
iwpriv ra0 set DefaultKeyID=1
iwpriv ra0 set Key1="1234567890"
iwpriv ra0 set SSID="Vodafone D100"
切换用户登陆:
直接重新输入登陆名字和输入密码的命令,值得注意的是在切换有密码和没有密码的用户时要相应的iwconfig ra0 key open和iwconfig ra0 key off。
网上说若路由器的加密方式是wpa的话要移植wpa_supplicant工具,我没有作过,看别人的http://blog.csdn.net/jimmy_1986/archive/2010/09/09/5872536.aspx
错误信息
PING 192.168.1.1 (192.168.1.1): 56 data bytes
ping: sendto: Network is unreachable
此原因是没有设置ip ifconfig ra0 192.168.1.109 up 解决。
ping 219.134.65.113 外网
ping: sendto: Network is unreachable
此原因是没有设置网关 route add default gw 192.168.1.1 解决。
网上资料
http://blog.csdn.net/jimmy_1986/archive/2010/09/09/5872536.aspx
http://blog.chinaunix.net/u3/109825/showart_2143279.html
RT73 wifi无线网卡驱动移植过程 收藏
转
移植环境:
主机操作系统:Ubantu 8.10
目标系统:linux-2.6.22.6
交叉编译器:arm-softfloat-linux-gnu-gcc-3.4.5
一、RT73驱动编译
1、 下载RT73驱动源码
生成两个目录:
Module(驱动) WPA_Supplicant-0.5.8(wpa网络工具)
2、 修改Makefile
5 #PLATFORM=PC
6 PLATFORM=CMPC
33 #EXTRA_CFLAGS += -DDBG
40 ifeq ($(PLATFORM),CMPC)
41 LINUX_SRC = /source/kernel/linux-2.6.22
42 endif
注:#EXTRA_CFLAGS += -DDBG 一定要关掉,否则终端会不停的循环打印扫描网络的信息
3、 配置内核支持wifi网络
否则会出现如下错误:
/mnt/sdc/rt73/2009_0713_RT73_Linux_STA_Drv1.1.0.3/Module/rtmp_main.c:1163: error: structure has no member named `wireless_handlers'
<*> Packet socket
配置完毕后,需要编译下内核,目的是使配置在include/linux/autoconfig.h中生效
1、 编译源码,生成rt73.ko
/rt73/2009_0713_RT73_Linux_STA_Drv1.1.0.3/Module# make
拷贝驱动到目标系统
#cp rt73.ko /source/rootfs/rt73/
2、 拷贝固件到目标系统
#cp rt73.bin /source/rootfs/etc/Wireless/RT73STA/
#cp rt73.rt73.dat /source/rootfs/etc/Wireless/RT73STA/
二、 移植wpa_supplicant
因为现在的无线wifi网络大多是wpa加密。所以需要移植wpa_supplicant工具
1、 下载源码
http://hostap.epitest.fi/wpa_supplicant/
下载wpa_supplicant-0.7.2.tar.gz (openssl用到0.7.2提供的补丁)
下载wpa_supplicant-0.5.8.tar.gz (最终工具版本)
#tar xvfz wpa_supplicant-0.7.2.tar.gz
#tar xvfz wpa_supplicant-0.5.8.tar.gz
下载www.openssl.org/source/openssl-0.9.8e.tar.gz
#tar zxvf openssl-0.9.8e.tar.gz
2、编译openssl库
将wpa_supplicant中的补丁拷贝到openssl中
# cp wpa_supplicant-0.7.2/patches/openssl-0.9.8e-tls-extensions.patch openssl-0.9.8e/
#cd openssl-0.9.8e
#mkdir /usr/local/ssl
#vim Makefile
CC= arm-softfloat-linux-gnu-gcc
AR= arm-softfloat-linux-gnu- r $(ARFLAGS) r
RANLIB= arm-softfloat-linux-gnu-ranlib
INSTALLTOP=/usr/local/ssl
OPENSSLDIR=/usr/local/ssl
#make
#make install
在/usr/local/ssl目录下安装了ssl库
3、 编译wpa_supplicant
参照rt73驱动源码包中的:2009_0713_RT73_Linux_STA_Drv1.1.0.3/ WPA_Supplicant-0.5.8/readme文件提示的步骤完成下面的操作
进入pa_supplicant-0.5.8.tar.gz解压生成的wpa_supplicant-0.5.8目录中:
#cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/driver_ralink.* ./
#cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/driver.h ./
#cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/events.c ./
#cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/wpa_supplicant.c ./
#cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/wpa_supplicant_i.h ./
#cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/defconfig ./
#cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/drivers.c ./
#cp ../2009_0713_RT73_Linux_STA_Drv1.1.0.3/WPA_Supplicant-0.5.8/Makefile ./
#cp defconfig .config
#vim .config
CC= arm-softfloat-linux-gnu-gcc -L /usr/local/ssl/lib/
CFLAGS += -I/usr/local/ssl/include/
LIBS += -L/usr/local/ssl/lib/
#make
生成wpa_supplicant
#cp wpa_supplicant /source/rootfs/bin
#cp wpa_supplicant-0.7.2/wpa_supplicant/examples/wpa-psk-tkip.conf /source/rootfs/etc/wpa_supplicant.conf
#vi /source/rootfs/etc/wpa_supplicant.conf
修改内容如下:
# WPA-PSK/TKIP
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="farsight" //填写无线网络的的用户名
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="12345678" //填写密码
}
在开发板终端:
#mkdir –p /var/run/wpa_supplicant
4、 wireless_tools移植
下载wireless_tools.28.tar.bz2
#tar xvfj wireless_tools.28.tar.bz2
#cd wireless_tools.28
#mkdir ../wireless_tools
#vi Makefile
PREFIX=$(PWD)/../wireless_tools
CC= arm-softfloat-linux-gnu-gcc
AR= arm-softfloat-linux-gnu-ar
#make
#make install
#cp ../wireless_tools/lib/* /source/rootfs/lib/
#cp ../wireless_tools/sbin/* /source/rootfs/sbin/
5、 设置开发板启动脚本
insmod /rt73/rt73.ko
ifconfig rausb0 192.168.0.12
/bin/wpa_supplicant -B -irausb0 –c /etc/wpa_supplicant.conf –Dralink
无线网卡将被激活。
wifi 驱动移植范例的更多相关文章
- EP-N8530S USB WIFI 驱动移植
/*********************************************************************** * EP-N8530S USB WIFI 驱动移植 * ...
- I.MX6 AW-NB177NF WIFI 驱动移植问题
/******************************************************************************** * I.MX6 AW-NB177NF ...
- android wifi驱动移植详细过程
转自:http://bbs.imp3.net/thread-10558924-1-1.html 对于刚入手android没多久的人来说,android wifi 驱动的移植确实还是有难度的,不过参考了 ...
- Android平台开发-WIFI 驱动移植 -- 详细
一.WIFI的基本架构(代码路径) 1.WIFI Settings应用程序: packages/apps/Settings/src/com/android/settings/wif ...
- wifi驱动移植
目标板:Hi3518 内核版本:linux3.0.8 1.修改makefile #PLATFORM = PC //注释掉 PLATFORM = HI3518 //支持平台 ifeq ($(PLAT ...
- WIFI驱动的移植 realtek 8188
一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为例到官网下载相应的驱动, 解压后可以 ...
- Android wifi驱动的移植 realtek 8188
Android wifi驱动的移植 一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为 ...
- Android系统如何移植wpa_supplicant及wifi驱动
一.WPA_SUPPLICANT简介 1. 什么是wpa_supplicant wpa_supplicant is a WPA Supplicant for Linux, BSD, Mac OS X, ...
- 基于ubuntu-2.6.35内核的SDIO-WiFi驱动移植
一.移植环境: 1.主机:Ubuntu 10.10发行版 2.目标机:FS_S5PC100平台 3.交叉编译工具:arm-cortex_a8-linux-gn ...
随机推荐
- php循环删除文件目录及文件
删除文件及目录: //循环删除目录和文件函数 function delDirAndFile( $dirName ) { if ( $handle = opendir( "$dirName&q ...
- nodeType
nodeType 属性返回节点的类型 语法attrObject.nodeType DOM节点的类型有很多种 12种常用如下 元素节点 : 1属性节点 : 2文本节点 : 3 nodeType取值 No ...
- HTML--JS练习小游戏(别踩白块儿)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 判断两个IP是否属于同一子网
描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据.子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”.利用子网掩码可以判断两台主机是否 ...
- 通过 --py-files 可以在pyspark中可以顺利导入
文件import问题 问题: 在脚本中import了其他文件, pyspark中可以运行, 但是在spark-submit中总是失败 假定我们的任务脚本为 app.py , 大体代码像这样: from ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- Unity学习疑问记录之时间变量
1.Time.deltaTime 以秒计算,完成最后一帧的时间 放在Update()函数中的代码是以帧来执行的.如果我们需要物体的移动以秒来执行.我们需要将物体移动的值乘以Time.deltaTime ...
- Sharepoint 2013 网站集的删除与还原
一.可以通过三种方法删除网站集: 1.打开Sharepoint 2013 管理页面首页 ---> 单击‘应用程序管理(Application Management)’并进入该页面 ---> ...
- Excel 中 Index 和 Match 方法的使用
MATCH函数(返回指定内容所在的位置) MATCH(lookup-value,lookup-array,match-type) lookup-value:表示要在区域或数组中查找的值,可以是直接输入 ...
- elk实战分析nginx日志文档
elk实战分析nginx日志文档 架构: kibana <--- es-cluster <--- logstash <--- filebeat 环境准备:192.168.3.1 no ...