Ubuntu 14.04에 Xenomai 3.0.3 설치하기

Ubuntu 14.04에 real-time OS인 xenomai 3.0.3을 설치해보자

Install Xenomai 3.0.3 on Linux 14.04

우분투 14.04에 제노마이 설치하기

1. 설치환경

  • Ubuntu 14.04 Desktop
  • intel 내장그래픽

패키지 설치

커널 빌드 및 Xenomai 설치 과정에서 필요한 패키지들을 먼저 설치한다.

sudo apt-get install vim gcc g++ build-essential kernel-package libncurses5-dev qt4-dev-tools grub fakeroot devscripts bc git cmake3 -y

linux 커널 다운

설치할 제노마이 버전과 맞는 리눅스 커널을 다운받는다.
제노마이 3.0.3을 설치할거기 때문에 linux 4.1.18을 다운받은 후 압축을 풀어준다.

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.1.18.tar.gz
tar xf linux-4.1.18.tar.gz

Xenomai 다운

동일하게 xenomai를 받은 후 압축을 풀어준다.

wget https://xenomai.org/downloads/xenomai/stable/xenomai-3.0.3.tar.bz2
tar xf xenomai-3.0.3.tar.bz2

Xenomai patch 적용하기

xenomai patch를 받은 후 적용해주자

cd linux-4.1.18
wget https://xenomai.org/downloads/ipipe/v4.x/x86/older/ipipe-core-4.1.18-x86-7.patch
../xenomai-3.0.3/scripts/prepare-kernel.sh --arch=x86_64 --ipipe=ipipe-core-4.1.18-x86-7.patch

Kernel config

커널설정을 해주자

sudo make menuconfig

창이 뜨면 아래와같이 설정한다 disable은 키보드 n으로 하면 되고, 해당 항목을 찾을때는 /누르고 검색하면 나온다


General setup -> Timers subsystem

  • High Resolution Timer Support (Enable)

Xenomai/cobalt -> Drivers -> RTnet

  • RTnet, TCP/IP socket interface (Enable)
  • Drivers
    • New intel(R) PRO/1000 PCIe (Enable)
    • Realtek 8169 (Enable)
    • Loopback (Enable)
  • Add-ons
    • Real-Time Capturing Support (Enable)

Power Management and ACPI options

  • CONFIG_CPU_FREQ : CPU Frequency scaling -> disable( disable )
  • CONFIG_ACPI_PROCESSOR : ACPI Support -> Processor( disable )
  • CONFIG_CPU_IDLE : CPU Idle -> CPU idle PM Support( disable )

Device Drivers

  • CONFIG_INPUT_PCSPKR : Input device support -> Miscellaneous devices -> PC Speaker support ( disable )

그 외 필요한 옵션들을 설정해주고 저장한 후 나간다

Kernel build

이제 커널을 빌드해보자

sudo CONCURRENCY_LEVEL=8 CLEAN_SOURCE=no fakeroot make-kpkg --initrd --append-to-version --revision kernel_image kernel_headers

완료된 후 상위경로에 가보면 패키지들이 생겨있을 것이다
다음과 같이 설치해준다

cd ..
sudo dpkg -i linux-headers-4.1.18-xenomai-realtime_1.0_amd64.deb
sudo dpkg -i linux-image-4.1.18-xenomai-realtime_1.0_amd64.deb

non-root 유저 추가

sudo addgroup xenomai --gid 1234
sudo addgroup root xenomai
sudo usermod -a -G xenomai $USER

GRUB 설정

GRUB 설정을 바꿔주자.

sudo vi /etc/default/grub

위 명령어로 grub 파일을 열고난 후 아래와 같이 수정해주면 된다.

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.1.18--revision"
GRUB_HIDDEN_TIMEOUT="5"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="10"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_rc6=0 i915.enable_dc=0 xeno_nucleus.xenomai_gid=1234 nosmap"
GRUB_CMDLINE_LINUX=""
  1. 혹시나 xenomai를 설치하는 컴퓨터가 인텔 내장그래픽을 사용한다면, 11번째줄을 다음과같이 수정한다..
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_rc6=0 i915.enable_dc=0 noapic xenomai.allowed_group=1234"
    
  2. xenomai를 설치하려는 컴퓨터의 CPU가 SKYLAKE라면 11번째줄을 다음과 같이 수정한다.
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_rc6=0 i915.enable_dc=0 xeno_nucleus.xenomai_gid=1234 nosmap"
    

설정이 끝나면 GRUB 설정을 UPDATE해준다.

sudo update-initramfs -c -k 4.1.18--revision
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo update-grub

GRUB 파일 수정이 힘들다면, GUI로 되어있는 grub customizer를 사용하자

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
sudo grub-customizer

linux-4.1.18로 부팅

GRUB 설정까지 끝나면, 재부팅을 해준다.
재부팅시 GRUB화면이 나타나지 않는다면, 부팅시 SHIFT키를 누르고 있으면 GRUB 화면이 뜬다. GRUB 설정과 관련된 내용은 이곳 참조
GRUB 화면이 뜨면, Advanced options for Ubuntu를 선택 -> 4.1.18version선택

커널 확인, xenomai library 설치

부팅이 완료되면 터미널을 켠 후

uname -r

으로 부팅된 커널 버전을 확인하자. 4.1.18version이라고 나오면 성공
4.1.18커널로 부팅이 됬으면 아까 받았던 xenomai경로로 이동한 후 xenomai library를 설치해주자

cd xenomai-3.0.3
sudo ./configure
sudo make
sudo make install
sudo apt-get install xenomai-runtime

테스트

설치가 모두 완료되었으니 테스트를 해보자.
기본 latency test를 실행한다.

sudo /usr/xenomai/bin/latency

참조1 : Installing Xenomai
참조2 : http://rtt-lwr.readthedocs.io
참조3 : www.ashwinnarayan.com