저 하늘의 구름처럼~

wireless lan 포팅하기 본문

Embedded System

wireless lan 포팅하기

강백호v 2009. 6. 10. 00:33

타켓 보드 : Aesop6410 보드
무선 랜 : ipTIME G054U-A(Ralink RT2571WF 칩셋,외장안테나)
포팅하기에 앞서 필요한 파일들을 준비를 한다. 무선랜을 포팅하기 위해서는 무선랜 칩셋 드라이버를 깔아야 하는데, ralinktech 사에서 제공하는 최신 버전의 칩셋 드라이버로 구동 하였을 경우,Aesop6410보드 상에서 장치의 인식은 되지만 제대로 동작하지 않아서 그 이전의 버전을 사용하여 컴파일 하였다. 이 버전의 칩셋 드라이버로 포팅 하였다.
http://www.ralinktech.com.tw/data/drivers/2008_0506_RT73_Linux_STA_Drv1.1.0.1.tar.bz2
이 파일과 wireless tool을 다운로드 받는다.
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz

Wireless lan 포팅 방법
1. make menuconfig
2. Device Drivers -> Network devicesupport -> [*]Nework device support -> Wireless LAN (non-hamradio) & Wireless Extensions,[*] Wireless Extension API over RtNetlink  로 활성화 시켜준다.
3. 무선랜 칩셋 드라이버의 Makefile을 수정하여 준다.

 9번 라인의 HAS_RALINK_WPA_SUPPLICANT_SUPPORT=y로 설정하여 준다.(WPASPK 암호화를 사용하기 위해 체크한다.)
(참고)이것은 12번 라인의 HAS_NATIVE_WPA_SUPPLICANT_SUPPORT와 동시에 y로 설정하면 에러가 발생하기 때문에, 둘중에 하나만 y가 되어야 한다.

 38번 라인의 LINUX_SRC 부분을 수정하여 준다.
LINUX_SRC =/lib/module/$ (shell uname -r) /build 를
LINUX_SRC =/opt/linux-2.6.21.5-aesop6410-090320으로 바꾸어 준다.(자신의 타켓보드에 올라갈
커널 소스의 위치로 설정하여 준다.) 
4. rt_config.h 파일을 수정한다.
 #define PROFIL_PATH "etc/Wireless/RT3STA/rt73sta.dat"
 #define RT2573_IMAGE_FILE_NAME "etc/Wire/Wireless/RT3STA/rt73.bin"
 의 정의 값을 실제로 파일들이 위치할 곳에 위치 시켜야 한다. 만약 다른 디렉토리에 이러한 파일들이 존재 한다면 제대로 실행하지 못하고 에러 메시지를 출력 한다.
ex> -RT73-<7>--> Error 2 opening /opt/rt73.bin 이런 식으로 에러 메시지를 출력 한다.
5.make clean && make
6.rt73.bin,rt73.ko, rt73sta.dat이라는 파일이 생성된다.
  rt73.bin은 펌웨어 프로그램이고,rt73.ko는 드라이버 모듈이다. rt73sta.dat 파일은 무선 랜 환경 설정 파일이다. 무선 랜 사용시에 rt73sta.dat 파일의 설정을 알맞게 변경해 주어야 한다.
7. wireless tool의 Makefile을 수정하여 준다.
(변경 전)
12번 줄: CC = arm-linux-gcc
14번 줄: AR = arm-linux-ar
15번 줄:RANLIB = arm-linux-ranlib
(변경 후)
CC = arm-s3c6410-linux-gnueabi-gcc
AR = arm-s3c6410-linux-gnueabi-ar
RANLIB = arm-s3c6410-linux-gnueabi-ranlib
타켓 보드의 컴파일러에 맞게 설정을 바꾸어준다.
8. wireless tool 을 Make clean & make 하여 준다.
9 생성된 iwconfig,iwevent, iwgetid ,iwlist,iwpriv, iwspy, libiw.so.29 파일들을 사용할 경로에 넣어준다.
 
Wirless Lan 사용하기
1. insmod rt73.ko (드라이버 모듈을 적재 한다.lsmod로 모듈 적재 확인이 가능하다.)
2. ifconfig rausb0 up ( 무선랜을 셋팅 한다.)
 root@aESOP-S3C6410:/etc/RT73STA# ifconfig rausb0 up
=> usb_rtusb_open
3. ifconfig lo inet 127.0.0.1 up
4. ifconfig rausb0 192.168.10.1(자신의 아이피) up
5. route add default gw 192.168.1.1 ( route -n 으로 route 설정 확인 가능.)
6. iwconfig rausb0 mode managed ( 무선랜의 네트워크 타입을 managed로 설정한다. )
7. iwlist rausb0 scanning ( 접속 가능한 AP의 리스트를 검색한다. )
장치가 검색되면 다음과 같은 형태로 나타난다.
Cell 27 - Address: 00:02:A8:C2:2F:58
Mode:Managed
ESSID:"iptime"
Channel:11
Encryption key:on
Bit Rates:12 Mb/s
8. rt73sta.dat의 설정 파일을 접속하고자 하는 AP의 channel을 설정한다.(channel을 0으로 설정하면
Auto Select 모드로 동작 한다.)
rt73sta.dat 설정 파일의 예, 굵은 표시가 된 것을 바꾸어 준다. 나머지 설정들의 의미는
첨부되는 readme 파일을 읽어보길 바란다.  
[Default]
CountryRegion=0
CountryRegionABand=7
WirelessMode=0
SSID=AP350
NetworkType=Managed
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
9. ifconfig rausb0 essid "접속할 AP이름"

정상적으로 장치가 잡혔다면 다음과 같이 뜬다.
 root@aESOP-S3C6410:/etc/RT73STA# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

usb0      no wireless extensions.

rausb0    RT73 WLAN  ESSID:"AP 이름"  Nickname:""
          Mode:Managed  Frequency=2.412 GHz  Access Point: 00:11:D8:43:6B:CB
          Bit Rate=54 Mb/s
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality=97/100  Signal level:-42 dBm  Noise level:-79 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

10. ping 날려서 제대로 연결이 되었는지 확인 하여 본다.