|
Target
Board |
Raspberry Pi CM5 + IO Board
|
|
Host
|
PC - Window
|
|
목표
|
Raspberry Pi CM5 - UI(Avalonia) 환경 구축
|
라즈베리 파이에서 UI를 구성할 때 여러 가지 선택지가 있는데, 주력 플랫폼은 크게 아래의 네 종류가 있다.
1. Qt (가장 전통적이고 실제 사용량이 가장 많음)
임베디드 리눅스 UI의 사실상 표준에 가까운 프레임워크
산업용 디스플레이, 제어기, 기기 UI에서 폭넓게 검증됨
라즈베리 파이에서도 하드웨어 가속, 안정성, 최적화 수준이 가장 높음
특징:
- 성능·안정성 우수
- 산업용에서 가장 많은 사례
- 습득 난이도, 라이선스 고려 필요
2. Flutter (모던 UI용으로 빠르게 성장 중)
원래 모바일 UI지만, ARM 리눅스를 공식 지원하면서 파이에서도 활용 가능
애니메이션·렌더링 품질이 좋아 모던한 UI가 필요할 때 많이 고려됨
특징:
- 크로스플랫폼 개발 속도 빠름
- 예쁜 UI 제작에 유리
- 런타임 리소스 요구량이 비교적 큼
3. Avalonia (.NET 기반 UI의 사실상 유일한 실전 선택지)
C#, XAML 기반으로 데스크톱 개발 경험을 그대로 가져올 수 있음
ARM64 파이에서 빌드·실행이 쉽고, .NET 기반 프로젝트와 궁합이 가장 좋음
특징:
- .NET 생태계 활용
- XAML 기반이라 UI 구조화가 편함
- 임베디드 레퍼런스는 Qt·Flutter보다 적음
4. Web 기반 UI (실제로 많이 사용됨)
Electron이 아니라, WebView 또는 전체 화면 브라우저 기반 UI를 의미
라즈베리 파이 기반 키오스크, 대시보드, 관리 UI에서 자주 보임
특징:
- HTML/CSS/JS로 개발 → 유지보수 매우 쉬움
- PC·모바일·파이 모두 동일 UI 사용 가능
- 복잡한 애니메이션·Native 성능은 한계가 있음
(참고: Electron은 기술적으로 가능하지만 리소스 부담이 커 실제 제품에서는 거의 안 씀)
추가로 언급할 수 있는 건 있지만, 실사용 비중이 매우 낮음
- LVGL
- Kivy (Python 기반)
여기서는 Avalonia로 UI 구성하는 방법을 설명한다.
Avalonia?
1. 개요
- Avalonia는 .NET 기반의 크로스플랫폼 UI 프레임워크
- C#과 XAML로 화면을 만들며 Windows / Linux / macOS / 임베디드 리눅스에서 동일 코드로 실행
2. UI 구성 방식
- XAML 기반 레이아웃, 스타일 시스템, 데이터 바인딩을 지원해서 데스크톱 수준의 일관된 UI 구조를 만들 수 있음
3. 성능 및 렌더링
- GPU 기반 렌더러를 사용해 고해상도 환경에서도 안정적이고 빠르게 동작
4. 배포와 환경 구성
- 독립 실행 형태로 배포할 수 있어 라즈베리 파이 같은 ARM 장치에서도 설정이 단순
5. 생태계 특징
- 오픈소스이며 .NET 라이브러리들과 자연스럽게 연동됨
- 라이선스 비용 부담이 없음
Avalonia를 라즈베리 파이에서 사용하기 위한 환경 구성 절차는 다음과 같음
1. NET 런타임 설치
2. 개발 환경 구성(PC)
3. 프로젝트 빌드 및 배포 파일 생성
4. 라즈베리 파이에 배포 및 실행
1. NET 런타임 설치
- 라즈베리 파이 OS(64비트 기준)에 Microsoft 패키지 저장소를 등록한 뒤 .NET SDK 설치
- Visual Studio 2022 설치 하면 .NET SDK는 같이 설치됨
- 확장 관리자에서 Avalonia 설치(Avalonia, Avalonia Template Studio)
설치 후 dotnet --info 명령으로 ARM64 환경이 정상 인식되는지 확인
3. 프로젝트 빌드 및 배포 파일 생성
다음 명령으로 라즈베리 파이용 실행 파일을 생성
dotnet publish -c Release -r linux-arm64 --self-contained true
이 방식은 .NET 런타임이 포함된 독립 실행 파일을 생성하므로 파이에 별도 설치가 필요 없음
4. 라즈베리 파이에 배포 및 실행
Publish 디렉터리 전체를 라즈베리 파이에 복사한 후 실행 파일을 실행
Avalonia는 X11 또는 Wayland 환경에서 자동으로 렌더링되며, 터치 디스플레이도 기본적으로 지원됨
'Raspberry Pi > CM4 & CM5' 카테고리의 다른 글
| Raspberry Pi OS 구버전 설치: 이미지 내려받기 (0) | 2025.10.25 |
|---|---|
| Raspberry Pi - VSCode 원격 접속 설정 (0) | 2025.10.01 |
| Raspberry Pi CM4 vs CM5 (0) | 2025.08.08 |
| Raspberry Pi CM4 - EEPROM 부트로더 업데이트 및 부팅 순서 설정 (0) | 2025.03.19 |
| Raspberry Pi CM4 - 크로스 컴파일 환경 구축(1) (0) | 2025.03.19 |




























































