WL-167G无线网卡驱动移植

时间:2021-12-06 15:04:17

1、 内核源文件: celinux-040503(专门针对MIPS平台)

网卡:ASUS WL-167G

无线路由:FAST

 

2编译内核前一定要把君正的补丁打上(否则无法编译内核。)

celinux-040503下打君正的补丁:

gzip –cd ../ celinux-040503-jz-20080409.patch.gz | patch –p1

 

3、 首先编译一下内核源文件,并且在make xconfig的时候一定要把在Loadable module support中把Set version information on all module symbols选项选成y.(模块版本控制)

这样的话会在celinux030504/include/linux/下出现modversion.h文件 (不然会出现modversion.h找不到的错误!)

 

4、 修改RT73_Linux_STA_Drv 1.0.3 .6 /中的Makefile文件:

需要修改的有四个地方:

1

CC :cc改为:

CC :=/home/lfg/mipseltools-gcc331-lnx24/bin/mipsel-linux-gcc

(指定交叉编译器进行编译)

2)添加:

LD :=/home/lfg/mipseltools-gcc331-lnx24/bin/mipsel-linux-ld

(指定交叉编译器中的链接工具进行链接)

LINUX_SRC=/home/lfg/celinux-040503/

(指定针对于MIPS平台LINUX内核源码)

(3)注释掉#include ./config.mk

config.mk中存放的是指向的Linux源码路径(默认是LINUX_SRC=/usr/src/linux- 2.4.18 -3,我们要用专门针对MIPS平台的celinux-040503,所以Makefile文件中添加了一个LINUX_SRC),和编译后挂载模块的存放路径)

(4)修改其编译选项

1)去掉-mpreferred-stack-boundary=2

2)修改-march=i686-march=mips32(不然会出现opcode not supported by this ISA Level的错误)

3)加上-fno-pic-mno-abicalls(避免装载模块时出现unresolved symbol _gp_disp的错误)

4)加上-mlong-calls(避免装载模块时出现Relocation overflow of type 4 for **********的错误)

 

5、 修改RT73_Linux_STA_Drv 1.0.3 .6 /Module文件夹下的rt_config.h中的99行的#include <asm-i386/atomic.h>#include <asm-mips/atomic.h>

6、 修改RT73_Linux_STA_Drv 1.0.3 .6 /Module文件夹下的rtmp_def.h,在添加下面两句

   {USB_DEVICE(0x0B05,0x1723)}, /* dding add WL -167G ASUS */ /

{USB_DEVICE(0x0B05,0x1724)}, /* dding add ASUS */ /

   (为的是让驱动能够识别WL -167G 无线网卡)

 

7、 然后在RT73_Linux_STA_Drv 1.0.3 .6 /Module文件夹中Make all,会生成rt73.o文件

 

8、 rt73.o下载到开发板上,insmod rt73.o 挂载模块

 

9、 插入无线网卡,ifconfig rausb0 192.168.1.5设定无线网卡地址同时启动无线网卡。

这样的话就可以Ping通无线路由了。(无线路由IP192.168.1.1