构建ARM-PC无线局域网->Tp-link wn321G无线网卡(Rt73)驱动+wireless_tools for Kernel 2.6

 构建ARMPC无线局域网

Tp-link wn321G无线网卡(Rt73)驱动+wireless_tools

 for Kernel 2.6

由于需要使用无线处理近距离数据传输,故有了此文的出现。用arm平台进行视频采集编码,然后用无线局域网传输到PC端再进行各种处理。由于linux下面的无线网卡,如果官方没有提供linux下面的驱动,我们常常会使用madwifi这一开源公司的驱动进行移植,或者用Ndiswrapper进行虚拟加载windows下面的驱动,前者适用的芯片范围有限,如果对其驱动进行更改移植,必然造成比较大的工作量。而后者往往存在不少的问题。而这里使用的一款无线网卡使用的是RalinkRT2571WF,可以查看硬件信息或者撬开外壳得到确认。所以我们在这里可以直接使用Ralink提供的linux下面的驱动进行移植,大大减少了工作量。这里我就参考张驿风的文章进行移植试验(其blog地址:http://blog.21ic.com/user1/765/archives/2007/41046.html)。张驿风提到的一些问题,我移植过程中并没有出现,所以这里并没有做介绍,如果有遇到了什么问题可以访问上面的地址进行查阅。

 

 

一.             主要硬件环境:

ARMmini2440

TP-link无线路由器

Tp-link wn321g无线网卡

二.             主要软件环境:

Kernel:2.6.13

RT73芯片驱动程序

Wireless_tools工具集。

三.             下载必备文件:

1.     kernel:这里我使用mini2440提供的2.613版的内核进行试验。

 

2.    rt73芯片驱动RT2501USB(RT73:RT2571W/RT2573/RT2671)

 

(地址:http://www.ralinktech.com.tw/data/drivers/2009_0206_RT73_Linux_STA_Drv1.1.0.2.tar.bz2

 

3.    Wireless_tools

地址

http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz

 

四.             阅读README,了解安装方法

解压进入到~/2009_0206_RT73_Linux_STA_Drv1.1.0.2/Module目录下,

Vi README

=======================================================================

Build Instructions:

====================

1> $tar -xvzf RT73_Linux_STA_Drv_x.x.x.x.tar.gz

    go to "./RT73_Linux_STA_Drv_x.x.x.x/Module" directory.

 

2> $cp Makefile.4  ./Makefile       # [kernel 2.4]

    or

   $cp Makefile.6  ./Makefile       # [kernel 2.6]

 

3> [kernel 2.4]

    $chmod 755 Configure

    $make config         # config build linux os version

 

4> $make all            # compile driver source code

4.1> $make install

 

5> $cp rt73.bin /etc/Wireless/RT73STA/      # copy firmware

 

6>  $dos2unix rt73sta.dat

    $cp rt73sta.dat  /etc/Wireless/RT73STA/rt73sta.dat

    # !!!check if it is a binary file before loading !!!

 

7> $load

    #[kernel 2.4]

    #    $/sbin/insmod rt73.o

    #    $/sbin/ifconfig rausb0 inet YOUR_IP up

 

    #[kernel 2.6]

    #    $/sbin/insmod rt73.ko

    #    $/sbin/ifconfig rausb0 inet YOUR_IP up

 

 

=======================================================================

 

 

 

 

 

五.             交叉编译RT73驱动程序

1.# rm -f Makefile //删除原来的Makefile文件

2.根据Makefile.6文件进行精简修改:

(1)去掉一些对于我们移植没有用的编译选项,只留下编译命令.

(2)内核源代码树的目录也是需要修改.

(3)还有一点很重要,在前段时间做项目时候发现的,在arm平台下C语言char

型默认为unsigned char类型,所以一点要给CFLAGS加上一个-fsigned-char选项
不然编译出现了很多warnin

(4) 编译生成了rt73.ko模块.

具体Makefile文件如下:

 gedit Makefile &

######################################################################

#       Module Name: Makefile

#       Abstract: Makefile for rt73(tp-link wn321G) 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    := ../../kernel-2.6.13

all:

        make -C $(KDIR) SUBDIRS=$(shell pwd) modules

clean:

        rm -rf *.o *~ .*.cmd *.ko *.mod.c .tmp_versions built-in.o

 

 

 

 

六.             交叉编译wireless-tools

这个工具的安装较之驱动就更为简单了,修改一下交叉编译器,添加一个

CROSS =/usr/local/arm/3.4.1/bin/arm-linux-

然后把CC,AR,RANLIB前面都加上$(CROSS)

为了arm能够很方便的从pc下取得这些文件,Makefile中的PREFIX修改为 /root/iwconfig,如果没有这个目录,会自创建的,这样就把编译结果安装到这个目录下

# make

# make install

现在就会在/root/iwconfig 目录下面生成我们需要的工具和其运行所必需的库文件。

 

七.             将我们编译的成果,下载到arm板上,开始测试

我一向使用简易的ftp进行下载,无论你使用ftp,tftp,nfs等等各种方式,你要把我们生成的驱动文件:rt73.ko, 上面的工具文件/root/iwconfig/sbin/*,/root/iwconfig/lib/*下载到arm开发板上。

 

八.             这里差点忘记了,我们的驱动要能够工作,必须要有一个前提,那就是我们的内核支持无线模块。所以我们要在内核配置的时候加上无线的支持:

Device Drivers --->
   Network device support --->
      Wireless LAN (non-hamradio) --->
  <*> Wireless LAN drivers (non-hamradio) & Wireless Extensions

 

可以在给你提供的内核源文件里使用配置命令查看一下make menuconfig,是不是加入了wireless的支持。如果没有话,请加入无线支持,重新编译内核,配置添加的选项也不一定只有上面的一项,根据自己的内核版本进行添加。

 

九.测试

1.加载驱动: insmod rt73.ko

     2../iwlit scanning查看附近无线网络

3.# iwconfig rausb0 essid linuxer   #无线ESSID名称
# iwconfig rausb0 enc
**********       #无线密钥
# iwconfig rausb0 mode managed      
#无线模式
# dhclient rausb0    
#让rausb0获取IP

如果没有dhclient就可以手动添加网络信息:

/****************************

# insmod rt73.ko
# ifconfig rausb0 inet 192.168.1.77 up
# route add default gw 192.168.1.1
# iwconfig rausb0 essid "linuxer"
# iwconfig rausb0 mode mananed
# iwconfig rausb0 channel 6

 

 

****************************/

# ifconfig #就可以查看rausb0的网络信息了。

 

然后ping一下网关,通了,OK!至此,PCARM的局域网无线网络已搭建成功!

 

十.值得说明的:

1.USB的无线网卡,除了rt73的驱动外,必然需要usb的驱动了,所以对于你的kernel,如果边usb的通用驱动都没有,必须不能使用。

2iwconfig的配置请参考手册,这里不再累述

 

 

你可能感兴趣的:(linux,网络,Build,工具,tools,makefile)