카테고리 보관물: Programming

Image file의 partition 크기 늘리기

이미지파일에서 주어지는 파티션의 크기가 너무 작은 경우 더이상 파일을 복사 할 수 없는 경우가 종종 생긴다.

fdisk 명령어로 보면 이미지 파일의 파티션정보가 보이는데, 이 경우 기본적으로 5.5GB의 공간이 Linux partition (ext4)으로 할당되어 있다.

이 크기를 늘리고 싶다면 truncate로 image file의 크기를 조절하고, parted로 원하는 파티션에 할당해 주면된다.

# Image의 크기를 1GB 늘림
truncate -s +1G ./raspios_inc_7gb.img

# 두번째 파티션(ext4)에 100%를 할당
parted raspios_inc_7gb.img resizepart 2 100%

다시 한번 fdisk를 실행해보면 이전 5.5GB에서 6.5GB로 1GB 늘어난 파티션이 두번째인 Linux partition에 적용된 것을 확인할 수 있다.

Raspberry Pi Pico, Visual Studio Code 개발환경 설정

Raspberry Pi Pico로 이것 저것 해보려고 놀려고 개발 환경을 설정해 보았다. 참고한 문서들에는 Thonny IDE를 기준으로 설명된 것들이 많았으나 vscode에서도 Pico가 잘 지원되고 있어서 이것을 기준으로 환경을 설정했다.

Raspberry Pi Pico vs Arduino Uno

Pico의 생김새는 Arduino Nano와 유사하지만, 기능 측면에서는 Uno와 견줄만 하다.

Raspberry Pi Pico (RP2040)Arduino Uno (ATmega328P)
Processor CoreDual-core ARM Cortex-M0+ (32-bit)Single-core ATmega328P (8-bit)
Clock SpeedUp to 133 MHz16 MHz
RAM (SRAM)264 KB2 KB
Flash Memory2 MB (off-chip)32 KB (on-chip)
ProgrammingMicroPython, C/C++, Arduino IDEC/C++ (Arduino sketches)
가격배송비 포함 7천원 정도 3만원 정도

Raspberry Pi Pico Extension

Extensions항목에서 raspberry pi로 검색하면 Pico를 위한 공식 extension을 볼 수 있다.

이것을 설치하고 나면 Sidebar에 Raspberry Pi Pico를 위한 icon들이 추가된다.

새로운 프로젝트 생성

Sidebar의 Raspberry Pi Pico Project를 선택하면 새로운 프로젝트를 생성할 수 있는 창이 뜨는데, 설정 테스트를 위해서 여기에서 MicroPython 프로젝트를 하나 생성해 본다.

프로젝트가 생성되고 Pico의 LED(GPIO 25번)을 1초 간격으로 toggle하는 예제 코드가 추가된다.

MicroPython UF2 설치

Micro-Controller를 위한 MicroPython을 실행하기 위해서는 UF2 file을 설치해 주어야 하는데, 설치하는 과정은 생각보다 어렵지 않다.

우선 Pico용 MicroPython download page에서 UF2 파일을 개발 host에 다운로드 받아둔다. 그 다음 Pico에 있는 BOOTSEL 버튼을 누른 상태에서 개발 host와 연결된 UBS cable을 연결하면 Pico가 저장장치 모드로 인식되면서 파일을 탐색기에서 파일을 복사할 수 있는 상태로 인식된다.

다운로드 받아둔 UF2 파일을 인식된 RPI-PR2에 복사하면, 복사가 완료된 후 Pico가 자동으로 reboot되는데, 부팅하면서 vscode의 상태표시줄에 “Pico Connected”가 표시되기 REPL을 실행 할 수 있는 창이 뜬다.

제일 아래에 있는 상태표시 줄을 보면 “Pico Connected”옆에 “Run” 버튼이 있는데, 이것을 이용해서 현재 창에 떠 있는 MicroPython code를 실행할 수 있다.

참고로, 일반적인 Python code를 실행할 때 쓰는 버튼은 동작 하지 않는다.

File Upload 및 실행

LED 동작이 확인되었다면 해당 파일을 Upload 해서 Pico에서 동작하도록 할 수 있다. 명령창에서 “upload”를 검색하면 현재의 파일을 upload 하거나 프로젝트 전체를 upload하는 두개의 메뉴가 아래와 같이 보인다.

Upload가 완료 되었다면 Pico를 개발 host에 연결된 USB가 아닌 전원 (USB 충전기 혹은 battery)으로 연결하고 재부팅 하면 LED가 동작하는 것을 볼 수있다.

주의: 개발 host에 Pico 연결하면 REPL이 자동 실행되면서 upload된 파일의 실행이 중지된다. Upload한 파일의 동작을 확인하고 싶다면 반드시 개발 host가 아닌 전원으로 연결해서 부팅하도록 한다.

Raspberry Pi용 Qt5 Cross Compile을 위한 Bash Script

지난번 포스팅 “Raspberry Pi 5용 Qt5 Cross Compile“에서 수행했던 과정을 좀더 편리하게 사용하기 위해서 Bash Script로 만들었다.

다운로드

GitHub gist로 올려 두었으니 다음 위치에서 다운로드 받아서 크로스 컴파일을 수행할 위치에 저장해 둔다.

wget https://gist.github.com/litcoder/6db4c80289edb8bca43cd11a3ae88574/raw/3b0f170850892fe5be86c47395c3b8c026cf9e34/build_qt5_rpi.sh

사용법

–help 옵션으로 간단한 설명이 나오기는 하지만, 가장 간단한 실행 방법은 work space를 실행 파일의 파라미터로 넘겨 주는 것이다.

bash build_qt5_arm64.sh <work space>

별 문제가 없다면 스크립트가 동작되고 raspios.img 파일이 생성되는데 이것을 Raspberry Pi Imager 혹은 dd 명령어로 SD card에 flash해서 사용하면 된다.