====== Xenomai på sanntidssalen ======
Xenomai består av en **kernel-patch og tilhøre programvarebiblioteker** som gjør det mulig å gjøre sanntidsprogrammering med Linux-kjernen. Uten Xenomai vil programmer som kjører muligens måtte vente flere millisekunder mellom et maskinvareavbrudd oppstår og programmet får mulighet til å reagere på det, men Xenomai gjør det mulig å omgå Linux sin scheduler for å få en reaksjonstid som kan måles i CPU-sykler i stedet for mikrosekunder.
===== Installere Xenomai på Ubuntu =====
For å sette opp Xenomai er det dette du må gjøre:
- finn nyeste kombinasjon av Linux, Xenomai og ipipe-patchen
- installer Ubuntu
- last ned Linux-kildekode for versjonen i 1. trinn
- last ned Xenomai-kildekode for versjonen i 1. trinn
- last ned ipipe-patchen av versjonen i 1. trinn
- følg disse instruksjonene og bruk skjønn:
* http://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai3.html#configure-the-kernel
* https://stackoverflow.com/questions/41949678/installation-steps-for-xenomai-3-on-ubuntu-16-04#42730452
* [[#hvordan_jeg_fikk_til_kompileringen_sist_gang]]
- nå skal det ligge to .deb-pakker i mappen over Linux-kildekoden; begge må installeres på sanntidssalmaskin
- kjør `update-grub` på sanntidssalmaskinen der pakkene er installert
- installer andre Xenomai-pakker fra Ubuntu-pakkebrønnen
===== Nyttige lenker =====
* http://old-releases.ubuntu.com/releases/16.04.1/
* https://www.kernel.org/pub/linux/kernel/v4.x/
* https://xenomai.org/downloads/xenomai/stable/latest/
* http://xenomai.org/downloads/ipipe/
* http://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai3.html#configure-the-kernel
* https://stackoverflow.com/questions/41949678/installation-steps-for-xenomai-3-on-ubuntu-16-04#42730452
===== Hvordan jeg fikk til kompileringen sist gang =====
(2017-11-02)
Dette er et utdrag med det viktige fra `history`-en min fra den gangen jeg fikk til å kompilere Xenomai-kjerne.
asmund@itk-d907-ubuntu:~/xenomai_2017-11-02/ferdig
>> cat hvordan.txt
Les http://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai3.html#configure-the-kernel
for å se hvilke innstillinger man bør endre på i "make xconfig"
8 sudo apt install kernel-package
15 mkdir xenomai_2017-11-02
16 cd xenomai_2017-11-02/
26 wget http://xenomai.org/downloads/ipipe/v4.x/x86/ipipe-core-4.4.43-x86-8.patch
29 wget https://xenomai.org/downloads/xenomai/stable/latest/xenomai-3.0.5.tar.bz2
30 tar xfvj xenomai-3.0.5.tar.bz2
31 wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.43.tar.gz
33 tar xfvz linux-4.4.43.tar.gz
39 sudo apt-get install libncurses5 libncurses5-dev build-essential kernel-package fakeroot libssl-dev
46 prepare-kernel.sh --arch=x86_64 --linux=linux-4.4.43 --ipipe=ipipe-core-4.4.43-x86-8.patch
48 cp /boot/config-4.4.0-31-generic .config
50 make xconfig
54 sudo apt install qt5-default
105 CONCURRENCY_LEVEL=$(nproc) make-kpkg --rootcmd fakeroot --initrd kernel_image kernel_headers
106 ls -l ..
===== Pakker som hører til =====
Pakkene med navn som inneholder "xenomai" bør installeres (bortsett fra xenomai-kernel-source).
>> apt search xenomai
Sorting... Done
Full Text Search... Done
libxenomai-dev/xenial,now 2.6.4+dfsg-0.2 amd64
Headers and static libs for Xenomai
libxenomai1/xenial,now 2.6.4+dfsg-0.2 amd64
Shared libraries for Xenomai
ros-cmake-modules/xenial,xenial 0.4.0-2 all
Robot OS CMake Modules
xenomai-doc/xenial,xenial 2.6.4+dfsg-0.2 all
Xenomai documentation
xenomai-kernel-source/xenial,xenial,now 2.6.4+dfsg-0.2 all
Linux kernel patches for Xenomai
xenomai-system-tools/xenial 2.6.4+dfsg-0.2 amd64
Xenomai system tools utilities