라즈베리파이에서 SPI 통신으로 센서/디스플레이 다루기

라즈베리파이에서 ADC나 LED 매트릭스처럼 빠른 응답과 큰 데이터 전송량이 필요한 주변장치를 다룰 때 I2C(배선 2개, 수백 kHz, 슬레이브 주소 기반)는 속도와 주소 충돌 면에서 답답하다. SPI(Serial Peripheral Interface)는 MOSI/MISO를 따로…

Continue Reading라즈베리파이에서 SPI 통신으로 센서/디스플레이 다루기

라즈베리파이에서 I2C 센서 데이터 읽기 — python-smbus2 실전

센서마다 GPIO 핀을 하나씩 배정하는 방식은 핀 개수 제한과 배선 복잡도 때문에 금방 한계에 부딪힌다. I2C는 SDA/SCL 두 핀만으로 여러 센서를 동시에 연결하는 버스 프로토콜이고, BME280 같은 저가형 온습도/기압 센서는…

Continue Reading라즈베리파이에서 I2C 센서 데이터 읽기 — python-smbus2 실전

라즈베리파이 부트로더 빌드 및 업데이트 방법

라즈베리파이 4/5 계열은 부트로더가 보드 위 EEPROM에 저장되어 있고, rpi-eeprom-update로 최신 버전으로 갱신할 수 있다. "부트로더를 빌드한다"는 말 때문에 소스를 내려받아 컴파일하는 과정을 떠올리기 쉬운데, 실제로는 다르다. rpi-eeprom 저장소에는 이미…

Continue Reading라즈베리파이 부트로더 빌드 및 업데이트 방법

라즈베리파이 Device Tree Overlay 원리 — fragment/fixup을 dtc로 직접 확인하기

라즈베리파이에 센서나 디스플레이를 하나 새로 붙일 때마다 base device tree(.dtb) 전체를 다시 컴파일해서 부트 파티션에 올리는 건 번거롭고, 보드마다 다른 base tree를 관리해야 하는 상황과도 잘 안 맞는다. Device Tree…

Continue Reading라즈베리파이 Device Tree Overlay 원리 — fragment/fixup을 dtc로 직접 확인하기

라즈베리파이 PREEMPT_RT 실시간 커널 적용기

라즈베리파이OS 기본 커널은 일반 목적 스케줄러를 쓰기 때문에, 인터럽트가 몰리거나 시스템 부하가 커지면 특정 태스크의 응답 시간이 수 밀리초에서 수십 밀리초까지 튈 수 있다. 로봇 제어, 모터 구동, 오디오 프로세싱처럼…

Continue Reading라즈베리파이 PREEMPT_RT 실시간 커널 적용기

eBPF를 위한 라즈베리파이 커널 빌드 가이드

라즈베리파이 OS에는 이미 최신 커널이 올라가 있고, CONFIG_BPF_SYSCALL과 CONFIG_BPF_JIT도 기본으로 켜져 있어서 단순한 eBPF 프로그램은 커널을 새로 빌드하지 않아도 로드된다. 문제는 그다음부터다. bpftrace나 최신 BCC 도구 상당수는 BTF(BPF Type Format)…

Continue ReadingeBPF를 위한 라즈베리파이 커널 빌드 가이드

라즈베리파이 GPIO 제어 – Python과 C 비교

라즈베리파이 4 이하에서 잘 동작하던 RPi.GPIO 기반 코드를 라즈베리파이 5에 그대로 올리면 GPIO 핀 제어가 먹통이 되는 경우가 많다. Pi 5부터는 GPIO·USB·이더넷·카메라 등 외부 인터페이스를 처리하는 RP1이라는 별도 I/O 칩이…

Continue Reading라즈베리파이 GPIO 제어 – Python과 C 비교

fatal error: gelf.h: No such file or directory 오류

Linux 커널을 소스에서 빌드하다 보면 tools/objtool을 컴파일하는 단계에서 gelf.h 헤더를 찾지 못해 빌드가 중단되는 경우가 있다. objtool은 커널 빌드 시 오브젝트 파일의 제어 흐름을 분석해 ORC unwinder 테이블 생성, retpoline/livepatch…

Continue Readingfatal error: gelf.h: No such file or directory 오류

라즈베리파이에 NoMachine 설치하기

라즈베리파이를 원격으로 제어하는 방법은 여러 가지가 있지만, NoMachine은 빠른 화면 전송 성능과 낮은 지연(latency), 쉬운 설정 덕분에 개발자나 시스템 엔지니어에게 좋은 선택이다. 특히 GUI 환경에서 디버깅하거나 IDE를 사용할 때 VNC보다…

Continue Reading라즈베리파이에 NoMachine 설치하기

라즈베리파이에 안드로이드 이미지 올리기

라즈베리파이(Raspberry Pi)는 저렴하면서도 강력한 성능을 갖춘 SBC(Single Board Computer)로, 다양한 운영체제를 설치해볼 수 있는 실험용 장비로 인기가 많다. 일반적으로는 라즈비안(Raspberry Pi OS)을 많이 사용하지만, 안드로이드(Android)를 설치하면 모바일 앱 테스트, 키오스크,…

Continue Reading라즈베리파이에 안드로이드 이미지 올리기