This is a quick list of commands on compiling xenomai version 2.4.4 with linux kernel 2.6.25.11 under ubuntu.
cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.11.tar.bz2
wget http://download.gna.org/xenomai/stable/xenomai-2.4.4.tar.bz2
tar xfj xenomai-2.4.4.tar.bz2 tar xfj linux-2.6.25.11.tar.bz2
cd /usr/src/xenomai-2.4.4 scripts/prepare-kernel.sh
Since the initrd option is not used later on, compile your hard disk drivers not as a module, but compile it into the kernel itself.
cd /usr/src/linux-2.6.25.11 cp /boot/config-2.6.24-16-generic .config make menuconfig
make sudo make modules_install make bzImage
make sudo make modules_install install make bzImage
sudo cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.25.11-xenomai-2.4.4
sudo addgroup xenomai sudo usermod -a -G xenomai YOURUSERNAME sudo usermod -a -G xenomai USERY
sudo vim /boot/grub/menu.lst
title kernel 2.6.25.11 with xenomai 2.4.4 and Ubuntu 8.04 root (hd0,4) kernel /boot/vmlinuz-2.6.25.11-xenomai-2.4.4 root=/dev/XXX ro xeno_nucleus.xenomai_gid=1001 << groupid of the xenomai group
cd /usr/src/xenomai-2.4.4 ./configure /*是否增加--enable-x86-sep --enable-x86-tsc需要查看cpu的信息:用命令cat /proc/cpuinfo,如果在cflag中出现则添加*/ make sudo make install
sudo cp /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xenomai.conf sudo vim /etc/ld.so.conf.d/xenomai.conf
# xenomai libs /usr/local/lib
sudo ldconfig
cd /usr/src/xenomai-2.4.4/examples/native make ./trivial-periodic
出现如下错误:#error "CONFIG_NR_CPUS is too large, please lower it 时:
将内核源文件夹根目录下 .config文件的几个标志位作如下设置:
CONFIG_HPET_TIMER=n
CONFIG_HPET_EMULATE_RTC=n
CONFIG_SPARSE_IRQ=n
当出现"per_cpu__irq_stack_union" undeclared error,将CONFIG_CC_STACKPROTECTOR设置为n
> I have a xenomai kernel running! > > I have tested using the testsuit latency ./run program. initially I > got this message > > Xenomai: incompatible feature set. > (required="sep tsc", present= "sep", missing="tsc")
方法1. To fix this, you need to select a x86 CPU supporting a timestamp counter when configuring your kernel, since by default, the configure script assumes --enable-x86-tsc. 方法2:The problem is that the TSC feature must be enabled in kernel-space if you want to enable it in user-space. So, you have two choices: - either you enable the TSC in kernel-space by selecting the processor in kernel configuration which fits your processor (as suggested in Xenomai FAQ); - either you disable usage of TSC in user-space by passing --disable-tsc to configure. http://news.gmane.org/gmane.linux.real-time.xenomai.users 上提供大量的信息