기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
board : MEP6410
kernel : 2.6.21
wifi : RT3072 USB
안녕하세요?
현재 Ralink RT3072 USB Dongle을 board에 붙여 WLAN 기능을 구현하고 있습니다.
제가 해보려고 하는 것은
RT3072를 이용해 주변 AP 를 검색하고, 이중 하나를 선택해 IP를 얻어와 인터넷을 사용하고자 합니다.
iwlist ra0 scan 명령을 통해 내가 접속하고자 하는 AP를 확인한 후 iwconfig ra0 essid "rfmuller"까진 했습니다.
그다음 IP를 얻어오고 싶은데 dhcp를 어떻게 사용해야 하는 건가요?
http://wirelessdefence.org/Contents/LinuxWirelessCommands.htm 에 문서 내용을 보니
Connecting to an OPEN / WEP WLAN (Manual IP Setup) 2가지 방법이 있는데
첫번째 DHCP 방법으로 하고자 할때 dhclient 명령어가 없어서 udhcpc ra0로 해봤는데
udhcpc (v1.14.0) started
udhcpc: socket: Address family not supported by protocol
란 메세지가 나오네요. dhclient ra0로 해야 IP가 할당되는 건가요?
그래서 그다음 그럼 Manual IP Setup을 해보고자 하는데 궁금한 점이 아래와 같이 처리할때
ifconfig [interface] [IP address] netmask [subnetmask]
route add default gw [IP of default gateway] (Configure your default gateway; usually the IP of the Access Point)
echo nameserver [IP address of DNS server] >> /etc/resolve.conf (Configure your DNS server)
여기서 IP address는 어떤것을 말하는 건가요?
지금 공유기를 사용하고 있고 아래와 같이 설정하고 있는데 위에서 말하는 IP address는 접속하고자 하는 AP가 할당하는 고정 IP를 말하는 건가요? (아는 것이 없어서 죄송합니다.)
gatewayip = 192.168.1.1
netmask = 255.255.255.0
ipaddr = 192.168.1.104 => Target eth0
serverip = 192.168.1.103 => Linux Host (ubuntu)
그리고 마지막 질문 하나만 더 드리자면
최종적으로 WLAN이 제대로 동작되는지 검증할려면
ping www.google.com 이런식으로 한후 공유기의 WAN 포트를 뽑은후에도 ping이 제대로 되면 확인 되는건가요?
아래는 제가 처리한 내용입니다. 확인 부탁드립니다.
root@mep6410:/# insmod rt3070sta.ko
rtusb init --->
=== pAd = c881a000, size = 500544 ===
<-- RTMPAllocAdapterBlock, Status=0
usbcore: registered new interface driver rt2870
root@mep6410:/# ifconfig ra0 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 ff 00 00 01
<==== rt28xx_init, Status=0
0x1300 = 00064300
root@mep6410:/# iwlist ra0 scan
===>rt_ioctl_giwscan. 7(7) BSS returned, data->length = 874
ra0 Scan completed :
~~~
~~~
Cell 07 - Address: 00:02:A8:C6:29:85
Protocol:802.11b/g
ESSID:"rfmuller"
Mode:Managed
Frequency:2.462 GHz (Channel 11)
Quality:100/100 Signal level:-43 dBm Noise level:-92 dBm
Encryption key:off
Bit Rates:54 Mb/s
root@mep6410:/# iwconfig ra0 essid "rfmuller"
root@mep6410:/# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
eth1 no wireless extensions.
ra0 Ralink STA ESSID:"rfmuller" Nickname:"RT2870STA"
Mode:Managed Frequency=2.462 GHz Access Point: 00:02:A8:C6:29:85
Bit Rate=54 Mb/s
RTS thr:off Fragment thr:off
Encryption key:off
Link Quality=100/100 Signal level:-43 dBm Noise level:-63 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
root@mep6410:/# udhcpc ra0
udhcpc (v1.14.0) started
udhcpc: socket: Address family not supported by protocol
root@mep6410:/#
root@mep6410:/#
udhcpc 명령을 통해 ip를 할당받기는 하는 것 같은데 할당받은 IP를 설정한 후 ping을 해보면 ra0로 동작하지 않네요.
처음엔 되는 줄 알았는데 eth0 LAN을 뽑으면 ping이 중단되는 것으로 보아 eth0로 ping을 쏘네요.
어떻게 설정해야 하나요?
도움 부탁드립니다.
root@mep6410:/# iwconfig ra0 essid "rfmuller"
root@mep6410:/# udhcpc -i ra0
udhcpc (v1.14.0) started
Sending discover...
Sending select for 192.168.123.185...
Lease of 192.168.123.185 obtained, lease time 86400 //IP가 자동으로 셋팅될줄알았는데 안 되네요.
root@mep6410:/# ifconfig -a
ra0 Link encap:Ethernet HWaddr 00:0C:43:31:93:26
UP BROADCAST RUNNING MULTICAST MTU:1500 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:1000
RX bytes:164991 (161.1 KiB) TX bytes:6612 (6.4 KiB)
root@mep6410:/# ifconfig ra0 192.168.123.185 up //자동으로 셋팅되지 않아 여기서 설정해주었습니다.
root@mep6410:/# ifconfig -a
ra0 Link encap:Ethernet HWaddr 00:0C:43:31:93:26
inet addr:192.168.123.185 Bcast:192.168.123.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 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:1000
RX bytes:570067 (556.7 KiB) TX bytes:7212 (7.0 KiB)
root@mep6410:/# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
eth1 no wireless extensions.
ra0 Ralink STA ESSID:"rfmuller" Nickname:"RT2870STA"
Mode:Managed Frequency=2.462 GHz Access Point: 00:02:A8:C6:29:85
Bit Rate=54 Mb/s
RTS thr:off Fragment thr:off
Encryption key:off
Link Quality=100/100 Signal level:-41 dBm Noise level:-63 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
root@mep6410:/# ping www.google.com //여기서 PING을 쏘고
PING www.google.com (72.14.203.99): 56 data bytes
64 bytes from 72.14.203.99: seq=0 ttl=49 time=89.930 ms
64 bytes from 72.14.203.99: seq=1 ttl=49 time=68.079 ms
eth0: link down // eth0을 뽑았을 경우 바로 중지되네요
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 //다시 꼽으면 살구요
64 bytes from 72.14.203.99: seq=12 ttl=49 time=102.048 ms
64 bytes from 72.14.203.99: seq=13 ttl=49 time=86.605 ms
도움 부탁드립니다.
kernel에 DHCP가 사용가능하도록 설정되어 컴파일되지 않은 것 같습니다. kernel 설정을 확인해 보세요.
Networking support -> Networking options -> Packet socket<*> 과 같은 화면에 DHCP support[*] 입니다.