Orange Pi 5를 로봇의 메인 제어기로 사용할 경우, preempt_rt 패치가 필요한 상황이 있습니다. 이를 위해서 제일 편리한 방법은 Armbian build 프레임웍을 사용하는 것입니다. Armbian은 싱글보드 컴퓨터의 시스템 이미지를 생성하기 위한 소프트웨어 프레임웍으로, 아주 간단하게 이미지를 생성하여, SD카드 등에 쉽게 적용이 가능합니다.
자세한 설명은 https://www.armbian.com/ 와 https://docs.armbian.com/Developer-Guide_Overview/ 이곳을 참고하시면 됩니다.
Armbian 개발 환경을 위해서는 Ubuntu (Docker 사용이 가능한), WSL2 환경이 필요합니다.
먼저 Ubuntu에서 다음과 같이 armbian build software framework를 다운로드합니다.
$ git clone https://github.com/armbian/build
$ cd build
preempt_rt 커널 빌드를 위해서는 커널 설정 변경이 필요합니다. 특히 6.x 커널 이후에는 RT 패치가 이미 포함되어 있으므로, 따로 patch 명령을 이용해서 작업할 필요가 없습니다.
커널 설정 및 빌드를 한꺼번에 수행하기 위해서 다음과 같이 입력합니다.
$ ./compile.sh BOARD=orangepi5-plus BRANCH=current RELEASE=noble BUILD_DESKTOP=no BUILD_MINIMAL=no VENDOR=armbian-kft REVISION=25.8.2 CPUTHREADS=12 build
몇가지 옵션에 대해 설명을 붙이면
BRANCH: 커널 및 U-Boot의 사용 버전을 결정합니다. current를 추천. (vendor, legacy, edge 옵션 선택 가능)
RELEASE: Ubuntu 버전 선택 가능 noble = 24.04
BUILD_DESKTOP: gnome 등 GUI Desktop 엔진 선택 가능. no = CLI (Server)
BUILD_MINIMAL: 아주 최소한의 CLI 환경만 구성. no
VENDOR: 생성되는 이미지의 이름 구성
REVISION: Armbian 리비전 버전 사용
CPUTHREADS: 커널 빌드시 사용되는 CPU 코어 수 (사용자 환경에 따라 변경
이렇게 하면, 해당되는 커널 및 필요한 패키지들을 다운로드 하고, 다음과 같이 선택화면이 나옵니다.

커널 설정을 변경하려면 (Show a kernel configuration menu before compliation)을 선택

기존 preempt_rt 설정할 때와 마찬가지로 옵션을 조정해줍니다.
General setup --->
Preemption Model (Fully Preemptible Kernel (Real-Time)) --->
(X) Fully Preemptible Kernel (Real-Time)
Kernel Features --->
Timer frequency (1000 HZ) --->
(X) 1000 HZ
CPU Power Management --->
CPU Frequency scaling --->
Default CPUFreq governor (performance) --->
(X) performance
저장하고 종료하면, 커널빌드부터 이미지 생성까지 한번에 수행합니다.
최종 빌드가 완료되면, output/images 디렉토리 아래에 armbian-kft_25.8.2_Orangepi5-plus_noble_current_6.12.58.img 와 같이 이미지 파일이 생성됩니다. 이제 이 이미지 파일을 SD Card에 Write하고 부팅하면 됩니다.
Leave a Reply