TL-WN321G无线网卡驱动在armlinux平台上的移植TL-WN321G无线网卡驱动在armlinux平台上的移植正文:
TP-link的这款网卡恐怕是比较常见的一种无线网卡了,本周的任务是将其移
植到ARM上。
电脑:ubuntu6.10,kernel2.6.17-12-generic
ARM: emdoor 2.4.21-rmk1-pxa1-xsbase270中国各省简称
上篇文章说过“2.4.18的内核对wireless网络接口不完善,所以不好移植,
需要在内核代码中添加东西,只是刚开始编译试了一下,内核中缺少相关定义,所以就没有继续。最好在2.4.20以后的版本中进行。”我在2.4.17上大概试了一下,确实报错有很多定义都没有,幸好这个arm平台是2.4.21的,就用他做实验啦。
1,首先当然要到相应的驱动程序,linux的源代码:
www.ralinktech.tw/
2,尝试在本机安装,按照readme可以轻松完成,网卡正常工作。一来测试网卡是否正常,而来测试驱动能否正常工作。
3,参照原来的Makefile,重新编写Makefile,修改的地方主要包括:CROSS-COMPILE,CC,LD,AFLAGS,CFLAGS,主要目的是用交叉编译器来进行编译,而且相应的库都用arm版本来代替。Makefile的写法有严格的要求,比如只能用Tab不能用空格等等,最头疼的是不知道CFLAGS在说什么,总出问题,而且不显示出在这里,了一大圈才又回头看Makefile,发现和网上介绍的不太一样,有些错误其实是可以直接发现的,太粗心了。为了编译顺利我甚至怀疑是否主机也必须是2.4内核的,于是我又装了redhat虚拟机,后来证明这是没有关系的。
>>>>>>>>>>>>>#### #
# Module Name: Makefile
# Abstract: Makefile for rt73 linux driver on kernel series 2.4 >>>>>>>>>>>>>#### #
CROSS-COMPILE = arm-linux-
CC=$(CROSS-COMPILE)gcc
LD = $(CROSS-COMPILE)ld
LINUX_SRC := /home/sunpei/embed/linux-2.4.21-51Board_EDR
WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
#定义char为signed char,消除PC和ARM差异
AFLAGS := -fsigned-char
CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -march=armv4 -DMODULE -DMODVERSIONS -include $(LINUX_SRC)/include/linux/modversions.h CFLAGS += $(WFLAGS)
CFLAGS += $(AFLAGS)
OBJ = rt73.o
途家民宿网rt73.o : rtmp_main.o mlme.o connect.o rtusb_bulk.o rtusb_io.o sync.o assoc.o auth.o auth_rsp.o rtusb_data.o rtmp_init.o sanity.o
rtmp_wep.o rtmp_info.o rtmp_tkip.o wpa.o md5.o
$(LD) -r $^ -o $@
all: $(OBJ)
clean:
rm -rf *.o *~ core .*.cmd *.ko *.mod.c .tmp_versions built-in.o
>>>>>>>>>>>>>#### #
4,如果直接编译会报错,说许多定义都没有,因为有些头文件还是用的i386的,将这些include指向arm就可以顺利编译啦。编译的时候说Modversion没有,后来莫名其妙的就好了,我也不知道我动了什么。
5,在arm板上新建文件夹/etc/Wireless/RT73STA,这个目录路径实际上是在
买房子流程rt_config.h中定义的,当然你也可以修改他。
# mkdir /etc/Wireless
梦到丢鞋# mkdir /etc/Wireless/RT73STA
将需要的文件拷贝至ARM,当然是同学教我的crtl-a,z,s,。。。好久不接触都忘记了。
# cp rt73.bin /etc/Wireless/RT73STA
# cp rt73sta.dat /etc/Wireless/RT73STA
# dos2unix /etc/Wireless/RT73STA/rt73sta.dat //把配置文件转换为linux 格式,有关换行格式等
6,insmod rt73.o,应该说这样就可以了,但是还是出现了许多奇怪的问题,奇怪到从来没有人遇到过这种问题(以查阅google为准)。这些问题的排除也是除了正确编译驱动以外最大的工作量,每天早上都有新想法,来到实验室一实验果然可以,呵呵,睡眠有利于解决问题。:P
6.1 一加载.o文件就死机
#insmod rt73.o
using rt73.o
没有动静了。
加载驱动就死机,第一个想到的问题就是驱动源代码有错,近十万行的源代码要通读太费劲,关键是编译的时候不报错,加载就死机,这种真的是无从下手的感觉,硬着头皮读了两天,不知所云。第二天清早忽然恍然大悟,我是在NFS网络文件系统上放着这个文件并执行的,有一次我从主机给ARM传文件时也死机了,会不会是因为无法从网络文件系统目录上正确读取驱动?七点多就跑来实验了,果然不出所料,把.o文件传到目标板上,insmod一下,ifconfig rausb0 up一下,成功!
6.2 网卡标识不正确
网卡看似起来了,但是当查看网卡信息的时候显示:
HWaddr 00:00:00:00:00:00
显然网卡识别不正确,但是有时候rmmod再insmod后就会认出mac地址,估计是系统不稳定吧。
6.3 无法配置无线网络连接
在主机上非常简单,用iwconfig进行配置即可,比如最重要的ssid,用iwconfig rausb0 essid dlink就可以加入到dlink的网络当中去了,但是在
目标板上并非如此。
无线网卡的初始参数在rt73sta.dat中,具体的示意在readme中都有,于是乎我gedit rt73sta.dat,按照我们的无线网络配置修改ssid=dlink,channel=3,保存并传输到指定目录下,重新加载驱动模块,竟然显示: rausb0 RT73 WLAN ESSID:off/any
用iwconfig进行配置也是徒劳,依然显示上面的配置。
没有办法配置ssid,眼睁睁的看着驱动起来的网卡不能用,查便天下真
的是没有第二个人遇到我这种问题,郁闷之情无法言表,为了解决这个问题,我怀疑是iwconfig有问题,交叉编译了最新的iwconfig,还是不行。我一遍
遍修改rt73sta.dat,还是不行,但是有些参数修改就有用,比如channel=3
等一些数字的修改就有时候会起作用。我还加入了调试语句在源代码中,看是否正确获得文件中的ssid这个参数,结果是正确的。山穷水尽了。。。
又到了一个清晨,我忽然想到为什么要dos2unix这个文件?难道是格式不对?回到实验室仔细看Readme,终于发现编辑这个文件的命令是:vi -b
rt73sta.dat。难道这样保存的文件格式不同?用这种方法重新改ssid,重新
实验,一切搞定!难道真的是这个原因?
现在网络已经可以正常工作,移植过程一波三折,记录在此以便以后查阅,并祝其他人员移植顺利。
TL_WN321G无线网卡的移植中国历届奥运会奖牌
RT73 无线网卡在linux2.4.20 arm的移植
TL_WN321G的芯片是rt系列的芯片,到这款芯片的linux驱动地址:
www.ralinktech.tw/data/RT73_Linux_STA_Drv1.0.4. 现在最新的就应该是这个了吧,还有一个是
rt2x00.serialmonkey/
这个我没有试,好像是在RT73_Linux_STA_Drv1.0.3.6的基础上改,经常更新,应该比较新。
这里有比较全的rt驱动:
rt2x00.serialmonkey/wiki/index.php?title=Downloads
首先环境说明一下,gcc版本3.2.2,arm-linux-gcc版本3.3.2。
PC机内核:2.4.32
arm linux:2.4.20
所有操作都是在字符界面下。
2.4.18的内核对wireless网络接口不完善,所以不好移植,需要在内核代码中添加东西,只是刚开始编译试了一下,内核中缺少相关定义,所以就没有继续。最好在2.4.20以后的版本中进行。
网上2.6下介绍的比较多,所以我来写一些在2.4下需要注意的地方。
先在pc机上试了一下。
因为我使用的这个网卡TL_WN321G的VID和PID为0x148f,0x2573,在rtmp_def.h已经定义了,所以不需要更改任何东西。
# tar zxvf RT73_Linux_STA_Drv1.0.4.
# cd Modules
# mv Makefile.4 Makefile -f
# make config //在这里选择内核源代码目录,它需要相关头文件,把内核源代码所在目录填上
# make all
生成rt73.o模块文件。
建立相关目录,用于放置配置文件。这些目录在rt_config.h中定义了,你可以自己修改。
# mkdir /etc/Wireless
# mkdir /etc/Wireless/RT73STA
# cp rt73.bin /etc/Wireless/RT73STA
# cp rt73sta.dat /etc/Wireless/RT73STA
# dos2unix /etc/Wireless/RT73STA/rt73sta.dat //把配置文件转换为linux格式,有关换行格式等
# insmod rt73.o
rtusb init ====>
.
......
# lsmod | grep rt73
rt73 237344 0 (unused)
usbcore 81920 1 [rt73 usb-storage hid usb-uhci]
然后插上无线网卡,出现:
idVendor = 0x148f, idProduct = 0x2573
在这里无线路由配置为无加密,为了方面测试,如果加密,需要更改配置文件。
# ifconfig rausb0 inet 192.168.1.10 up // 启动无线网络接口
rt73 driver version - 1.0.4.0
护照过期怎么办# ifconfig rausb0 //看到相关rausb0网络配置信息
rausb0 Link encap:Ethernet HWaddr 00:19:E0:80:EE:7A
inet
addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING
MULTICAST MTU:1500 Metric:1
RX packets:117 errors:0 dropped:0 overruns:0 frame:0
TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7860 (7.6 Kb) TX bytes:2880 (2.8 Kb)
# iwconfig //可以看到相关无线网卡信息,如果连接上路由器,则ESSID 和路由器的匹配。
rausb0 RT73 WLAN ESSID:"AA"
Mode:Auto Frequency:2.412GHz Bit
Rate=1Mb/s
RTS thr=0 B Fragment thr=0 B
Encryption key:off
Link Quality:0 Signal level:0 Noise level:113
Rx invalid nwid:0 Rx invalid crypt:0 Rx
invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
如果连接上,添加相关网关和DNS就可以上网了。
有关iwconfig的使用,网上吧。
好了,现在把驱动移植到arm上,内核为2.4.20,s3c2440。
首先要修改Makefile。
>>>>>>>>>>>>>#### #
# Module Name: Makefile
# Abstract: Makefile for ARM rt73 linux driver on kernel series 2.4
>>>>>>>>>>>>>#### #
CROSS-COMPILE = arm-linux-
CC=$(CROSS-COMPILE)gcc
LD = $(CROSS-COMPILE)ld
LINUX_SRC := /home/sunpei/embed/linux-2.4.21-51Board_EDR
WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
#定义char为signed char,消除PC和ARM差异
AFLAGS := -fsigned-char
CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -O2 -fomit-frame-
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
Y470说明书
« 上一篇
台式机无线网卡驱动安装方法
下一篇 »
热门文章
-
2015年陕西省专升本(大学语文)真题试卷(题后含答案及解析)
2024-09-26 -
高岭土的产地和储量分布
2024-09-26 -
高考复习(语文)专项练习:(整本书阅读文通练)《乡土中国》【含答案及...
2024-09-26 -
统编版高中语文必修上册 乡土中国的变迁——读《名实的分离》《从欲望...
2024-09-26 -
文本细读的内涵及方法
2024-09-26 -
徘徊于本我、自我和超我之间———理查德·赖特的《土生子》别格
2024-09-26 -
九层之台,起于累土的意思
2024-09-26 -
乡土中国高中生读后感
2024-09-26 -
中考语文阅读题含答案
2024-09-26 -
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下的意思-概述说...
2024-09-26 -
乡土中国 读书报告
2024-09-26 -
读费孝通《乡土中国》读书笔记02
2024-09-26 -
《乡土中国》阅读心得和收获五篇
2024-09-26 -
乡土中国读书笔记阅读感悟(精品8篇)
2024-09-26 -
土规与控规有什么区别?
2024-09-26 -
乡土中国读书笔记摘抄及感悟(4篇)
2024-09-26 -
育苗基质的配制方法,和营养土有什么区别
2024-09-26 -
什么是高塑性粘土和膨润土
2024-09-26 -
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下的意思_百度文...
2024-09-26 -
费孝通乡土中国读后感400字(精选5篇)
2024-09-26
最新文章
-
最新字谜语大全及答案(275条)
2024-09-26 -
猜谜语一年级
2024-09-26 -
2022小学生趣味谜语(精选460句)
2024-09-26 -
一家有七口种田种一亩打一个谜语
2024-09-26 -
最新-一口咬住多半截打一字是什么 精品
2024-09-26 -
画谜大全及答案 猜一字100个
2024-09-26
发表评论