ASUS WL-167G (USB WLAN Adapter) For ARM Linux

Posted on 四月 28, 2008. Filed under: 菸酒生歲月, Linux | 標籤:, , , , , , |

great~ it offers linux driver~

copy the directory Linux/rt73 in the Driver CDROM    ( remember to chmod +w )

follow the README in Linux/rt73/module/

if you got error “undefined get_wireless_stats"

just fix rtmp_main.c, replace  netdev->get_wireless_stats to netdev->get_stats

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

編譯module

網路上有非官方driver : rt2x00 project

每天最新版本

或是直接用CVS更新

cvs -d:pserver:anonymous@rt2400.cvs.sourceforge.net:/cvsroot/rt2400 login

cvs -z3 -d:pserver:anonymous@rt2400.cvs.sourceforge.net:/cvsroot/rt2400 co -P source/rt73

修改Makefile

最前面增加五行

ARCH=arm

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

KERNDIR=/home2/fyodor/kernel/linux-2.6.25__from__2.6.24.3

(KERNDIR要指到目標板所使用的KERNEL SOURCE,而且KERNEL必須先設定好交叉編譯)

ROOTFS = /home2/fyodor/filesystem/rootfs

MODDIR = /lib/modules/2.6.24.3/extra

把module install 的目標位置依照目標kernel版本設定

否則就會安裝到目前uname -r 所找到的kernel module位置…

ps. make install時,modules.dep的設定不會跟著MODDIR而改變

所以還是得設定成extra

修改一行

FIRM_DIR :=    $(ROOTFS)/lib/firmware
編譯

(host)# make armdebug

警告訊息

!!! WARNING: Module file much too big (>1MB)
!!! Check your kernel settings or use ‘strip’
*** Module rt73.ko built successfully

表示編出來的module太大了,這個好解決

必須削減(strip)多餘訊息 (strip之後,板子上無法modprobe!format不合)

(host)# arm-linux-strip ./rt73.ko

把module安裝到target rootfs

這一步,我不很確定怎麼做,試看看吧~

(host)# sudo make install

*** Install module in /lib/modules/2.6.24.3/extra
make[1]: Entering directory `/home2/fyodor/kernel/linux-2.6.25__from__2.6.24.3′
INSTALL /home2/fyodor/filesystem/tools/wirelessTool/WL-167G/rt73-cvs/rt73-cvs-2008042100/Module/rt73.ko
DEPMOD  2.6.24.3
make[1]: Leaving directory `/home2/fyodor/kernel/linux-2.6.25__from__2.6.24.3′
/sbin/depmod -a
*** Update /etc/modprobe.d/ralink alias for wlan*
*** Install firmware in /home2/fyodor/filesystem/rootfs/lib/firmware
*** Check old config …

警告訊息

WARNING: Couldn’t find symtab and strtab in module /lib/modules/2.6.20-15-generic/extra/rt73.ko
*** Update /etc/modprobe.d/ralink alias for wlan*
*** Install firmware in /home2/fyodor/filesystem/rootfs/lib/firmware …
*** Check old config …

因為這一個編譯所使用的kernel版本2.6.24.3,和host機器上目前使用的版本2.6.15不同導致這個錯誤不知道怎麼處理… 應該是沒關係因為真正運作時,這個module在板子上所配合的kernel 版本就對上了參考: http://www.linuxsir.org/bbs/thread307321.html

結束

一樣照著路徑複製到rootfs裡面

module : /lib/modules/2.6.24.3/extra/rt73.ko

firmware : /lib/firmware/rt73.bin

status code :

s3c2410-ohci s3c2410-ohci: urb c2704ec0 path 1 ep0in 5ec20000 cc 5
–> status -62

all status code : include/asm-generic/errno.h

#define ETIME 62      /* Timer expired */

Document of error codes : Documentation/usb/error-codes.txt

-ETIME (**)

No response packet received within the prescribed bus turn-around time.  This error may instead be reported as -EPROTO or -EILSEQ.

懶惰的script


ROOTFS=/home2/fyodor/filesystem/rootfs
echo " install module to $ROOTFS/lib/modules/2.6.24.3/extra/"
cp /lib/modules/2.6.24.3/extra/rt73.ko $ROOTFS/lib/modules/2.6.24.3/extra/rt73.ko
echo " install firmware to $ROOTFS/lib/firmware/"
cp /lib/firmware/rt73.bin $ROOTFS/lib/firmware/
ls -alh $ROOTFS/lib/modules/2.6.24.3/extra/rt73.ko
ls -alh $ROOTFS/lib/firmware/rt73.bin

modprobe

[busybox] # modprobe rt73 debug=15 firmware=/lib/firmware/rt73.bin

[busybox] # ifconfig wlan0 up

[busybox] # dmesg

rt73: USBVendorRequest TIMEOUT
rt73: Retry count exhausted or device removed!!!
rt73: BBP version = 0
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0in 5ec20000 cc 5 –> status -62

rt73: USBVendorRequest TIMEOUT
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0out 5ec20000 cc 5 –> status -62

rt73: USBVendorRequest TIMEOUT
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0in 5ec20000 cc 5 –> status -62

rt73: USBVendorRequest TIMEOUT
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0in 5ec20000 cc 5 –> status -62

rt73: USBVendorRequest TIMEOUT
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0in 5ec20000 cc 5 –> status -62

rt73: USBVendorRequest TIMEOUT
rt73: Retry count exhausted or device removed!!!
rt73: BBP version = 0

為什麼會timeout勒…..  搞了一個禮拜還是搞不清楚

rt73: USBVendorRequest TIMEOUT是我自己加的訊息

總之status -62 = -ETIME,就是TIMEOUT

上面說過了,status code的詳細定義在$(KERNDIR)/include/asm-generic/errno.h

error的解釋在$(KERNDIR)/Documentation/usb/error-codes.txt

去rt2x00.serialmonkey.com post問題,一邊trace driver 一邊等

覺得問題比較有可能出在s3c2410-ohci

畢竟這部份的2440移植,我做的很粗糙

Error Code Tracing

rt73: USBVendorRequest TIMEOUT

$(RT73)/Module/rtusb_io.c ===> RTUSB_VendorRequest function內的ret 值

ret=usb_control_msg(pAd->pUsb_Dev, usb_sndctrlpipe( pAd->pUsb_Dev, 0 ), \

Request, RequestType, Value,Index, TransferBuffer, TransferBufferLength, \

CONTROL_TIMEOUT_JIFFIES);

message : s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0out 5ec20000 cc 5 –> status -62

來源:drivers/usb/host/ohci-q.c : dl_done_list() –> dl_reverse_done_list() –> ed_halted()

誰呼叫RTUSB_VendorRequest

RTUSBReadMACRegister

RTUSBWriteMACRegister

廣告

Make a Comment

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

5 回應 to “ASUS WL-167G (USB WLAN Adapter) For ARM Linux”

RSS Feed for All About My Life Comments RSS Feed

ps

記得check rootfs裡面的modules.dep

Hello, I’ve big trouble in establish the
ASUS’ wireless card wl-167g , I hope you can help me in some issue.

I just want to drive the card in a fedora enviroment,but I’m a begginer of Linux.

So I got confused in some instructions
which was written in “Read Me"

Here is the problem:
(I promise I’ve searched for the anwser with google for hours ,but in vain.)

The instruction in step6 to step7:
# !!!check if it is a binary file before loading!!!

I’ve checked rt73sta.dat,but it’s ASCII
code.I just can’t find the command which transfers the file to binary code the guidance requires.

The problem is urgent to me…
Please teach me step by step.

I will thank you to death.

Here I’;; show you the “Readme".
* README
*
* Ralink Tech Inc.
*
* http://www.ralinktech.com
*

=======================================================================
ModelName:
===========
RT73(RT2571W) Wireless Lan Linux Driver

=======================================================================
Driver lName:
===========
rt73

=======================================================================
Supporting Kernel:
===================
linux kernel 2.4 and 2.6 series.
Tested in Redhat 7.3 or later.

=======================================================================
Description:
=============
This is a linux device driver for Ralink RT73 a/b/g WLAN Card.

=======================================================================
Contents:
=============
Makefile.4 : Makefile for kernel 2.4 series
Makefile.6 : Makefile for kernel 2.6 series
*.c : c files
*.h : header files

=======================================================================
Features:
==========
This driver implements basic IEEE802.11. Infrastructure and adhoc mode
with open or shared or WPA-PSK or WPA2-PSK authentication method.
NONE, WEP, TKIP and AES encryption.

=======================================================================
Build Instructions:
====================

change the directory to be written!!!

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

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

=======================================================================
CONFIGURATION:
====================
RT73 driver can be configured via following interfaces,
i.e. (i)"iwconfig" command, (ii)"iwpriv" command, (iii) configuration file
(iv)RaConfig

i) iwconfig comes with kernel.
ii) iwpriv usage, please refer to file “iwpriv_usage.txt" for details.
iii)copy configuration file “rt73sta.dat" to /etc/Wireless/RT73STA/rt73sta.dat.
iv) RaConfig is utility for rt73.

Note:

Configuration File : rt73sta.dat
—————————————
# Copy this file to /etc/Wireless/RT73STA/rt73sta.dat
# This file is a binary file and will be read on loading rt.o module.
#
# Use “vi -b rt73sta.dat" to modify settings according to your need.
#
# 1.) set NetworkType to “Adhoc" for using Adhoc-mode, otherwise using Infrastructure
# 2.) set Channel to “0″ for auto-select on Infrastructure mode
# 3.) set SSID for connecting to your Accss-point.
# 4.) AuthMode can be “WEPAUTO", “OPEN", “SHARED", “WPAPSK", “WPA2PSK", “WPANONE"
# 5.) EncrypType can be “NONE", “WEP", “TKIP", “AES"
# for more information refer to the Readme file.
#
# The word of “[Default]" must not be removed
[Default]
CountryRegion=0
CountryRegionABand=7
WirelessMode=0
SSID=AP350
NetworkType=Infra
Channel=0
AuthMode=OPEN
EncrypType=NONE
DefaultKeyID=1
Key1Type=0
Key1Str=0123456789
Key2Type=0
Key2Str=
Key3Type=0
Key3Str=
Key4Type=0
Key4Str=
WPAPSK=abcdefghijklmnopqrstuvwxyz
TxBurst=0
PktAggregate=0
TurboRate=0
WmmCapable=0
AckPolicy=0;0;0;0
BGProtection=0
IEEE80211H=0
TxRate=0
RTSThreshold=2347
FragThreshold=2346
PSMode=CAM
TxPreamble=0
AdhocOfdm=0
FastRoaming=0
RoamThreshold=70

———————————————–
syntax is ‘Param’=’Value’ and describes below.

1. CountryRegion=value
value
0: use 1 ~ 11 Channel
1: use 1 ~ 13 Channel
2: use 10, 11 Channel
3: use 10 ~ 13 Channel
4: use 14 Channel
5: use 1 ~ 14 Channel
6: use 3 ~ 9 Channel
7: use 5 ~ 13 Channel

2. CountryRegionABand=value
value
0: use 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165 Channel
1: use 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140 Channel
2: use 36, 40, 44, 48, 52, 56, 60, 64 Channel
3: use 52, 56, 60, 64, 149, 153, 157, 161 Channel
4: use 149, 153, 157, 161, 165 Channel
5: use 149, 153, 157, 161 Channel
6: use 36, 40, 44, 48 Channel
7: use 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165 Channel
8: use 52, 56, 60, 64 Channel
9: use 34, 38, 42, 46 Channel
10: use 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 60, 64 Channel

3. SSID=value
value
0~z, 1~32 ascii characters.

4. WirelessMode=value
value
0: 11b/g mixed,
1: 11b only,
2: 11a only, //Support in RfIcType=1(id=RFIC_5226) or RfIcType=3(id=RFIC_5225)
3: 11a/b/g mixed, //Support in RfIcType=1(id=RFIC_5226) or RfIcType=3(id=RFIC_5225)
4: 11g only

5. TxRate=value
value
0: Auto //WirelessMode=0~4
1: 1 Mbps //WirelessMode=0 or 1 or 3
2: 2 Mbps //WirelessMode=0 or 1 or 3
3: 5.5 Mbps //WirelessMode=0 or 1 or 3
4: 11 Mbps //WirelessMode=0 or 1 or 3
5: 6 Mbps //WirelessMode=0 or 2 or 3 or 4
6: 9 Mbps //WirelessMode=0 or 2 or 3 or 4
7: 12 Mbps //WirelessMode=0 or 2 or 3 or 4
8: 18 Mbps //WirelessMode=0 or 2 or 3 or 4
9: 24 Mbps //WirelessMode=0 or 2 or 3 or 4
10: 36 Mbps //WirelessMode=0 or 2 or 3 or 4
11: 48 Mbps //WirelessMode=0 or 2 or 3 or 4
12: 54 Mbps //WirelessMode=0 or 2 or 3 or 4

6. Channel=value
value
depends on CountryRegion or CountryRegionABand

7. BGProtection=value
value
0: Auto
1: Always on
2: Always off

8. TxPreamble=value
value
0: Preamble Long
1: Preamble Short
2: Auto

9. RTSThreshold=value
value
1~2347

10. FragThreshold=value
value
256~2346

11. TxBurst=value
value
0: Disable
1: Enable

12. NetworkType=value
value
Infra: infrastructure mode
Adhoc: adhoc mode

13. AdhocOfdm=value
value
0: WIFI mode (1,2,5.5,11 mbps rates)
1: b/g mixed, (1,2,5.5,11,6,9,12,18,24,36,48,54 mbps rates)
2: 11g only, (6,9,12,18,24,36,48,54 mbps rates)
3: 11a only, (6,9,12,18,24,36,48,54 mbps rates)

14. AuthMode=value
value
OPEN For open system
SHARED For shared key system
WEPAUTO Auto switch between OPEN and SHARED
WPAPSK For WPA pre-shared key (Infra)
WPA2PSK For WPA2 pre-shared key (Infra)
WPANONE For WPA pre-shared key (Adhoc)
WPA Use WPA-Supplicant
WPA2 Use WPA-Supplicant

15. EncrypType=value
value
NONE For AuthMode=OPEN
WEP For AuthMode=OPEN or SHARED
TKIP For AuthMode=WPAPSK or WPA2PSK or WPANONE
AES For AuthMode=WPAPSK or WPA2PSK or WPANONE

16. DefaultKeyID=value
value
1~4

17. Key1=value
Key2=value
Key3=value
Key4=value
value
10 or 26 hexadecimal characters eg: 012345678
5 or 13 ascii characters eg: passd
(usage : “iwpriv" only)

18. Key1Type=vaule
Key2Type=value
Key3Type=vaule
Key4Type=vaule
value
0 hexadecimal type
1 assic type
(usage : reading profile only)

19. Key1Str=value
Key2Str=value
Key3Str=vaule
Key4Str=vaule
value
10 or 26 characters (key type=0)
5 or 13 characters (key type=1)
(usage : reading profile only)

20. WPAPSK=value
value
8~63 ASCII or
64 HEX characters

21. PSMode=value
value
0: CAM Constantly Awake Mode
1: Max_PSP Max Power Savings
2: Fast_PSP Power Save Mode

22. IEEE80211H=value
value
0: Disable
1: Enable Spectrum management
(This field can be enable only in A band)

23. FastRoaming=value
value
0: Disable
1: Enable Fast Roaming

24. RoamThreshold=value
vale
61 ~ 89

This value is a absolute threshold in dBm.
The condition to roam when receiving Rssi less than (-1*value).

// //////////////////////
// No Support !!!
// /////////////////////
// PktAggregate,
// TurboRate,
// WmmCapable,
// AckPolicy
// /////////////////////

MORE INFORMATION
=================================================================================
If you want for rt73 driver to auto-load at boot time:
A) choose rausb0 for first RT73 WLAN card, rausb1 for second RT73 WLAN card, etc.

B) create(edit) ‘ifcfg-rausb0′ file in /etc/sysconfig/network-scripts/,
edit( or add the line) in /etc/modules.conf:
alias rausb0 rt73

C) edit(create) the file /etc/sysconfig/network-scripts/ifcfg-rausb0
DEVICE=’rausb0′
ONBOOT=’yes’

NOTE:
if you use dhcp, add this line too .
BOOTPROTO=’dhcp’

*D) To ease the Default Gateway setting,
add the line
GATEWAY=x.x.x.x
in /etc/sysconfig/network

請問這個問題後來有找出原因了嗎? 謝謝


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...

%d 位部落客按了讚: