안녕하세요
제가 이번에 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 로 테스트하여 결과 올리겠습니다.
글중 잘못되거나 궁금하신 내용 있으시면 덧글 올려주세요...
해보고 싶었던 부분이었는데.. 이렇게 잘 정리해서 올려주시니 너무나 감사하네요...