1 安装环境
linux版本:ubuntu 12.04
内核版本:3.13.0-32-generic
2 准备文件
下载以下文件,拷至本机目录下(我拷到了/home/lb/InstallFile):
https://www.rtai.org/userfiles/downloads/RTAI/rtai-4.1.tar.bz2
https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz
3 切换至root用户
以后的许多操作要用root用户权限,如果不想切换可以在命令前加“sudo”。
如果是第一次使用root用户,可能需要为root设置密码,命令如下:
$ sudo passwd root
[sudo] password for lb: (输入当前用户密码)
输入新的 UNIX 密码:(输入root密码)
重新输入新的 UNIX 密码: (再次输入root密码)
passwd:已成功更新密码进入root用户:
lb@lb-hccs:~$ su
密码:
root@lb-hccs:/home/lb#
4 安装3.16内核
进入安装文件目录:
root@lb-hccs:/home/lb# cd InstallFile
root@lb-hccs:/home/lb/InstallFile#
安装内核文件:
root@lb-hccs:/home/lb/InstallFile# dpkg -i linux-headers-3.16*.deb linux-image-3.16*.deb
重启:
root@lb-hccs:/home/lb/InstallFile# reboot
重启进入系统后,使用一下命令查看是否已经更换了版本:
lb@lb-hccs:~$ uname -r
3.16.0-031600-generic
5 拷贝和链接内核源文件
拷贝文件:
lb@lb-hccs:~$ su
密码:
root@lb-hccs:/home/lb# cd /usr/src
root@lb-hccs:/usr/src# cp /home/lb/InstallFile/linux-3.16.tar.xz . (注意命令最后有个点“.”)
root@lb-hccs:/usr/src# cp /home/lb/InstallFile/rtai-4.1.tar.bz2 . (注意命令最后有个点“.”)root@lb-hccs:/usr/src# cp /home/lb/InstallFile/linux-image-3.16.0-031600-generic_3.16.0-031600.201408031935_i386.deb ./linux-image-3.16.0-generic-i386.deb
解压文件:root@lb-hccs:/usr/src# tar -jxvf rtai-4.1.tar.bz2
root@lb-hccs:/usr/src# tar -Jxvf linux-3.16.tar.xz
root@lb-hccs:/usr/src# dpkg-deb -x linux-image-3.16.0-generic-i386.deb linux-image-3.16.0-generic-i386
链接文件:
root@lb-hccs:/usr/src# ln -s linux-3.16 linuxroot@lb-hccs:/usr/src# ln -s rtai-4.1 rtai
6 安装所需软件包
6.1 通用
root@lb-hccs:/usr/src# apt-get install cvs subversion build-essential git-core g++-multilib gcc-multilib
6.2 RTAI
root@lb-hccs:/usr/src# apt-get install libtool automake libncurses5-dev kernel-package
6.3 scilab 5.5.0
root@lb-hccs:/usr/src# apt-get install default-jre docbook-xsl fop javahelp2 libavalon-framework-java libbatik-java libfftw3-3 libflexdock-java libgfortran3 libhdf5-7 libjeuclid-core-java libjgoodies-looks-java libjgraphx-java libjhdf5-java libjlatexmath-fop-java libjlatexmath-java libjogl-java libjrosetta-java liblapack3gf libncurses5 libpcre3 libpvm3 libquadmath0 libsaxon-java libskinlf-java libstdc++6 libtinfo5 libxml2 tcl8.5 tk8.5 zlib1g libgcc1 libc6 libblas-dev libblas3gf libatlas3gf-base gfortran liblapack-dev
6.4 qrtailab
root@lb-cnc:/usr/src# apt-get install libqt4-dev libqwt5-qt4-dev
7 编译RIAI内核
7.1 拷贝ubuntu内核3.16源文件
root@lb-hccs:/usr/src# cp /usr/src/linux-image-3.16.0-generic-i386/boot/config-3.16.0-031600-generic /usr/src/linux/.config
7.2 给内核打补丁
root@lb-hccs:/usr/src# cd linux
root@lb-hccs:/usr/src/linux# patch -p1 < /usr/src/rtai/base/arch/x86/patches/hal-linux-3.16-x86-3.patch
7.3 配置内核
root@lb-hccs:/usr/src/linux# make menuconfig
Set up the kernel settings as follows
Processor type and features
-> Processor family = Select yours
-> Maximum number of CPUs (NR_CPUS) = Set your number (it's generally "4")
-> SMT (Hyperthreading) scheduler support = DISABLE IT
Power Management and ACPI options
ACPI (Advanced Configuration and Power Interface) Support = DISABLE IT
CPU idle PM support = DISABLE IT
8 build
root@lb-cnc:/usr/src# make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-rtai
9 install
root@lb-hccs:/usr/src/linux# cd ..
root@lb-hccs:/usr/src/linux# dpkg -i linux-image-3.16.0-rtai_3.16.0-rtai-1_i386.deb
root@lb-hccs:/usr/src/linux# dpkg -i linux-headers-3.16.0-rtai_3.16.0-rtai-1_i386.deb
10 修改grub配置,设定RTAI为默认启动项
root@lb-hccs:/usr/src/linux#vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash lapic=notscdeadline"
GRUB_DEFAULT="GRUB_DEFAULT="Previous Linux versions>Ubuntu,Linux 3.16.0-rtai" (这里的内容需要根据自己电脑的实际情况进行配置)
root@lb-hccs:/usr/src/linux#update-grub (更新配置,使其生效)
11 重启电脑,从Ubuntu,Linux 3.16.0-rtai选项进入系统
进入系统后,查询当前系统内核,应该是“3.16.0-rtai”。
root@lb-hccs:/home/lb# uname -r
3.16.0-rtai
12 安装RTAI
使用root用户执行以下操作:
root@lb-hccs:/home/lb# cd /usr/src/rtai
root@lb-hccs:/home/lb# make menuconfig
Machine(86) --> Number of CPUs (使用“lscpu”命令查看你的CPU数,修改这个参数,然后退出。)
root@lb-hccs:/home/lb# make -j `getconf _NPROCESSORS_ONLN`
root@lb-hccs:/usr/src/rtai# install
root@lb-hccs:/usr/src/rtai# make install
root@lb-hccs:/usr/src/rtai# vim ~/.bashrc
在~/.bashrc文件中添加以下几行:
export PATH=/usr/realtime/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/realtime/lib
使用新的环境变量:
root@lb-hccs:/usr/src/rtai# source ~/.bashrc
新建RTAI配置文件:
root@lb-hccs:/usr/src/rtai# vim /etc/ld.so.conf.d/rtai.conf
在其中添加如下内容:
/usr/realtime/lib
使配置文件生效:
root@lb-hccs:/usr/src/rtai# ldconfig
13 运行latency test
root@lb-hccs:/usr/src/rtai# cd /usr/realtime/testsuite/kern/latency
root@lb-hccs:/usr/src/rtai# ./run
RTAI Testsuite - KERNEL latency (all data in nanoseconds)
RTH| lat min| ovl min| lat avg| lat max| ovl max| overruns
RTD| -1816| -1816| -1769| 905| 905| 0
RTD| -1810| -1816| -1769| 807| 905| 0
RTD| -1810| -1816| -1773| -1242| 905| 0
RTD| -1808| -1816| -1769| 915| 915| 0
RTD| -1810| -1816| -1773| -1109| 915| 0
RTD| -1810| -1816| -1767| 920| 920| 0