2010年12月5日 星期日

BeagleBoard wifi Abocom WA-160CUN (Ralink RT3072 chip)

1.Download driver from ralink

2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.bz2

2.Apply patch

diff -Naur 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.org/Makefile 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/Makefile
--- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.org/Makefile    2010-08-31 17:12:20.000000000 +0800
+++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/Makefile    2010-12-06 13:42:45.517707164 +0800
@@ -15,7 +15,7 @@
 RTMP_SRC_DIR = $(RT28xx_DIR)/RT$(CHIPSET)
 
 #PLATFORM: Target platform
-PLATFORM = PC
+#PLATFORM = PC
 #PLATFORM = 5VT
 #PLATFORM = IKANOS_V160
 #PLATFORM = IKANOS_V180
@@ -46,6 +46,7 @@
 #PLATFORM = MT85XX
 #PLATFORM = NXP_TV550
 #PLATFORM = MVL5
+PLATFORM = OMAP3
 
 #RELEASE Package
 RELEASE = DPO
@@ -240,6 +241,11 @@
 CROSS_COMPILE = /opt/montavista/pro/devkit/arm/v5t_le_mvl5/bin/arm_v5t_le-
 endif
 
+ifeq ($(PLATFORM),OMAP3)
+LINUX_SRC = ${HOME}/BeagleBoard/kernel
+CROSS_COMPILE = arm-none-linux-gnueabi-
+endif
+
 export OSABL RT28xx_DIR RT28xx_MODE LINUX_SRC CROSS_COMPILE CROSS_COMPILE_INCLUDE PLATFORM RELEASE CHIPSET RTMP_SRC_DIR LINUX_SRC_MODULE TARGET
 
 # The targets that may be used.
diff -Naur 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.org/os/linux/config.mk 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/os/linux/config.mk
--- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.org/os/linux/config.mk    2010-08-31 17:12:20.000000000 +0800
+++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/os/linux/config.mk    2010-12-06 14:58:50.981706317 +0800
@@ -148,7 +148,8 @@
 # config for STA mode
 
 ifeq ($(RT28xx_MODE),STA)
-WFLAGS += -DCONFIG_STA_SUPPORT -DDBG
+#WFLAGS += -DCONFIG_STA_SUPPORT -DDBG
+WFLAGS += -DCONFIG_STA_SUPPORT
 
 ifeq ($(HAS_XLINK),y)
 WFLAGS += -DXLINK_SUPPORT
@@ -577,6 +578,11 @@
 export CFLAGS
 endif
 
+ifeq ($(PLATFORM),OMAP3)
+EXTRA_CFLAGS := -D__KERNEL__ -DMODULE -I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include -I$(LINUX_SRC)/arch/arm/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -fwrapv $(WFLAGS)
+export EXTRA_CFLAGS
+endif
+
 ifeq ($(PLATFORM),BL2348)
 CFLAGS := -D__KERNEL__ -I$(RT28xx_DIR)/include -I$(LINUX_SRC)/include -I$(LINUX_SRC)/include/asm/gcc -I$(LINUX_SRC)/include/asm-mips/mach-tango2 -I$(LINUX_SRC)/include/asm-mips/mach-tango2 -DEM86XX_CHIP=EM86XX_CHIPID_TANGO2 -DEM86XX_REVISION=6 -I$(LINUX_SRC)/include/asm-mips/mach-generic -I$(RT2860_DIR)/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -G 0 -mno-abicalls -fno-pic -pipe  -mabi=32 -march=mips32r2 -Wa,-32 -Wa,-march=mips32r2 -Wa,-mips32r2 -Wa,--trap -DMODULE $(WFLAGS) -DSIGMA863X_PLATFORM -DEXPORT_SYMTAB -DPLATFORM_BL2348
 export CFLAGS

3.Put driver to BeagleBoard

os/linux/rt3370sta.ko -> /etc/Wireless/RT2870STA/rt3370sta.ko

4.Put .dat to BeagleBoard

RT2870STA.dat -> /etc/Wireless/RT2870STA/RT2870STA.dat

5.Load driver

# insmod /etc/Wireless/RT2870STA/rt3370sta.ko
rtusb init --->
ra0 (): not using net_device_ops yet
usbcore: registered new interface driver rt2870

6.Config

ifconfig ra0 up
iwlist ra0 scan
iwconfig ra0 essid 3F_SW_AP
iwconfig ra0 mode managed
iwconfig ra0 key 0123456789
iwpriv ra0 set AuthMode=WEPAUTO
iwpriv ra0 set EncrypType=WEP

7.Run dhcp client

udhcpc -i ra0 -s /etc/udhcpc.script