(주)인시그널
Linaro Project
ArndaleBoard.org
OrigenBoard.org
K.E.L.P(Korea Embedded Linux Project

포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 1GB 입니다.

안녕하세요

제가 이번에 ralink chip을 사용한 무선 USB dongle을 이솝보드에 연결해서 동작을 확인했습니다.
USB-host가 1.1 인 관계로 802.11g 카드를 802.11b로 downgrade 했습니다.ㅡㅡ;

컴파일만 하면 802.11b 이지만 동작은 매우 안정적입니다. 제가 6시간 동작을 시켰는데 Ping lost(ping 192.168.123.100 -t -l 60000)도 거의없고 괜찮습니다.

보안은 WEP만 테스트했습니다. HOST가 USB1.1인 관계로 WPA-Supplicant쪽은 테스트 포기했습니다.

아래글부터 존칭은생략합니다.

무선 USB dongle chip : ralink RT2571WF


준비물
1. 국내에서 판매하는 무선 USB dongle : LANstory54G, Unicorn TW-54g
2. 디바이스 드라이버 : RT73_Linux_STA_Drv1.0.4.0.tar.gz (http://www.ralinktech.com/ralink/Home/Support/Linux.html)
3. 이솝보드
4. 커널 : 3차 배포 커널 (/korea-dokdo/aesop2440-2613-123board)

포팅 작업
1. 아래와 같이 rt_config.h 파일을 수정한다.

#if 0
#define PROFILE_PATH                "/etc/Wireless/RT73STA/rt73sta.dat"
#define NIC_DEVICE_NAME             "RT73STA"
#define RT2573_IMAGE_FILE_NAME      "/etc/Wireless/RT73STA/rt73.bin"
#define RALINK_PASSPHRASE           "Ralink"
#define DRIVER_VERSION                          "1.0.4.0"
#endif

#define PROFILE_PATH                "/home/rt73sta.dat"
#define NIC_DEVICE_NAME             "RT73STA"
#define RT2573_IMAGE_FILE_NAME      "/home/rt73.bin"
#define RALINK_PASSPHRASE           "Ralink"
#define DRIVER_VERSION                          "1.0.4.0"

무선 칩이 동작하기 위해서 모듈을 올릴때(insmod rt73.ko) 바이너리 파일(rt73.bin)을 읽어올 디렉토리 변경을 위해서
NFS로 마운트를 하는 것이니 각자 원하는 위치로 수정하면 됨

2. Make 파일 수정 ( kelp에 나라스타일님이 올려놓은 Makefile을 약간 수정 )

######################################################################
#       Module Name: Makefile
#       Abstract: Makefile for rt73 linux driver on kernel series 2.6
######################################################################
CC := arm-linux-gcc
LD := arm-linux-ld

KERNDIR=/korea-dokdo/aesop2440-2613-123board
KERNEL_SOURCES := $(KERNDIR)

MODULE_NAME := rt73

obj-m := rt73.o

$(MODULE_NAME)-objs :=  rtmp_main.o mlme.o connect.o rtusb_bulk.o rtusb_io.o
                        sync.o assoc.o auth.o auth_rsp.o rtusb_data.o
                        rtmp_init.o  sanity.o rtmp_wep.o rtmp_info.o
                        rtmp_tkip.o wpa.o md5.o

ifdef TOPDIR
obj-m += $(MODULE_NAME).o
endif

EXTRA_CFLAGS += -I$(src)
EXTRA_CFLAGS += -DAGGREGATION_SUPPORT -DWMM_SUPPORT

src ?= .
obj ?= .

MODULE_OBJECT := $(MODULE_NAME).ko
MODULE_CONF := /etc/modprobe.conf

KBUILD_PARAMS := -C $(KERNEL_SOURCES) SUBDIRS=$(CURDIR) $(KERNEL_OUTPUT)

arm:
        @$(MAKE) $(KBUILD_PARAMS) 'EXTRA_CFLAGS=-mstructure-size-boundary=8 -I$(src)' modules;
        /usr/local/arm/oe/bin/arm-linux-strip -S rt73.ko
        cp -f rt73.ko /nfs/

clean:
        rm -rf *.o *~ .*.cmd *.ko *.mod.c .tmp_versions built-in.o
#############################################################################
그대로 적용

3. 컴파일

4. 드라이버에 포함된 README 파일을 참조하여 rt73sta.dat 파일 수정

5. rt73.ko, rt73.bin(바이너리파일), rt73sta.dat 들을 사용할 nfsroot 디렉토리에 복사

6. 동작확인^^


실제동작 예)
root@godori:/home# lsmod
Module                  Size  Used by    Not tainted
rt73 248824 0 - Live 0xbf000000
root@godori:/home# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:3E:26:0A:5B  
          inet addr:192.168.0.186  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10448 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8023 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5199917 (4.9 MiB)  TX bytes:1245770 (1.1 MiB)
          Interrupt:53 Base address:0x4300 DMA chan:ff

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

rausb0    Link encap:Ethernet  HWaddr 00:0E:E8:E3:65:CC  
          inet addr:192.168.123.55  Bcast:192.168.123.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:216775 errors:0 dropped:113756 overruns:113756 frame:113756
          TX packets:201443 errors:0 dropped:5 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:293706655 (280.0 MiB)  TX bytes:297563326 (283.7 MiB)

root@godori:/home#
root@godori:/home#
root@godori:/home#
root@godori:/home#
root@godori:/home#
root@godori:/home#
root@godori:/home#
root@godori:/home#
root@godori:/home#
root@godori:/home# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

rausb0    RT73 WLAN  ESSID:"Hank_Mimo"  
          Mode:Managed  Frequency=2.432 GHz  Access Point: 00:50:18:52:74:AA  
          Bit Rate=11 Mb/s  
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality:149/100  Signal level:-255 dBm  Noise level:-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

root@godori:/home#
root@godori:/home#
root@godori:/home#
root@godori:/home# ping -s 1024 192.168.123.254
PING 192.168.123.254 (192.168.123.254): 1024 data bytes
1032 bytes from 192.168.123.254: icmp_seq=0 ttl=64 time=8.0 ms
1032 bytes from 192.168.123.254: icmp_seq=1 ttl=64 time=7.5 ms
1032 bytes from 192.168.123.254: icmp_seq=2 ttl=64 time=7.9 ms
--- 192.168.123.254 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 7.5/7.8/8.0 ms

정확한무선 속도 측정은 iperf 로 테스트하여 결과 올리겠습니다.

글중 잘못되거나 궁금하신 내용 있으시면 덧글 올려주세요...

안녕하세요...

이것저것 하고 있는 개발자입니다.

잘부탁드립니다.

엮인글 :
http://www.aesop.or.kr/38273/959/trackback

[레벨:3]이재훈

2007.09.13 07:06:39
*.101.240.203

오호^^
해보고 싶었던 부분이었는데.. 이렇게 잘 정리해서 올려주시니 너무나 감사하네요...

[레벨:12]고도리

2007.09.13 09:27:53
*.70.26.87

엥....언제 올라왔어요?......^^

요즘 정신없어서 게시판 확인도 못하고 있네용.....이궁.

재밌는 정보가 또 올라와서 술김이지만(지금 술안깬 상태라....ㅎㅎ) 기분이 무쟈게 좋네요.

[레벨:1]양재석

2007.09.13 11:22:01
*.140.215.185

드뎌 완료하셨군요...ㅋㅋ
수고하셨어용....

[레벨:1]이영재

2007.09.13 13:37:44
*.153.213.204

본래일은 아직 진행중이에요...EHCI host controller 버그 같은데..도통..애거..

헤매고 있어용..ㅡㅡ;

[레벨:10]이제현

2007.09.13 14:13:03
*.41.109.34

부트로더에 OHCI를 올려서 무선으로 NFS부팅이 되면 참 좋겠다는 생각이 듭니다.
선없는 세상에 살고시포라...


멋진 자료 공유 감사합니다.

[레벨:15]고현철

2007.09.13 14:32:24
*.70.26.87

부트로더에 올려볼까요?........^^

[레벨:1]박현진

2007.09.14 14:26:17
*.105.36.195

초보라 먼말인지 몰라도 정말 대단한거 같습니다...
난 언제 이렇게 해보나....

[레벨:1]박기호

2007.09.19 18:10:06
*.9.167.62

혹시 커널+램디스크 조합으로 부팅한 후에 usb동글을 통해 nfs mount를 하시는 분은

mount -t nfs -o nolock,tcp xxx.xxx.xxx.xxx:/aesop/rootfs /mnt/

위와 같은 방법으로 하세요. mount가 기본적으로 udp를 쓰기 때문에 약간 용량이 되는 파일을 카피할때는(nfs to ramdisk) 먹통이 되는 경우가 있습니다.
이때는 위처럼 tcp를 쓰시면 잘 되더군요..^^

파죽지세

2007.10.20 09:13:27
*.238.251.226

Intersil Prism3.0 USB Dongle W.LAN Card필요하시면 말씀하세요.
Prism chip과 관련된 리눅스 드라이버는 많이 open되어 있습니다.
016-718-7019
List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인