Raspberry Pi, Ubuntu 환경에서 Wi-Fi 연결이 되지 않는 경우
컴퓨터/Linux

Raspberry Pi, Ubuntu 환경에서 Wi-Fi 연결이 되지 않는 경우

이전에 라즈베리 파이에 네트워크 설정하는 방법을 정리했습니다 (아래 링크 참조).

2020/03/23 - [컴퓨터/Embedded] - Raspberry pi에 Ubuntu 설치 및 Wi-Fi 설정하기

 

Raspberry pi에 Ubuntu 설치 및 Wi-Fi 설정하기

라즈베리 파이 에서 라즈비안(Raspbian)이 아닌 우분투를 설치하여 와이파이 연결까지 하는 방법 정리 - 필자는 Raspberry Pi 4 사용하며 이에 맞춰 작성했습니다. 아래 방법으로 진행하여도 Wi-Fi 연결이 되지 않..

vanilet.tistory.com

위 방법대로 Wi-Fi를 설정한 이후, Wi-Fi 연결이 되지 않는 경우 해결하는 방법입니다.

- 라즈베리 파이 4에서 확인되었지만, 라즈베리파이 2, 3에서도 발생할것이라 생각됩니다.

- 이더넷 연결 (유선 인터넷) 연결 필요.


1. Wi-Fi 전용 Backend로 NetworkManager 사용하기

- netplan은 기본값으로 systemd-networkd를 사용합니다.

- 하지만, netplan을 이용해서 Wi-Fi를 설정하는 경우 networkd가 아닌 NetworkManager를 사용하게 됩니다.

- Raspberry Pi에 설치한 Ubuntu에는 NetworkManager가 설치되어 있지 않습니다.

- 그래서 아래와 같은 추가적인 작업이 필요합니다.

1-1. NetworkManager 설치하기

 - Root 권한으로 실행

root@ubuntu:/home/ubuntu# apt install network-manager
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  crda iputils-arping iw libbluetooth3 libgudev-1.0-0 libjansson4 libmbim-glib4 libmbim-proxy libmm-glib0 libndp0 libnm0
  libqmi-glib5 libqmi-proxy libteamdctl0 modemmanager network-manager-pptp ppp pptp-linux usb-modeswitch
  usb-modeswitch-data wireless-regdb
Suggested packages:
  avahi-autoipd libteam-utils comgt wvdial
The following NEW packages will be installed:
  crda iputils-arping iw libbluetooth3 libgudev-1.0-0 libjansson4 libmbim-glib4 libmbim-proxy libmm-glib0 libndp0 libnm0
  libqmi-glib5 libqmi-proxy libteamdctl0 modemmanager network-manager network-manager-pptp ppp pptp-linux usb-modeswitch
  usb-modeswitch-data wireless-regdb
0 upgraded, 22 newly installed, 0 to remove and 29 not upgraded.
Need to get 3461 kB of archives.
After this operation, 15.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main arm64 wireless-regdb all 2018.05.09-0ubuntu1~18.04.1 [11.1 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 iw arm64 4.14-0.1 [67.7 kB]
...
Processing triggers for systemd (237-3ubuntu10.33) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for dbus (1.12.2-1ubuntu1.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
ureadahead will be reprofiled on next reboot
Processing triggers for libc-bin (2.27-3ubuntu1) ...
root@ubuntu:/home/ubuntu# 

1-2. netplan 설정파일 확인하기(*.yaml)

 - Root 권한으로 실행

root@ubuntu:/home/ubuntu# cd /etc/netplan/
root@ubuntu:/etc/netplan# ls -l
total 4
-rw-r--r-- 1 root root 593 Mar 23 09:58 50-cloud-init.yaml
root@ubuntu:/etc/netplan# vim 50-cloud-init.yaml 

1-3. *.yaml 파일 설정 변경하기

- 이전 설정파일에 아래 설정을 추가합니다.

- wlan0 하위에 renderer: NetworkManager 추가

 - Root 권한으로 실행

...
network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
    wifis:
        wlan0:
            renderer: NetworkManager
            dhcp4: true
            optional: true
            access-points:
                "SSID":
                    password: "PASSWORD"
    version: 2
...

1-4. netplan 설정 적용하기

root@ubuntu:/etc/netplan# netplan generate
root@ubuntu:/etc/netplan# netplan apply
root@ubuntu:/etc/netplan# 

2. Wi-Fi 국가 설정이 다른 경우

- 국내 유통되는 대부분 공유기는 Wi-Fi 국가가 한국으로 설정되어있습니다.

- 국가별로 Wi-Fi에 사용되는 무선 주파수 대역 및 주파수 별 세부 요구사항이 달라 올바른 설정이 필요합니다. (일부 채널은 전 세계 공통)

2-1. Wi-Fi 공유기의 지역 설정 확인하기

- 아래 그림처럼 iptime의 5Ghz에 설정되어있는 지역은 대한민국입니다.

2-2. Raspberry pi에 Wi-Fi 관련 명령을 적용하기 위한 iw 패키지 설치 (NetworkManager가 설치되어있다면 같이 설치되어 있으므로, 이 단계는 넘어갑니다.)

 - Root 권한으로 실행

root@ubuntu:/home/ubuntu# apt install iw
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libiw30
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  crda wireless-regdb
The following NEW packages will be installed:
  crda iw wireless-regdb
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 141 kB of archives.
After this operation, 521 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main arm64 wireless-regdb all 2018.05.09-0ubuntu1~18.04.1 [11.1 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 iw arm64 4.14-0.1 [67.7 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 crda arm64 3.18-1build1 [62.7 kB]
Fetched 141 kB in 1s (104 kB/s)
Selecting previously unselected package wireless-regdb.
(Reading database ... 96409 files and directories currently installed.)
Preparing to unpack .../wireless-regdb_2018.05.09-0ubuntu1~18.04.1_all.deb ...
Unpacking wireless-regdb (2018.05.09-0ubuntu1~18.04.1) ...
Selecting previously unselected package iw.
Preparing to unpack .../archives/iw_4.14-0.1_arm64.deb ...
Unpacking iw (4.14-0.1) ...
Selecting previously unselected package crda.
Preparing to unpack .../crda_3.18-1build1_arm64.deb ...
Unpacking crda (3.18-1build1) ...
Setting up wireless-regdb (2018.05.09-0ubuntu1~18.04.1) ...
Setting up iw (4.14-0.1) ...
Setting up crda (3.18-1build1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
root@ubuntu:/home/ubuntu# 

2-3. Raspberry pi에 현재 설정된 Wi-Fi 국가 확인하기

- 아래 블록을 확인해보면 Country가 설정되어있지 않습니다.

root@ubuntu:/etc/netplan# iw reg get
global
country 00: DFS-UNSET
	(2402 - 2472 @ 40), (6, 20), (N/A)
	(2457 - 2482 @ 20), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
	(2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN
	(5170 - 5250 @ 80), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
	(5250 - 5330 @ 80), (6, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN
	(5490 - 5730 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN
	(5735 - 5835 @ 80), (6, 20), (N/A), PASSIVE-SCAN
	(57240 - 63720 @ 2160), (N/A, 0), (N/A)

root@ubuntu:/etc/netplan# 

2-4. Raspberry pi에 Wi-Fi 국가를 한국으로 변경하기

 - Root 권한으로 실행

root@ubuntu:/etc/netplan# iw reg set KR
root@ubuntu:/etc/netplan# iw reg get
global
country KR: DFS-JP
	(2402 - 2482 @ 40), (N/A, 13), (N/A)
	(5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW
	(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW
	(5490 - 5710 @ 160), (N/A, 30), (0 ms), DFS
	(5735 - 5835 @ 80), (N/A, 30), (N/A)
	(57000 - 66000 @ 2160), (N/A, 43), (N/A)

root@ubuntu:/etc/netplan# 

2-5. netplan 설정 적용하기 (1-3번 설정파일 이용)

 - Root 권한으로 실행

root@ubuntu:/etc/netplan# netplan generate
root@ubuntu:/etc/netplan# netplan apply
root@ubuntu:/etc/netplan# 

2-6. Wi-Fi 연결 확인

root@ubuntu:/etc/netplan# ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.37  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::dea6:32ff:fe70:f9dd  prefixlen 64  scopeid 0x20<link>
        ether dc:a6:32:70:f9:dd  txqueuelen 1000  (Ethernet)
        RX packets 20  bytes 4966 (4.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 145  bytes 29046 (29.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@ubuntu:/etc/netplan# 

3. Wi-Fi 국가 코드 영구설정

- 2번 방법은, Raspberry pi 전원을 킬 때마다 Wi-Fi 국가 설정이 초기화되어 수동으로 설정을 해 줘야 합니다.

3-1. vim으로 /etc/default/crda 파일 변경

 - Root 권한으로 실행

root@ubuntu:/home/ubuntu# vim /etc/default/crda 

3-2. /etc/default/crda 파일 내용을 아래처럼 수정

...
REGDOMAIN=KR
...

3-3. 재부팅

root@ubuntu:/home/ubuntu# reboot

3-4. Wi-Fi 연결 확인

ubuntu@ubuntu:~$ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.37  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::dea6:32ff:fe70:f9dd  prefixlen 64  scopeid 0x20<link>
        ether dc:a6:32:70:f9:dd  txqueuelen 1000  (Ethernet)
        RX packets 7  bytes 2100 (2.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14  bytes 2064 (2.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ubuntu@ubuntu:~$