๐ก ๋ณธ ๋ฌธ์๋ 'Install Ubuntu 20.04 on a Raspberry Pi 4' ํฌ์คํ ์ ๋ฐํ์ผ๋ก ์์ฑํ ๊ธ์ด๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
์ถ๊ฐ๋ก ํด๋น ๋ด์ฉ์ ํตํด MacOS์์ Raspberry Pi 4์ Ubuntu Server 20.04๋ฅผ ์ค์นํ ์ ์์ผ๋ฉฐ, ์ธํ ์ ํ์ง ์๊ณ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ ์๊ฒฉ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค.
1. What you'll need
- A microSD card (4GB minimum, 8GB recommended)
- A Raspberry Pi 4
- A micro-USB power cable (USB-C for the Pi 4)
- A microSD card Reader
์์ ๋ค ๊ฐ์ง ๋ถํ์ด ์ค๋น๊ฐ ๋์๋ค๋ฉด, microSD์นด๋์ ubuntu๋ฅผ ๊ตฝ๊ธฐ ์ํด Rasberry Pi Imager๋ฅผ ์ค์นํ๋ค.
์ ๋งํฌ์์ ์ง์ ๋ค์ด๋ก๋ํด๋ ์๊ด์์ผ๋, brew๋ฅผ ์ด์ฉํ์ฌ ํฐ๋ฏธ๋๋ก ์ค์นํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
brew install --cask raspberry-pi-imager
๋ง์ฝ์ homebrew๊ฐ ์ค์น๋์ง ์์ ์ํ๋ผ๋ฉด homebrew๋ฅผ ๋จผ์ ์ค์นํ๋ค.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Flash Ubuntu image into a micro SD card
๋ค์ ๊ณผ์ ์ ์นด๋ ๋ฆฌ๋๊ธฐ์ microSD์นด๋๋ฅผ ์ฅ์ฐฉ ํ ์ปดํจํฐ์ ์ฐ๊ฒฐํ ์ํ๋ฅผ ๊ฐ์ ํ๊ณ ์๋ค.
microSD์นด๋์ ์ฐ๋ถํฌ ์ด๋ฏธ์ง๋ฅผ ๊ตฝ๊ธฐ ์ํด Raspberry Pi Imager๋ฅผ ์คํํ๋ค.
CHOOSE OS๋ฅผ ๋๋ฌ ์ฐ๋ฆฌ๊ฐ ์ค์นํ ์ฐ๋ถํฌ๋ฅผ ์ ํ.
ํด๋น ์ํํธ์จ์ด์์ ์ฌ๋ฌ๊ฐ์ง ๋ฒ์ ์ ์ ๊ณตํด์ฃผ๊ณ ์๋๋ฐ, ๋๋ Ubuntu Server 20.04.5 LTS(64-bit)๋ฅผ ์ ํํ๋ค.
๊ทธ๋ฆฌ๊ณ Desktop๊ณผ Server๋ก ๋๋์ด์ ธ์๋๋ฐ, ํญ์ ssh๋ก ์ ์ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Server๋ฅผ ์ ํํ๋ค. Server๋ ๊ธฐ๋ณธ์ ์ผ๋ก GUI๋ฅผ ์ ๊ณตํ์ง ์๋๋ค. ํ์ง๋ง Server ๋ฒ์ ์ผ๋ก ์ฐ๋ถํฌ๋ฅผ ์ค์นํ๋๋ผ๋ ์ถํ์ Desktop ํ๊ฒฝ์ ์ถ๊ฐ๋ก ์ค์นํ ์ ์๋ค.
๋ค์ CHOOSE STORAGE๋ฅผ ๋๋ฌ ์ปดํจํฐ์ ๊ฝ์ microSD์นด๋๋ฅผ ์ ํ. ์ดํ WRITE๋ฅผ ๋๋ฌ ์ค์น๋ฅผ ์์.
์ค์น๊ฐ ์๋ฃ๋๋ฉด ๋ฆฌ๋๊ธฐ๊ฐ ๋ฐ๋ก ์ปดํจํฐ์์ Eject๋ ์ํ๊ฐ ๋๋๋ฐ ๋คํธ์ํฌ ์ค์ ์ ์ํด ๋ค์ ์ปดํจํฐ์ ์ฐ๊ฒฐํด์ค๋ค.
3. Setup Wi-Fi and ssh for your Raspberry Pi 4 without a monitor
์ง๊ธ๋ถํด ํฐ๋ฏธ๋์์ ๋คํธ์ํฌ ์ค์ ์ ์งํํ๋ค.
nano /Volumes/system-boot/network-config
์ด๊ธฐ network-config ์ํ.
# This file contains a netplan-compatible configuration which cloud-init
# will apply on first-boot. Please refer to the cloud-init documentation and
# the netplan reference for full details:
#
# https://cloudinit.readthedocs.io/
# https://netplan.io/reference
#
# Some additional examples are commented out below
version: 2
ethernets:
eth0:
dhcp4: true
optional: true
#wifis:
# wlan0:
# dhcp4: true
# optional: true
# access-points:
# myhomewifi:
# password: "S3kr1t"
# myworkwifi:
# password: "correct battery horse staple"
# workssid:
# auth:
# key-management: eap
# method: peap
# identity: "me@example.com"
# password: "passw0rd"
# ca-certificate: /etc/my_ca.pem
์ปดํจํฐ์ ์ฐ๊ฒฐ๋์ด ์๋ ๋คํธ์ํฌ์ ๋์ผํ ๋คํธ์ํฌ์ ์ด๋ฆ๊ณผ ํจ์ค์๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํด์ค๋ค. ๋ค์ฌ์ฐ๊ธฐ ๊ณต๋ฐฑ์ ํญ์ ํญ์ด ์๋ space ๋๋ฒ์ผ๋ก ์ ๋ ฅํด์ผ ํ๋ค.
version: 2
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"my-router-name":
password: "wifi password here in plain text"
"some-other-router":
password: "plain-text-password"
"Public Hotspot With No Password": {}
ssh ์ ์์ ์ํด ๋ฐ๋ก ์์ ํ ๊ฒ์ ์๊ณ user-data์ ๋ค์๊ณผ ๊ฐ์ด ์ ์์ ์ผ๋ก ์ ์ฅ๋์ด ์๋์ง ํ์ธํ๋ค.
$ nano /Volumes/system-boot/user-data
...
# On first boot, set the (default) ubuntu user's password to "ubuntu" and
# expire user passwords
chpasswd:
expire: true
list:
- ubuntu:ubuntu
# Enable password authentication with the SSH daemon
ssh_pwauth: true
...
4. Find the Pi’s IP address
๋จผ์ Raspberry Pi 4๋ฅผ ๋ถํ ํ๊ธฐ ์ ์, IP List๋ฅผ ํ์ธํ ์ ์๋ ํ๊ฒฝ์ ๋จผ์ ๋ง๋ค์ด์ค๋ค.
๋จผ์ ์ธํฐ๋ท ์ฐฝ์ http://192.168.0.1 ์ ๋ ฅํด ๊ณต์ ๊ธฐ์ ์ ์.
๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ ํ, ๊ด๋ฆฌ๋๊ตฌ -> ๊ณ ๊ธ ์ค์ -> ๋ด๋ถ ๋คํธ์ํฌ ์ค์ ์ ๋ค์ด๊ฐ๊ฒ ๋๋ฉด, ํ์ฌ ๊ณต์ ๊ธฐ์ ์ ์๋์ด ์๋ ๋จ๋ง๊ธฐ์ IP๋ฅผ ํ์ธํ ์ ์๋ค.
5. Ubuntu 20.04 boot on Raspberry Pi 4
๋ชจ๋ ์ธํ ์ด ๋๋ฌ๊ธฐ ๋๋ฌธ์ microSD์นด๋๋ฅผ ์ปดํจํฐ์์ ์ ๊ฑฐ ํ Raspberry Pi 4์ ์ฅ์ฐฉํด์ค๋ค. ์ด๋ microSD๋ฅผ ์ฅ์ฐฉํ ํ์ Power๋ฅผ ์ฐ๊ฒฐํ๋ค. Power๋ฅผ ์ฐ๊ฒฐ ํ green LED๊ฐ ๊น๋นก๊ฑฐ๋ ค์ผ ์ ์์ ์ผ๋ก ๋ถํ ๋๊ณ ์๋ ๊ฒ์ด๋ค. ๋ถํ ์ด ๋๊ณ ๋๋ฉด ์์์ ์ค์ ํ๋ ๋คํธ์ํฌ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋์ผ๋ก ๋คํธ์ํฌ์ ์ ์๋๋ค.
์ฃผ์! ์ฒซ ๋ถํ ์์, IP๊ฐ ํ์ธ๋์ง ์์ ์ ์๋ค. ๋ค์ ๋งํด, ๋คํธ์ํฌ์ ์ ์์ ์ผ๋ก ์ฐ๊ฒฐ์ด ์๋ ์ ์๋๋ฐ ์ด ๊ฒฝ์ฐ์๋ 2๋ถ ์ ๋ ๊ธฐ๋ค๋ ธ๋ค๊ฐ Raspberry Pi 4์ Power๋ฅผ ๊ป๋ค ์ผ์ค๋ค. ์ฌ๋ถํ ํ์ ๋คํธ์ํฌ์ ์ ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด IP๋ฅผ ํ์ธํ ์ ์๋ค.
6. ssh connection to the Raspberry Pi 4
ํ์ฌ Raspberry Pi 4์ hostname๊ณผ username์ ubuntu๋ก ์ค์ ๋์ด ์๋ค.
์ฒซ ssh ์ ์ ์์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ๋์ค๋ฉด yes๋ฅผ ์ ๋ ฅ.
$ ssh ubuntu@[IP of Raspberry Pi 4]
The authenticity of host '192.168.x.x (192.168.x.x)' can't be established.
ECDSA key fingerprint is SHA256:rNDFgv1H3GqIhNPJ7wYI5963+/vbob2HOY1W4FekG/0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
๋ค์ ์ ๋น๋ฐ๋ฒํธ๊น์ง ์ ๋ ฅํด์ฃผ๊ณ ๋๋ฉด, Ubuntu๊ฐ ์ค์น๋ Raspberry Pi 4๋ฅผ ์ฌ์ฉํ ์ค๋น๊ฐ ๋๋๋ค.
์ฐธ๊ณ
- [Blog] Install Ubuntu 22.04 on Raspberry Pi 4 (without a monitor): https://roboticsbackend.com/install-ubuntu-on-raspberry-pi-without-monitor/
- [Blog] Install Ubuntu 20.04 on a Raspberry Pi 4: https://ai-sinq.tistory.com/entry/Install-Ubuntu-on-a-Raspberry-Pi-4
- [Github] Setup Ubuntu 20.04 Server with WiFi, mysql, Apache and phpMyadmin: https://gist.github.com/stemy72/9d92c729382cf1fdc593c5004534c082