2011년 9월 22일 목요일

삼성 S3C64X0 계열 프로세서에서 RaLink RT3070 USB Wireless 사용하기

http://www.aesop.or.kr/?document_srl=279782

처음 USB 타입 무선랜 사용하면서 설정 방법을 적어 봅니다.



제가 한 방법이 가장 좋은 방법이라고는 할수 없습니다.



저 또한 초보자 이기때문에 일단은 동작하는것 까지만 한것이니 참조용으로 보시면 됍니다.



1. 처음 하실일은 http://www.ralink.com.tw/support.php?s=2 에서 linux Driver (STA)를 다운받습니다.



2. 작업 하실 디렉토리에 압축 파일을 풀어 줍니다.



3. 압축 푸시면 "DPO_RT3070_LinuxSTA_V2.3.0.2_20100412" 이라는 디렉토리가 생성됍니다.



4. DPO_RT3070_LinuxSTA_V2.3.0.2_20100412 디렉토리에서 "Makefile" 파일을 오픈 합니다.



참 파일 오픈시는 root 계정으로 하시길 바랍니다.



"Makefile"에서

라인 18번

PLATFORM = PC ==> #PLATFORM = PC 변경.

라인 36번

# PLATFORM = SMDK ==> PLATFORM = SMDK 변경.



라인 186번

ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung
CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
endif

내용 아래와 같이

ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /work/S3C6410/kernel/linux-2.6.29
CROSS_COMPILE = arm-s3c6410-linux-gnueabi-
endif



"LINUX_SRC" 과"CROSS_COMPILE"는 각자의 환경에 맞게 설정 하셔야 합니다.



5. "DPO_RT3070_LinuxSTA_V2.3.0.2_20100412\os\linux" 디렉토리에서 "rt_linux.c" 파일을 오픈 합니다.



ULONG RTDebugLevel = RT_DEBUG_ERROR;

MODULE_LICENSE("GPL"); <== 추가 부분...
#ifdef RTMP_MAC_USB
#ifdef OS_ABL_SUPPORT
MODULE_LICENSE("GPL");
#endif // OS_ABL_SUPPORT //
#endif // RTMP_MAC_USB //



설정에서 OSABL = NO ==> OSABL = YES로 하면 LICENSE부분이 해결 돼나 다른 문제가 발생하길래

그냥 위와 같이 추가 하였습니다.

만약 MODULE_LICENSE("GPL"); 부분을 추가 안하시면 묘듈을 올리때 문제가 발생합니다.



6. 이제 make 를 합니다.



make를 완료하면"tftpboot" 디렉토리에 "rt3070sta.ko" 파일이 카피됍니다.

"rt3070sta.ko" 파일을 타겟 rootfilesystem 에 카피 합니다.



7. 이제 타겟 rootfilesystem에 "/etc" 디렉토리에 "Wireless\RT2870STA" 디렉토리를 만들어 줍니다.

그럼 "/etc/Wireless\RT2870STA" 에 "DPO_RT3070_LinuxSTA_V2.3.0.2_20100412"디렉토리에 있는

RT2870STA.dat 파일을 카피 합니다.



8. 이제 커널 부분에 설정을 할 차례입니다.



이부분은 "WiFi Setting" 문서를 참조 하시길 바랍니다.



9. 커널과 램디스크를 컴파일후 타겟에 올리고 부팅 합니다.



10. 처음 으로 insmod rt3070sta.ko 실행 합니다.



[root@linux app]$ insmod rt3070sta.ko

rtusb init --->


=== pAd = c8132000, size = 500624 ===

<-- RTMPAllocAdapterBlock, Status=0
ra0 (usb): not using net_device_ops yet
usbcore: registered new interface driver rt2870



11. 다음 Ip address 설정 입니다.

[root@linux app]$ ifconfig ra0 192.168.123.161 up
<-- RTMPAllocTxRxRingMemory, Status=0
-->RTUSBVenderReset
<--RTUSBVenderReset
Key1Str is Invalid key length(0) or Type(0)
Key2Str is Invalid key length(0) or Type(0)
Key3Str is Invalid key length(0) or Type(0)
Key4Str is Invalid key length(0) or Type(0)
1. Phy Mode = 5
2. Phy Mode = 5
NVM is Efuse and its size =2d[2d0-2fc]
3. Phy Mode = 9
RTMPSetPhyMode: channel is out of range, use first channel=1
MCS Set = ff 00 00 00 01
<==== rt28xx_init, Status=0
0x1300 = 00064300



12. 주변 무선랜 환경을 확인 합니다.

[root@linux app]$ iwlist ra0 scan
===>rt_ioctl_giwscan. 3(3) BSS returned, data->length = 333
ra0 Scan completed :
Cell 01 - Address: 00:0E:E8:E2:9E:C7
Protocol:802.11b/g
ESSID:"iptime"
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality:26/100 Signal level:-79 dBm Noise level:-84 dBm
Encryption key:off
Bit Rates:54 Mb/s
Cell 02 - Address: 00:40:5A:44:C7:12
Protocol:802.11b/g
ESSID:"myLGNet"
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality:13/100 Signal level:-85 dBm Noise level:-80 dBm
Encryption key:on
Bit Rates:54 Mb/s
Cell 03 - Address: 00:40:5A:44:C7:11
Protocol:802.11b/g
ESSID:""
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality:13/100 Signal level:-85 dBm Noise level:-80 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK



13. 무선랜 환경을 설정합니다.

[root@linux app]$ iwconfig ra0 essid "iptime"



14. 이제 ping를 함 때려 봅니다. 나오겠징 ㅠㅠㅠ~~~~~

[root@linux app]$ ping 192.169.123.1
PING 192.169.123.1 (192.169.123.1): 56 data bytes

--- 192.169.123.1 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss



아 이상하네요 환경은 잡히지만 ping은 어디갔나 ㅠㅠ

만약 여기서 ping이 돼시는분은 유선랜 케이블을 제거해보세요

유선 랜이 연결돼있으면 ping은 됍니다.



15. 유선랜 케이블을 제가 확인후 ping 테스트 합니다.

만약 안돼시면

[root@linux app]$ ifconfig eth0 down

유선랜 콘트롤러을 사용안하게 합니다.

[root@linux app]$ ping 192.168.123.1
PING 192.168.123.1 (192.168.123.1): 56 data bytes
64 bytes from 192.168.123.1: seq=0 ttl=128 time=7.904 ms
64 bytes from 192.168.123.1: seq=1 ttl=128 time=1.365 ms



여기까지 간단(?) 하게 RT3070 USB 무선랜 설정을 적봡습니다.



다른분 자료만 보다가 직접쓰려는 여러가지 너무 미흡한게 많네요



그리고 유선/무선을 동시에 사용하는 방법 아직 제가 하지를 못했습니다.



혹 아시는분은 방법좀 공유 해주시면 고맙겟습니다.

댓글 1개:

  1. 7번의 결과로 s3c-6410보드에는 rt2870sta.ko와 RT2870STA.dat가 저장되었습니다. 그 다음 8번부터 이해가 안되는게.. 갑자기 커널과 램디크를 컴파일 해서 타겟에 올리라구 하셨는데 왜 굳이 이미 보드에는 올라가 있는 커널롸 램디스크를 또 올려야 하는지요?

    답글삭제