Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2883815
  • 博文数量: 674
  • 博客积分: 17881
  • 博客等级: 上将
  • 技术积分: 4849
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 10:15
文章分类

全部博文(674)

文章存档

2013年(34)

2012年(146)

2011年(197)

2010年(297)

分类: LINUX

2010-08-20 14:20:11

首先需要感谢http://blog.21ic.com/user1/765/archives/2007/41046.html的作者张驿风,我在网上查了半天在arm平台上移植无线网卡驱动的,他是唯一一个给出移植过程的,所以我也选择这款TP-LINK WN321G的USB无线网卡。去中关村问了一下,结果是这款网卡太老了,基本没卖的了,买回来的都是WN322G的,还好实验室以前买过这款网卡,还能找到一个给我用.
打开TP-LINK WN321G的外壳可以查看该无线网卡所用的芯片,是Ralink的RT2571WF,于是找到Ralink的官网去看看,找到了该芯片Linux驱动的下载地址。

下载解压,cd Module 仔细阅读其中的README,能了解其在PC上的安装过程。到ARM平台其实也是非常类似的,只不过是用交叉编译器而已。
# cp -f Makefile.6 Makefile //使用2.6的Makefile文件
当然我们也需要修改这个Makefile文件,我就给出我的Makefile文件
######################################################################
#       Module Name: Makefile
#       Abstract: Makefile for rt73 linux driver on kernel series 2.6
######################################################################
 
WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
CFLAGS += $(WFLAGS) -fsigned-char
obj-m := rt73.o
 
rt73-objs :=  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
KDIR    := ~/linux-2.6.14
all:
 make -C $(KDIR) SUBDIRS=$(shell pwd) modules
clean:
 rm -rf *.o *~ .*.cmd *.ko *.mod.c .tmp_versions built-in.o
       
很简单吧,把install的命令都去掉了,只留下编译命令,当然内核源代码树的目录也是需要修改的了,还有一点很重要,我在网上搜了半天才知道的,在arm平台下C语言char类型默认为unsigned char类型,所以一点要给CFLAGS加上一个-fsigned-char选项
不然编译出现了很多warning,我是比较追求完美的人,另一个warning我也修改了一下,就是把"\0"该成用单引号的'\0',定义未使用的warning就把定义去了,这样我就觉得很perfect了.编译生成了rt73.ko模块我把它copy到我的NorFlash的jffs2目录下.
选则编译成模块是为了让内核小点,不然内核过大烧到NorFlash中会覆盖Ramdisk的.当然也可以编译进内核的.
接着我们还需要linux下配置无线网卡的工具iwconfig

在这里我们可以找到Wireless Tools for Linux,不如就下载最新版本吧

这个当然也是很简单的,修改一下交叉编译器,添加一个
CROSS =/usr/local/arm/3.4.1/bin/arm-linux-
然后把CC,AR,RANLIB前面都加上$(CROSS)啦
为了方便一些,在root下 mkdir iwconfig
然后还把Makefile中的PREFIX修改为 /root/iwconfig
这样就把编译结果安装到这个目录下
# make
# make install
ok,到/root/iwconfig目录下,把sbin目录下的工具copy到ramdisk的sbin中
lib目录下的库也copy到ramdisk的lib中去,工具安装结束
下面配置内核,相信你一定已经为了用U盘而把USB驱动起来了吧,没有的话
看看这篇文章先吧,s3c2410全线移植linux2.6.14.1 u盘 cs8900a busybox 详细过程=
Networking --->
   <*> Generic IEEE 802.11 Networking Stack
   <*> IEEE 802.11 WEP encryption (802.1x)
Device Drivers --->
   Network device support --->
      Wireless LAN (non-hamradio) --->
  <*> Wireless LAN drivers (non-hamradio) & Wireless Extensions
这几个是无线网络相关的选项,都选上比较好,编译内核
配置完了就要开始test了,我这里没有AP,选则两块无线网卡之间点对点地连线
在windows主机上用WN322G配置一个点对点的网络,参考以下用户说明书啦,很简单.
设置网络名称dansen,信道1,网络连接模式点对点,认证模式自动判别,网络连接加密取消 WEP 加密,IP地址 192.168.0.1
在板子上插入网卡WN321G, cd jffs2 ,方便一点在这里写个脚本load
# insmod rt73.ko
# ifconfig rausb0 inet 192.168.0.3 up
# route add default gw 192.168.0.1
# iwconfig rausb0 essid "dansen"
# iwconfig rausb0 mode Ad-hoc
# iwconfig rausb0 channel 1
那样运行一下该脚本,就可和windows主机建立连接了
Ping一下,OK了
 
阅读(1126) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~