Raspberry Pi 3에는 무선랜이 기본 탑재라서 WiFi 설정을 해 보았다. 설정 중에 겪은 몇 가지 문제점과 설정 방법을 여기서 다뤄보려고 한다.
무선랜 장치 조회
아래와 같이 iwconfig 명령을 실행해보면 기본 탑재된 무선랜 장치는 wlan0임을 알 수 있다.
pi@raspberrypi:/home $ iwconfig
lo no wireless extensions.
wlan0 IEEE 802.11 ESSID:"shanpark"
Mode:Managed Frequency:2.447 GHz Access Point: 64:E5:99:A3:6F:2C
Bit Rate=72.2 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=68/70 Signal level=-42 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
eth0 no wireless extensions.
무선 네트워크 검색
sudo iwlist wlan0 scan 명령을 실행하면 검색된 무선 네트워크 리스트가 여러 개 출력된다.
pi@raspberrypi:/home $ sudo iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 64:E5:99:A3:6F:2C
Channel:8
Frequency:2.447 GHz (Channel 8)
Quality=70/70 Signal level=-40 dBm
Encryption key:on
ESSID:"wlanessid"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=0000000000000000
Extra: Last beacon: 30ms ago
IE: Unknown: 00087368616E7061726B
IE: Unknown: 010882848B960C121824
IE: Unknown: 030108
IE: Unknown: 2A0100
IE: Unknown: 32043048606C
IE: Unknown: 2D1A6E181EFFFF0000000000000000000000000000
IE: Unknown: 3D1608050000000000000000000000000
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: DD180050F2020101800003A4000027A40062322F00
...
출력된 여러 값들 중에 ESSID 값을 보면 자신이 연결할 무선 네트워크가 검색되는 지 확인할 수 있다. 여러 번 시도해보고 검색이 되지 않으면 연결이 안된다는 뜻이므로 검색이 되도록 무선 공유기를 확인해보거나 환경을 다시 한 번 체크할 필요가 있다.
여기서 별 문제가 없더라도 검색이 안되는 문제의 원인으로 두 가지를 설명하고자 한다.
첫 번째로 raspi-config를 실행해서 Localisation Options 메뉴에서 Wi-fi Country 설정을 하지 않도록 한다. 이것을 설정하지 않아도 아무 문제가 없는데 설정을 하면 무선 네트워크 검색이 되지 않는다. 하나도 검색이 안된다면 이 문제일 가능성이 있다. 만약 이 경우라면 /etc/wpa_supplicant/wpa_supplicant.conf 파일의 맨 첫 줄에 자신이 지정한 나라의 코드 값이 보일 것이다. 첫 줄을 삭제하고 리부팅 후 다시 검색을 시도해보면 검색 결과가 출력될 것이다.
두 번째로 특정 무선 네트워크가 검색이 안된다면 그 무선 네트워크의 channel이 12 또는 13인지 확인해보자. R Pi의 펌웨어에 문제가 있어서 channel 12 또는 13으로 설정된 무선 네트워크는 검색이 되지 않는다. 자신의 무선 네트워크가 검색이 되지 않으면 channel 값이 1 ~ 11 인지 확인해보고 아니라면 1 ~ 11 사이의 값으로 설정하도록 한다.
무선 네트워크 설정 검색된 무선 네트워크 설정을 위한 설정값을 wpa_passphrase 명령으로 만든다. 아래 명령에서 wlanessid는 ESSID값을, password는 무선 네트워크의 패스워드를 넣고 명령을 실행하면된다.
pi@raspberrypi:/home $ wpa_passphrase wlanessid password
network={
ssid="wlanessid"
#psk="password"
psk=8b784be81fb45f16ff506fde4013f50c018f832dec02810541d490aae9ab0b7a
}
명령을 실행하고나서 화면에 출력되는 값, 즉 network={....}을 /etc/wpa_supplicant/wpa_supplicant.conf 파일의 끝에 넣어주면 설정은 끝이다. 여기서 #psk=xxxx 라인은 주석이므로 제거해도 된다. 비밀번호가 직접 보이는 건 보안상 좋지 않으므로 반드시 제거하는 걸 추천한다.
참고로 최종 설정된 /etc/wpa_supplicant/wpa_supplicant.conf 파일의 내용을 보면 일반적으로 아래와 같다.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="wlanessid"
psk=8b784be81fb45f16ff506fde4013f50c018f832dec02810541d490aae9ab0b7a
}
무선 네트워크 연결 확인 대충 설정이 다 됐다면 속편하게 리부팅을 하고 터미널에서 ifconfig 명령을 실행해보자. 정상적으로 연결이 되었다면 wlan0 장치에 ip 주소가 설정되어있을 것이다.
pi@raspberrypi:/home $ ifconfig
eth0 ...
lo ...
wlan0 Link encap:Ethernet HWaddr b8:27:eb:ed:00:88
inet addr:192.168.0.33 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::dcce:1d4e:75e0:afb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9236 errors:0 dropped:0 overruns:0 frame:0
TX packets:563 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:999226 (975.8 KiB) TX bytes:44396 (43.3 KiB)
ip 주소가 할당되었다면 정상적으로 설정된 것이다. 이제 랜선을 뽑아도 된다.
고정 IP는 아래와 같이 하면 된다
sudo vi /etc/dhcpcd.conf 명령어로 /etc/dhcpcd.conf 파일을 열어줍니다.
맨 아래에
interface wlan0
static ip_address=" "
static routers=" "
를 입력해주시면 됩니다.
(wlan0: 무선, eth0: 유선)
ip_address에는 ifconfig에서 확인한 inet을,
routers에는 ip_address에서 마지막만 1로 바꿔서 입력해주시면 됩니다.
아래 명령어를 통해 networking service를 재시작해줍니다.
sudo /etc/init.d/networking restart
마지막으로 라즈베리파이를 재시작해줍니다!