메인 콘텐츠로 건너뛰기

4장 아두이노 UNO Q 리눅스 OS 새 이미지 플래싱 가이드

로버트
로버트
조회수 9

생성형 AI 도구를 활용하여 작성 및 편집된 노트입니다.

다시 보는 Arduino Uno Q

개요

Arduino UNO Q 보드는 리눅스 운영체제(OS)가 기본으로 설치된 싱글보드 컴퓨터형 아두이노 보드입니다. 평소에는 이 OS가 자동으로 업데이트되기 때문에 사용자가 직접 OS 이미지를 다시 설치(플래싱)할 필요는 거의 없습니다.

Generated Image

다만 시스템을 완전히 초기화하거나, 설정이 꼬이거나, 파일 시스템이 손상된 경우에는 "새 이미지 플래싱"을 통해 깨끗한 상태로 되돌릴 수 있습니다. 이때 Arduino Flasher CLI라는 전용 도구를 사용해 인터넷에서 최신 OS 이미지를 내려받고, 이를 UNO Q에 다시 기록합니다.

이 과정은 보드 내부 저장소를 완전히 지우기 때문에, 기존에 저장해 둔 파일·환경 설정은 모두 삭제됩니다. 따라서 플래싱은 "공장 초기화" 수준의 작업이라는 점을 이해하고, 꼭 필요할 때만 진행해야 합니다.

강사과정 모집 -> 아두이노 강의 | Arduino Uno로 배우는 임베디드 개발 | Arduino Uno Club

UNO Q 리눅스 OS 재설치의 목적과 주의사항

UNO Q의 리눅스 OS는 기본적으로 자동 업데이트를 받으므로, 단순히 "최신 버전으로 만들기"를 위해 플래싱할 필요는 없습니다. 새 이미지 플래싱이 필요한 상황은 주로 시스템이 크게 망가졌거나, 여러 실험으로 설정이 복잡하게 꼬여 "처음 상태로 돌리고 싶을 때"입니다.

플래싱 과정에서는 보드 내부 저장소가 완전히 초기화됩니다. 이미 저장된 사용자 데이터, 설정 파일, 추가로 설치한 패키지 등은 모두 지워지므로, 필요한 데이터는 플래싱 전에 반드시 다른 곳에 백업해야 합니다.

또한 플래싱 도중에 전원이 끊기거나 USB 케이블이 빠지면, OS가 중간 상태로 남아 보드가 부팅되지 않을 위험이 있습니다. 따라서 안정적인 전원과 신뢰할 수 있는 USB‑C 케이블, 그리고 진행 중에는 컴퓨터가 절전 모드에 들어가지 않도록 하는 것이 중요합니다.

준비물 정리

하드웨어 준비물

UNO Q에 새 OS 이미지를 플래싱하려면 다음과 같은 하드웨어가 필요합니다.

  • Arduino UNO Q 보드

  • USB‑C 케이블 1개 (데이터 전송이 가능한 케이블)

  • 암‑암(female‑to‑female) 점퍼 와이어 1개

점퍼 와이어는 보드의 특정 두 핀을 일시적으로 서로 연결(쇼트)해서, UNO Q를 "플래싱 모드"로 진입시키는 데 사용됩니다. 이 핀 위치는 공식 문서의 그림에 표시되어 있으므로, 실제 작업 시에는 해당 다이어그램을 반드시 함께 확인해야 합니다.

소프트웨어 준비물

소프트웨어 측에서는 다음 항목이 필요합니다.

  • Arduino Flasher CLI

  • 최소 10 GB 이상의 여유 디스크 공간

  • 안정적인 인터넷 연결

Arduino Flasher CLI는 UNO Q용 리눅스 OS 이미지를 온라인에서 내려받아, 보드에 직접 기록해 주는 전용 도구입니다. OS 이미지는 1 GB가 넘는 큰 파일이기 때문에, 다운로드 및 임시 파일 저장을 위해 디스크에 충분한 여유 공간(10 GB 이상)을 확보하는 것이 좋습니다.

또한 플래싱 과정 전체가 인터넷 다운로드에 의존하므로, 중간에 끊기지 않는 비교적 안정적인 네트워크 환경에서 작업하는 것이 안전합니다.

Arduino Flasher CLI 다운로드 및 설치

Arduino Flasher CLI는 사용 중인 운영체제(맥, 윈도우, 리눅스)에 맞는 바이너리 파일을 내려받아, 압축을 풀고 터미널(또는 명령 프롬프트)에서 실행하는 방식으로 사용합니다. 이 도구는 GUI 프로그램처럼 아이콘을 더블클릭해 쓰는 것이 아니라, 명령줄에서 옵션을 붙여 실행하는 도구라는 점이 핵심입니다.

일반적인 흐름은 다음과 같습니다.

  1. 아두이노 공식 문서/다운로드 페이지에서 자신의 OS에 맞는 Arduino Flasher CLI 압축 파일을 다운로드한다.

  2. 다운로드한 파일의 압축을 풀면 arduino-flasher-cli라는 실행 파일(또는 exe)이 들어 있는 폴더가 생긴다.

  3. 터미널(또는 명령 프롬프트)을 열고, cd 명령으로 해당 폴더로 이동한다.

  4. 테스트 실행을 통해 도구가 정상적으로 작동하는지 확인한다.

macOS에서 설치 및 동작 확인

  1. 다운로드한 arduino-flasher-cli-x.x.x-darwin-arm64와 같은 이름의 압축 파일을 더블클릭하여 압축을 풉니다.

  2. "터미널"을 실행한 뒤, 압축을 푼 폴더로 이동합니다. 예를 들어 '다운로드' 폴더에 있다면:

    cd ~/Downloads/arduino-flasher-cli-x.x.x-darwin-arm64
  3. 필요하다면 실행 권한을 부여합니다.

    chmod +x arduino-flasher-cli
  4. 도구가 정상 설치됐는지 테스트합니다.

    ./arduino-flasher-cli

    이때 사용법(도움말)이 출력되면 정상입니다. 별다른 에러 없이 옵션 목록이나 도움말이 보이면 준비가 끝난 것입니다.

macOS에서는 arduino-flasher-cli 파일을 Finder에서 직접 더블클릭해 실행하면, 보안 경고나 "실행할 수 없음"과 같은 팝업만 뜨고 제대로 동작하지 않습니다. 반드시 터미널에서 명령으로 실행해야 합니다.

Windows에서 설치 및 동작 확인

  1. 다운로드한 Arduino Flasher CLI 압축 파일을 압축 해제합니다.

  2. "명령 프롬프트"나 "PowerShell"을 실행한 뒤, 압축을 푼 폴더로 이동합니다.

    cd C:Users사용자이름Downloadsarduino-flasher-cli-x.x.x-windows
  3. 다음과 같이 도구를 실행해 봅니다.

    arduino-flasher-cli
  4. 처음 실행할 때는 새 창이 뜨면서 드라이버 설치를 요구할 수 있습니다. 이 경우 안내에 따라 드라이버를 설치한 다음, 다시 arduino-flasher-cli를 실행합니다.

  5. 도구의 사용법이 표시되고, 에러 없이 종료된다면 정상적으로 준비가 된 것입니다.

Linux에서 설치 및 동작 확인

  1. 터미널에서 다운로드한 파일의 압축을 풉니다(파일 관리자를 써도 괜찮습니다).

  2. 압축을 푼 폴더로 이동합니다.

    cd ~/Downloads/arduino-flasher-cli-x.x.x-linux
  3. 실행 권한을 부여합니다.

    chmod +x arduino-flasher-cli
  4. 테스트 실행:

    ./arduino-flasher-cli

도움말이나 사용법이 출력되면 도구가 제대로 설치된 것입니다. 다만 일부 리눅스 환경에서는 이 도구로 실제 플래싱을 진행할 때 qcserial 커널 모듈 때문에 마지막 단계에서 에러가 발생할 수 있어, 별도의 조치가 필요합니다(아래 섹션 참고).

리눅스에서 qcserial 커널 모듈로 인한 플래싱 오류와 해결

일부 리눅스 시스템에서는 qcserial이라는 커널 모듈이 UNO Q가 연결된 USB 시리얼 포트를 먼저 잡아버려, Arduino Flasher CLI가 플래싱 직전에 에러를 내고 종료하는 경우가 있습니다. 이 문제는 qcserial 모듈을 "블랙리스트"에 등록해 자동 로드를 막는 방식으로 해결할 수 있습니다.

1. qcserial 모듈이 로드되어 있는지 확인

터미널에서 다음 명령을 실행합니다.

lsmod | grep qcserial

여기에서 qcserial, usb_wwan, usbserial과 같은 이름이 함께 표시된다면 qcserial 모듈이 로드되어 있는 상태입니다.

이어 sudo dmesg를 실행해, 로그에 qcserialttyUSB0 같은 포트를 점유하고 있다는 메시지가 있는지 확인합니다.

sudo dmesg

출력 내용 중에 qcserial 관련 메시지가 보이고 UNO Q가 연결된 포트(예: ttyUSB0)를 잡고 있다면, 플래싱 시 충돌이 발생할 가능성이 높습니다.

2. qcserial 모듈 블랙리스트에 등록

이 문제를 해결하기 위해 /etc/modprobe.d/ 디렉터리에 blacklist-modem.conf라는 설정 파일을 만들거나 수정하여 qcserial을 블랙리스트 처리합니다.

  1. 설정 파일을 엽니다(없으면 새로 생성됩니다).

    sudo nano /etc/modprobe.d/blacklist-modem.conf
  2. 파일 안에 다음 한 줄을 추가합니다.

    blacklist qcserial
  3. 파일을 저장하고 에디터를 종료합니다.

3. 시스템 재부팅

설정이 적용되도록 시스템을 재부팅합니다.

sudo reboot

재부팅 후에는 qcserial 모듈이 자동으로 로드되지 않으므로, UNO Q에 연결된 USB 포트를 Arduino Flasher CLI가 직접 사용할 수 있고, 플래싱 도중 발생하던 오류도 해결됩니다.

하드웨어 준비: 보드를 플래싱 모드로 전환

실제 플래싱을 시작하기 전에 UNO Q 보드를 "플래싱 모드"로 전환해야 합니다. 이 모드는 보드가 일반적으로 리눅스 OS를 부팅하는 대신, 플래셔 도구가 펌웨어/이미지를 기록할 수 있도록 준비된 상태입니다.

준비 순서는 다음과 같습니다.

  1. 보드 전원 분리 우선 UNO Q를 컴퓨터에서 분리하여, 보드에 전원이 공급되지 않도록 합니다.

  2. 점퍼 와이어로 두 핀 쇼트 암‑암 점퍼 와이어를 사용해 UNO Q의 특정 두 핀을 서로 연결합니다. 이 두 핀은 공식 문서의 그림에 "Short the two pins"와 같이 표시되어 있으며, 이 핀들을 쇼트하면 보드가 플래싱 모드로 진입하게 됩니다. 실제 작업 시에는 UNO Q 튜토리얼의 해당 이미지를 반드시 참고하여, 정확한 위치의 핀을 연결해야 합니다.

이 상태(두 핀이 쇼트된 상태)에서 USB‑C 케이블을 다시 연결해 보드에 전원을 공급하면, UNO Q는 OS 부팅 대신 플래싱 모드로 들어가게 됩니다. 플래싱이 끝날 때까지 점퍼는 그대로 유지합니다.

새 리눅스 OS 이미지 플래싱 절차 (Arduino Flasher CLI 사용)

하드웨어와 도구 준비가 끝났다면, 이제 실제로 새 OS 이미지를 보드에 플래싱할 수 있습니다. 전체 흐름은 "USB 연결 → CLI 폴더 이동 → 플래싱 명령 실행 → 전원 재연결" 순서입니다.

1. 보드를 컴퓨터에 연결

점퍼로 두 핀을 이미 쇼트한 상태에서, UNO Q를 USB‑C 케이블로 컴퓨터에 연결합니다. 이때 보드는 플래싱 모드로 진입해야 하므로, 연결 직전에 쇼트가 되어 있어야 합니다.

2. Arduino Flasher CLI가 있는 폴더로 이동

터미널(또는 명령 프롬프트)을 열고, Arduino Flasher CLI 실행 파일이 있는 디렉터리로 이동합니다. 보통은 '다운로드(Downloads)' 폴더 아래에 있습니다.

예시(맥/리눅스):

cd ~/Downloads/arduino-flasher-cli-x.x.x-darwin-arm64

윈도우 예시:

cd C:Users사용자이름Downloadsarduino-flasher-cli-x.x.x-windows

중요한 점은, 플래싱 명령을 실행할 때의 "현재 디렉터리"가 Arduino Flasher CLI 실행 파일이 있는 폴더여야 한다는 것입니다.

3. 플래싱 명령 실행

이제 아래와 같이 플래싱 명령을 실행합니다.

맥·리눅스에서:

./arduino-flasher-cli flash latest

윈도우에서:

arduino-flasher-cli flash latest

여기서 flash는 보드에 이미지를 플래싱하겠다는 의미이고, latest는 Arduino Flasher CLI가 인터넷에서 최신 버전의 UNO Q OS 이미지를 자동으로 선택해 다운로드하라는 옵션입니다.

명령을 실행하면 다음과 같이 진행됩니다.

  1. CLI가 인터넷에 접속하여 UNO Q용 최신 리눅스 이미지를 다운로드한다(1 GB 이상).

  2. 다운로드가 완료되면, 자동으로 UNO Q 보드에 이미지를 기록(플래싱)한다.

  3. 모든 작업이 끝나면 "성공"을 알리는 메시지가 출력된다.

이 과정은 네트워크 속도와 컴퓨터 성능에 따라 다르지만, 여러 분이 걸릴 수 있습니다. 플래싱이 진행되는 동안에는 절대로 USB 케이블을 뽑거나, 컴퓨터를 끄거나, 절전 모드에 들어가게 하면 안 됩니다.

4. 플래싱 완료 후 전원 재연결(파워 사이클)

Arduino Flasher CLI가 플래싱 성공을 보고하면, 다음 순서로 마무리합니다.

  1. UNO Q의 USB‑C 케이블을 뽑아 보드의 전원을 완전히 끕니다.

  2. 플래싱 모드에 사용했던 점퍼 와이어를 제거하여, 두 핀의 쇼트를 해제합니다.

  3. USB‑C 케이블을 다시 연결해 보드에 전원을 공급합니다.

이제 UNO Q는 새로 설치된 리눅스 OS로 부팅을 시작합니다. 첫 부팅은 내부 설정이나 확장 파일 시스템 초기화 등의 이유로 평소보다 시간이 조금 더 걸릴 수 있습니다.

플래싱 시 자주 발생하는 문제와 해결 체크리스트

도구가 실행되지 않거나 "명령을 찾을 수 없음" 오류

  • Arduino Flasher CLI 압축을 제대로 풀었는지 확인합니다.

  • 터미널의 현재 디렉터리가 실제로 arduino-flasher-cli 실행 파일이 있는 폴더인지 확인합니다.

  • 맥/리눅스에서는 chmod +x arduino-flasher-cli로 실행 권한을 부여했는지 확인합니다.

플래싱 명령이 보드를 찾지 못하거나 바로 실패하는 경우

  • 두 핀이 올바르게 쇼트되었는지, 그리고 보드를 컴퓨터에 연결하기 전에 쇼트했는지 확인합니다.

  • 보드가 이미 리눅스 OS를 다 부팅한 뒤에는 플래싱 모드가 아니므로, 연결 직후 바로 플래싱 명령을 실행하는 것이 좋습니다.

  • 리눅스 환경에서라면 qcserial 모듈이 로드되어 있지 않은지 확인하고, 필요하다면 앞에서 설명한 대로 블랙리스트 설정을 적용합니다.

플래싱은 성공했다고 나오지만, 부팅이 제대로 되지 않는 경우

  • Arduino Flasher CLI가 "성공" 메시지를 확실히 출력했는지 다시 확인합니다.

  • USB‑C 케이블을 다시 한 번 뽑았다가 꽂아, 완전한 파워 사이클을 했는지 점검합니다.

  • 여전히 문제가 지속된다면, 플래싱 과정을 다시 한 번 반복하거나, 아두이노 공식 도움말 센터/포럼/디스코드 등 지원 채널에서 추가 도움을 받는 것이 좋습니다.

정리

Arduino UNO Q에 새 리눅스 OS 이미지를 플래싱하는 작업은, 보드를 공장 초기 상태에 가깝게 되돌릴 수 있는 강력한 방법입니다. 반대로 말하면, 기존 데이터와 설정이 모두 삭제되는 고위험 작업이므로, 꼭 필요할 때만 수행해야 합니다.

전체 과정은 크게 네 단계로 정리할 수 있습니다.

  1. Arduino Flasher CLI 설치 및 동작 확인 각 OS에 맞는 버전을 다운로드하고, 터미널/명령 프롬프트에서 도구가 정상적으로 실행되는지 확인합니다.

  2. (리눅스 한정) qcserial 모듈 문제 사전 해결 필요 시 qcserial 커널 모듈을 블랙리스트에 등록해 플래싱 과정에서의 충돌을 방지합니다.

  3. 하드웨어 플래싱 모드 준비 UNO Q의 전원을 끄고, 점퍼 와이어로 지정된 두 핀을 쇼트한 뒤, 다시 USB‑C로 컴퓨터에 연결합니다.

  4. 새 이미지 플래싱 및 전원 재연결 arduino-flasher-cli flash latest 명령으로 최신 이미지를 다운로드·플래싱한 후, 성공 메시지를 확인하고 보드를 파워 사이클하여 새 OS로 부팅합니다.

이 흐름만 정확히 이해하고 순서를 지킨다면, UNO Q의 리눅스 OS를 언제든지 새 상태로 초기화해 안정적인 개발 환경을 유지할 수 있습니다.

이 노트는 요약·비평·학습 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.