RT3070驱动移植
无线网卡为RT3070,驱动分为STA驱动和SoftAP驱动两种,STA驱动支持无线网卡工作在STA模式下,而SoftAP的驱动支持无线网卡工作在软AP的模式下,可以作为一个软的接入点。STA驱动为2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO.bz2。SoftAP的驱动是:2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2。需要移植STA驱动和SoftAP驱动,两款驱动的移植步骤差不多。下边首先对STA驱动进行移植。
STA驱动的移植
#tar jxvf 2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO.bz2 cd 2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO |
|
修改原有的Makefile文件如下(只给出需要修改的部分,“-”表示删除的行,“+”表示添加的行):
+#Makefile for RT3070 on MBC-SAM9G45 +#2010_11_13 by liyi RT28xx_MODE = STA TARGET = LINUX CHIPSET = 3070 -PLATFORM = PC +PLATFORM = IXP
ifeq ($(PLATFORM),IXP) -LINUX_SRC = /project -CROSS_COMPILE = arm-linux- +LINUX_SRC = /home/Embest_SAM9G45/linux-2.6.30 +CROSS_COMPILE = /usr/local/arm2007q1/bin/arm-none-linux-gnueabi- endif |
|
修改os/linux文件夹中的config.mk文件,需要修改的地方如下(只给出需要修改的部分):
# Support Wpa_Supplicant - HAS_WPA_SUPPLICANT=n +HAS_WPA_SUPPLICANT=y # Support Native WpaSupplicant for Network Maganger -HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n +HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
ifeq ($(PLATFORM),IXP) - WFLAGS += -DRT_BIG_ENDIAN +#WFLAGS += -DRT_BIG_ENDIAN endif
ifeq ($(PLATFORM),IXP) EXTRA_CFLAGS := -v $(WFLAGS) -I$(RT28xx_DIR)/include endif
ifeq ($(PLATFORM),IXP)
- CFLAGS := -v -D__KERNEL__ -DMODULE -I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale -malignment-traps -msoft-float $(WFLAGS)
- EXTRA_CFLAGS := -v $(WFLAGS) -I$(RT28xx_DIR)/include
- export CFLAGS - + endif |
|
修改完成以后,通过以下命令编译:
make ARCH=arm KBUILD_NOPEDANTIC=1 |
|
如果不加KBUILD_NOPEDANTIC=1将出现CFLAGS was changed in …. Fix it to use EXTRA_CFLAGS的错误,编译不能通过。编译完成后,会在os/linux文件夹中生成rt3070sta.ko的驱动模块。此模块通过下载工具可以下载到/m