준비 단계
Xenomai 커널 설치는 여러 가지 단계를 포함하며, 이는 주로 리눅스 커널 패치를 통해 이루어진다. Xenomai 기반의 실시간 애플리케이션을 개발하려면 먼저 Xenomai 커널과 리눅스 커널 소스를 준비해야 한다.
필요 소프트웨어
-
필수 패키지 설치: 다음의 패키지가 설치되어야 한다.
bash sudo apt-get install build-essential libncurses5-dev bison flex libssl-dev
-
커널 소스 다운로드: 적당한 리눅스 커널 소스를 다운로드한다. 예제에서는 리눅스 커널 4.19를 사용한다.
bash wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.tar.xz tar -xf linux-4.19.tar.xz
-
Xenomai 소스 다운로드: Xenomai의 적당한 버전을 다운로드한다. 예제에서는 Xenomai 3.1을 사용한다.
bash wget https://xenomai.org/downloads/xenomai/stable/xenomai-3.1.tar.bz2 tar -xf xenomai-3.1.tar.bz2
Xenomai 커널 패치
I-pipe 패치 적용
Xenomai 커널은 I-pipe 패치를 사용하여 실시간 기능을 추가한다. 따라서 커널 소스를 패치해야 한다.
-
패치 파일을 확인: Xenomai 소스 디렉토리 내의 kernel/cobalt/patches 디렉토리에서 적절한 패치 파일을 확인한다.
bash cd xenomai-3.1/kernel/cobalt/patches ls
-
패치 적용: 해당 커널 버전과 일치하는 패치를 리눅스 커널 소스에 적용한다.
bash cd ~/linux-4.19 patch -p1 < ~/xenomai-3.1/kernel/cobalt/patches/ipipe-core-4.19.59-x86-4.patch
커널 설정
기존 설정 복사
기존 리눅스 커널 설정을 복사하여 사용한다. 이는 새로운 커널 설정을 간편하게 하기 위함이다.
cp /boot/config-$(uname -r) .config
Xenomai 설정 추가
Xenomai 설정을 위해 메뉴 설정 도구를 활용한다.
make menuconfig
그 다음 다음 옵션을 설정한다:
- Enable CONFIG_IPIPE option: Kernel Features -> Support for multiple binary formats -> I-pipe support
- Enable CONFIG_XENOMAI option: Device Drivers -> [*] Xenomai/cobalt
커널 컴파일 및 설치
make -j $(nproc)
sudo make modules_install
sudo make install
부팅 설정
initramfs 업데이트
initramfs 이미지를 업데이트한다.
sudo update-initramfs -c -k 4.19.x-ipipe
그럽 업데이트
그럽 설정을 업데이트하고 시스템을 재부팅한다.
sudo update-grub
sudo reboot
시스템 재부팅 후, 부팅 시 Grub 메뉴에서 새로 설치된 Xenomai 커널을 선택한다.