jueves, 19 de marzo de 2009

Instalación de Xenomai

KeyWords: Xenomai, Real Time, Kernel, ubuntu

Recientemente he instalado el framework de tiempo real para linux Xenomai. Para instalarlo me he basado en las indicaciones de [1], pero como surgieron algunos problemas en la instalación he decidido dejas constancia de parte del proceso de instalación.

1. Descarga de las fuentes del Kernel y de Xenomai

  1. #cd /usr/src
  2. Descargo las versiones del kernel y de xenomai:


    1. Versión de Xenomai: 2.4.7
      svn co http://svn.gna.org/svn/xenomai/trunk xenomai
    2. Versión del kernel: 2.6.27.19 de www.kernel.org

  3. # tar -xjf linux-2.6.xx.yy.tar.bz2
  4. # ln -s linux-2.6.xx.yy linux

2. Aplicar el parche de Xenomai a las fuentes de Linux

  1. #cd xenomai -> scripts/prepare-kernel.sh

  2. Ahí nos pedirá las rutas a las fuentes del kernel a las que queremos aplicar el parche, la máquina en que estamos trabajando y la ruta del parche de xenomai que nos acabamos de descargar.

3. Compilar el Kernel

  1. # cd /usr/src/linux

  2. # make menuconfig

  • En este paso, al entrar en la configuración del kernel, hubo que ajustar las siguientes opciones:

    • <cite> Warning: you enabled APM, CPU Frequency Scaling or ACPI 'processor'

***this options are known to cause troubles with Xenomai

*** note: Xenomai conflicts with PC Speaker support

*** Menu device Drivers/Input device support/Miscellaneous devices

NOTE: Xenomai needs either X_86_LOCAL_APIC enabled or HPET_TIMER disabled </cite>

Por lo tanto hubo que desactivar:

  • 'MenuConfig' -> 'Kernel Hacking' -> 'Kernel Debugging' [N]

  • 'MenuConfig' ->'Device Drivers' -> 'Input Device Support'-> ' Miscelaneous Devices' -> 'PC Speaker Support' [N]

  • 'APM' -> 'CPU Frequency Scaling or ACPI'

  • 'Processor Type and Features' ->'HPET_Timer_Support' [N]
  1. # make
  2. # make modules_install install

4. Crear la imagen initrd y añadir al grub el nuevo kernel


  1. # update-initramfs -c -k <version>
  2. # gedit /boot/grub/menu.lst &
  3. title My Distro (<version>)

title Ubuntu_<version>_Xenomai
root (hd<x>,<x>)
kernel /boot/bzImage-<version> ro root=LABEL=/
initrd /boot/initrd-<version>.img

5. Rearrancar el sistema con la nueva versión del kernel

6. Configurar y compilar Xenomai


  1. # cd /usr/src/xenomai-2.1
  2. # ./configure
  3. # make
  4. # make install
  5. reiniciar el sistema

7. Una vez llegados a este punto hay que correr los ejemplos alojados en testsuite

  1. #cd /usr/src/xenomai/share/testsuite/<exampleName>/./run

8. Posibles fallos al correr los ejemplos del Xenomai

  • "Incompatible feature set userland requires "tsc", kernel provides "set fastsynch smp" missing "tsc" "

La primera vez que intenté ejecutar los test salía este fallo, que se corrigió simplemente volviendo al paso 6 Configurar y compilar Xenomai ,

haciendo:

#make clean

y en lugar de ./configuration -> ./configuration --disable-x86-tsc

y volviendo a compilar las fuentes de Xenomai.

Espero que sirva de ayuda a los que queráis instalar el sistema de tiempo real en Ubuntu.

[1] http://www.captain.at/xenomai-2.1-installation.php