华硕WL-167G USB 无线网卡ARM移植 (3:编译:版本RT.1104)

编译(前面的步骤见编译配置: 版本RT.1036,由于前版本的bug,现特更新为官方最新版本

1.   下载

网卡 华硕WL-167GTP-LINK TL-WN321G

驱动 RT73_Linux_STA_Drv1.1.0.4

点我进入下载页面:

Ralink Part Number

Date

Version

Release
Notes

RT5390PCIe

11/26/2010

2.4.0.2

RT3090PCIe

11/26/2010

2.4.0.2

RT8070/RT3070/RT3370 USB

08/31/2010

2.4.0.1

RT3572USB

09/15/2010

2.4.0.2

RT2860PCI/mPCI/CB/PCIe(RT2760/RT2790/RT2860/RT2890)

07/16/2010

2.4.0.0

RT3062PCI/mPCI/CB/PCIe(RT3060/RT3062/RT3562/RT3592)

11/26/2010

2.4.1.0

RT2860WebUI

09/18/2009

2.2.0.0

RT2870USB(RT2870/RT2770)

07/09/2010

2.4.0.1

RT2870WebUI

08/20/2009

2.2.0.0

RT2501USB(RT73:RT2571W/RT2573/RT2671)

08/17/2010

1.1.0.4

点我进入下载地址

 

查看Release Notes,和1.0.3.6 编译配置相比,的改进/更新:

[V 1.1.0.4]

1.) Support Kernel 2.6.31

[V 1.1.0.3]

1.) Support kernel 2.6.29.

2.) Fix DHCP Tx using high data rate

*******************************************************************

[V 1.1.0.2]

1.) Support kernel 2.6.27.

*******************************************************************

[V 1.1.0.1]

1.) Modify for kernel 2.6.24 and up.

*******************************************************************

 

[V1.1.0.0]

1.) Use USB single write and new firmware to support USB single write.

2.) Support USB 1.1 and improve its throughput.

3.) Fix the bug: reboot AP,sta unload then load, excuting supplicant would

     crash.

4.) Fix the AdHoc problem with Connexant STA at A band.

5.) Fix the problem: can't link to Broadcom AP,when AP set auth:wpa2 cipher:aes

6.) Ap set 802.1x & Fragmentation set 256,station can't connect AP

7.) There are hidden AP in enviroment,sta connect to AP hardly.

 

[V1.0.5.0]

1.) Fix the bug about deciding which BSSID is higher in IBSS mode.

 

[V1.0.4.1]

1.) Support configuration by NetworkManager

2.) Support linux kernel version 2.6.21

*******************************************************************

 

[V1.0.4.0]

1.) Support big endian

2.) Support x64 platform

3.) Support ATE function

4.) Fix the rekey issue on WPA-Preshared

5.) Add A-band country region code #8(W53), #9(J52), #10

6.) Fix Long/Short Preamble setting

7.) Show mix mode in the results of site survey if any

8.) Driver sends disassociate event to WPA Supplicant when AP turns off

9.) Bug Fixed: compile failed on FC5 kernel more than 2.6.15

*******************************************************************

看到前面的主要BUG部分有修正。。。

 

在有了前天(编译配置)的移植基础,下面的就是按部就班了:

 

此处(编译中)已修正,直接跳过

根据自带说明文档,修改rtmp_def.h尾部如下:

00831: /* Revision History by mike to support ASUS device of rt73 */ /

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

00833: {USB_DEVICE(0x0B05,0x1724)}, /* ASUS */ /

00834: {USB_DEVICE(0,0)}} /* end marker */

00835:

00836:

00837: #endif // __RTMP_DEF_H__

新加0083200833

 

当然跳过./Configure,编辑 Makefile.6

 

root@zanget:modules# mv Makefile Makefile.bak

root@zanget:modules# cp Makefile.6 Makefile

 

 

 

2.       修改

A.        将开头部分修改成:

#PLATFORM=PC

#PLATFORM=CMPC

## Revision History by mike

PLATFORM=ARM

## Revision History end

 

B.   内核树目录

ifeq ($(PLATFORM),PC)

LINUX_SRC =/lib/modules/$(shell uname -r)/build

endif

ifeq ($(PLATFORM),CMPC)

LINUX_SRC = /home/fonchi/vendor/kernel-default-2.6.21/linux-2.6.21

endif

## Revision History by mike

ifeq ($(PLATFORM),ARM)

LINUX_SRC = /opt/s3c-2416/linux-2.6.21

Endif

## Revision History end

 

C.         然后是NDDIR部分

## Revision History by mike

##Configuration files on ARM busybox

ifeq ($(PLATFORM),ARM)

BASE_DIR := /opt/s3c-2416/rootfs/custom

NDDIR = $(BASE_DIR)/etc/sysconfig/network

MOD_CONF = $(BASE_DIR)/etc/modprobe.d/module-renames

ND_CONF = $(BASE_DIR)/etc/sysconfig/network/ifcfg-rausb0

else

## Revision History end

ND_CONF=/etc/sysconfig/network-scripts/ifcfg-rausb0

endif

 

D.        然后是install部分

install:

make -C $(LINUX_SRC) /

 

 

 

3.       编译

root@zanget:modules# make

root@zanget:rt73# make

make -C /opt/s3c-2416/linux-2.6.21 SUBDIRS=/opt/s3c-2416/wireless-usb/driver/RT.1104/Module modules

make[1]: 正在进入目录 `/opt/s3c-2416/linux-2.6.21'

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_main.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.o

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.c: In function 'STAMlmePeriodicExec':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.c:860: warning: unused variable 'RxSignal'

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.c: In function 'AsicSwitchChannel':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.c:3932: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.c:3938: warning: comparison is always true due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.c:3990: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.c: In function 'AsicAdjustTxPower':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/mlme.c:4574: warning: comparison is always false due to limited range of data type

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/connect.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.o

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c: In function 'RTUSBInitRxDesc':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c:550: warning: passing argument 6 of 'RTusb_fill_bulk_urb' from incompatible pointer type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c: In function 'RTUSBBulkOutDataPacket':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c:649: warning: passing argument 4 of 'RTUSBInitTxDesc' from incompatible pointer type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c: In function 'RTUSBBulkOutNullFrame':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c:705: warning: passing argument 4 of 'RTUSBInitTxDesc' from incompatible pointer type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c: In function 'RTUSBBulkOutRTSFrame':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c:769: warning: passing argument 4 of 'RTUSBInitTxDesc' from incompatible pointer type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c: In function 'RTUSBBulkOutMLMEPacket':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c:830: warning: passing argument 4 of 'RTUSBInitTxDesc' from incompatible pointer type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c: In function 'RTUSBBulkOutPsPoll':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_bulk.c:882: warning: passing argument 4 of 'RTUSBInitTxDesc' from incompatible pointer type

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_io.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/sync.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/assoc.o

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/assoc.c: In function 'link_status_handler':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/assoc.c:749: warning: embedded '/0' in format

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/assoc.c:773: warning: embedded '/0' in format

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/auth.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/auth_rsp.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_data.o

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_data.c: In function 'RTUSBRxPacket':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_data.c:2233: warning: ISO C90 forbids mixed declarations and code

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtusb_data.c:2271: warning: ISO C90 forbids mixed declarations and code

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.o

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c: In function 'NICReadEEPROMParameters':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c:1188: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c:1201: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c:1218: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c:1318: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c:1322: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c:1330: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c:1334: warning: comparison is always false due to limited range of data type

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c: In function 'RTMPCckBbpTuning':

/opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_init.c:3558: warning: comparison is always true due to limited range of data type

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/sanity.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_wep.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_info.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rtmp_tkip.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/wpa.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/md5.o

  CC [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/netif_block.o

  LD [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rt73.o

  Building modules, stage 2.

  MODPOST 1 modules

  CC      /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rt73.mod.o

  LD [M]  /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rt73.ko

 

 

经过多次版本修正,官方驱动这次一下就成功了!

最后重新网卡驱动

 

 

 

4.       附加:

 

下面的部分上次(点我)已经添加,下面只做标记

 

WARNING: "wireless_send_event" [/opt/s3c-2416/usb-wireless/linux/rt73_Linux_STA_Drv1.0.3.6/modules/rt73.ko] undefined!

  CC      /opt/s3c-2416/usb-wireless/linux/rt73_Linux_STA_Drv1.0.3.6/modules/rt73.mod.o

  LD [M]  /opt/s3c-2416/usb-wireless/linux/rt73_Linux_STA_Drv1.0.3.6/modules/rt73.ko

make[1]:正在离开目录 `/opt/s3c-2416/linux-2.6.21'

 

当然还要解决这个问题:

WARNING: "wireless_send_event" [/opt/s3c-2416/usb-wireless/linux/rt73_Linux_STA_Drv1.0.3.6/modules/rt73.ko] undefined!

 

参看http://blog.chinaunix.net/u1/34190/showart_289626.html

 

内核里添加了对无线的支持,进入内核目录,运行

root@zanget:linux-2.6.21#make menuconfig

选择

device driverNetwork device supportWireless LAN (non-hamradio)Wireless LAN drivers (non-hamradio) & Wireless Extensions

 

 

配置见下一篇文章

 

 

你可能感兴趣的:(华硕WL-167G USB 无线网卡ARM移植 (3:编译:版本RT.1104))