Raspberry Pi OS는 한계가 명확합니다.
이전 글에서 설명했듯, Raspberry Pi OS는 깔끔하고 최적화가 잘 되어 있는 OS입니다. 그러나 그 장점은 어디까지나 라즈베리파이를 교육용으로 사용했을 때 유효합니다. 저는 ROS를 사용하기 위해 라즈베리파이를 구입했습니다. 그리고 ROS를 설치해야 했습니다. ROS Wiki에는 Raspberry Pi OS에서도 설치할 수 있다고는 하지만, 알 수 없는 오류로 설치가 수 차례 좌절되면서, 라즈베리파이에 그냥 우분투를 설치하고 우분투 환경에서 ROS를 구동하는 게 더 안정적이겠다 판단해, 우분투를 설치하게 되었습니다.
이번 포스팅에서는 우분투를 설치하는 방법과, 설정 방법에 대해 자세한 설명과 옵션을 함께 포함해 설치해보도록 하겠습니다. 모든 내용은 Windows 10 환경에서 라즈베리파이에 우분투를 microSD 카드에 담아서 부팅한다는 가정 하에 진행되었습니다.
(2020/08/11 최초 작성)
0단계. 파일 준비
우선 Raspberry Pi Imager는 사용하지 않는 걸 권장합니다. 저장소(microSD/USB)에 업로드하는데 시간이 너무 오래 걸립니다. 대신 위의 두 링크를 통해 라즈베리파이에 사용할 우분투 이미지를 다운받고, 와 BalenaEtcher를 다운받으시길 바랍니다. 목적에 맞는 우분투 버전과 아키텍처를 선택해 다운로드 받습니다. 저처럼 ROS를 사용한다면 Melodic 버전을 사용할 수 있는 Ubuntu 18.04 64bit를 추천합니다.
1. 파일을 저장소(microSD)에 Flash하기
BalenaEtcher에서는 Raspberry Pi Imager만큼이나 손쉽게 이미지 파일을 저장소에 Flash할 수 있으며, Raspberry Pi Imager보다 빠르게 진행할 수 있습니다. Raspberry Pi Imager가 20-30분정도 소요되는 데 비해, BalenaEtcher는 5분이면 충분합니다.
* Ubuntu를 USB, SSD에 설치한다면 부팅이 되지 않습니다. USB, SSD에 우분투를 설치하실 분은 아래 포스팅을 참조하기 바랍니다. |
2. 추가적인 옵션 진행하기(선택사항)
아래 옵션은 원하는 경우 진행하며, 아닐 경우 그냥 다음 단계로 넘어가도 됩니다. 옵션 진행을 위해서는 Flash가 끝난 후 저장소를 뽑았다 다시 꼽아서 system-boot 혹은 boot라는 이름의 저장소가 윈도우에서 인식 된 우 진행합니다.
- ssh 접근할 수 있도록 설정
이미지를 Flash한 저장소 루트 폴더에 ssh 라는 파일 하나를 만듭니다. 파일을 만드는 방법은 여러 가지가 있습니다.
1. 저장소 루트 경로에서 cmd 창을 연 후 echo >ssh 입력
2. 빈 txt 저장소 루트 폴더에 옮기고 이름 변경 (ex : ***.txt --> ssh) - wifi 세팅
저장소 루트 폴더 보면 network-config가 있습니다. 그걸 notepad++로 엽니다. 그리고 아래 형식에 맞춥니다. 여기서 wifi 세팅을 하면 초기 부팅시 wifi에 연결할 수 있습니다. 되도록 그냥 아래에 작성한 것을 복사해서 network-config에 붙여넣고 ssid, password부분만 수정하기 바랍니다. 부팅시 띄어쓰기같은 거 민감하게 보기 때문입니다.
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"ssid":
password: "password"
- 오버클럭
config.txt 파일을 열어서 아래의 구문을 추가합니다. 오버클럭에 관한 자세한 정보는 아래 링크를 통해 확인할 수 있습니다.
over_voltage=4
arm_freq=2000 #CPU Overclock
gpu_freq=600 #GPU Overclock
3. 최초 로그인
Ubuntu Server 20.04 LTS tty1
Login :
처음 부팅이 진행될때 라즈베리파이는 인터넷 연결을 확인합니다. 2. 에서 wifi 세팅을 했다지만 초기에는 되도록이면 이더넷 연결을 권장합니다. 연결이 안되어있다면 다음 과정으로 안넘어가기 때문입니다. 연결이 확인되었다면 CLI 환경에서 위와 같은 글자가 뜹니다. 초기 id/pw는 모두 ubuntu로 동일합니다. 그런데 이 때, ID, PW 칸에 모두 ubuntu를 입력했음에도 Login Incorrect 문구가 뜨면서 로그인이 안됩니다. 단순히 자격증명 관련된게 설치되기 전에 로그인하라는 창이 떠서 로그인을 해도 안되는 겁니다. 이 때는 SSH로 접속해도 계속 permission denied/refused 의 이유로 접속이 안됩니다. 당황할 필요 없이 그냥 조금 천천히 기다렸다 로그인하면 됩니다. 그래도 안된다면, 수 차례 재부팅을 해봅니다. 그러다보면 로그인이 됩니다.
4. wifi 설정(선택사항)
sudo apt-get install network-manager
sudo nmtui
wifi를 쓰고싶은데 부팅 과정에서 wifi를 못잡아 진행이 안되었던 분이라면 위의 명령어를 통해 network-manager를 설치하고, nmtui를 열어 wifi와 연결하기 바랍니다. 일단 한 번 연결되면, 그 뒤부턴 큰 탈 없이 wifi를 이용할 수 있습니다.
5. desktop 설정(필수에 가까운 선택사항)
sudo apt-get update
sudo apt-get upgrade
# 아래서부터 원하는 타입의 gui를 선택합니다.
sudo apt-get install ubuntu-desktop # 추천
sudo apt-get install --no-install-recommends ubuntu-desktop # 필수적인 프로그램만 설치 시
sudo apt-get install lubuntu-desktop
우리는 지금까지 설치한 Ubuntu Server는 OS 구동에 필요한 최소의 툴만 설치되어 있습니다. 따라서 GUI 환경을 제공하지 않습니다. 로그인 후에 Bash 쉘이 뜨는 게 정상입니다. 그게 부팅이 완료되어 사용 준비 가능하다는 뜻입니다. 그렇지만 보통 생각하는 것처럼 웹브라우저를 띄우고 하려면 GUI 인터페이스를 설치해야합니다. 우분투에서 사용 가능한 GUI로는 ubuntu-desktop(Gnome), ubuntu MATE, lubuntu, xubuntu, kubuntu정도 있으며,개인적으로는 ubuntu-desktop이나 ubuntu MATE를 추천합니다. lubuntu는 가볍긴 하지만 뭔가 낯설어서 영 정이 가지 않았습니다. 참고로 이것들을 설치하는데 시간이 굉장히 오래 걸리니 (정확하진 않지만 3시간정도 걸리며, 쉘에서는 예상시간을 6시간,12시간까지 표시했었습니다.) 유념하시기 바랍니다.
6. It Works!
이제 하고 싶은 걸 라즈베리파이에 올려서 하시면 됩니다. 한 가지 알아둬야할 게 있다면, 라즈베리파이(armhf)는 일반 pc(amd64)와 기반이 다릅니다. 따라서 기존에 사용하던 프로그램이 라즈베리파이에서는 돌아가지 않을 수 있으니 armhf 호환 여부를 확인해야합니다.
글이 도움이 되셨다면 왼쪽 아래의 공감버튼과 광고 클릭 부탁드립니다. 고마움을 표현할 수 있는 가장 쉬운 방법입니다.
감사합니다.