Subject: RTAI0.8 install notes ... hope this helps
From: Phil Wilshire (philwil@on-ramp.ior.com)
Date: Fri Nov 12 1999 - 18:47:09 CST
Installing RT Linux...
RTAI RTLinux
This guide is free; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
(C) Phil Wilshire 1999
The steps are...
============================================================================
1 ... unpack the kit
============================================================================
The steps I use are :
1.1 get a clean kernel from ftp.us.kernel.org
wget ftp.kernel.org/pub/linux/kernel/v2.2/linux-2.2.13.tar.gz
or
wget ftp.us.kernel.org/pub/linux/kernel/v2.2/linux-2.2.13.tar.gz
1.2 get the patch file FOR THAT KERNEL.
1.3 move your current copy of /usr/src/linux ( if it is not a link ) to
/usr/src/oldlinux
check with
ls -l /usr/src
links look like this
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 17 Aug 17 1998 /usr/src/linux ->
linux-2.2.10
( in this case just delete the link and do the untar )
If you have to move a tree do
cd /usr/src
mv linux oldlinux
1.4 Create a working directory .. I use /opt/rtl
mkdir /opt/rtl
You may need to do this as root .
loosen up restrictions on the new directory
chmod a+rw /opt/rtl
This will allow you as a user to access this.
NOTE: do most of your work as a regular user .. it's safer.
1.5 Untar the RTAI tarball into /opt/rtl
ie if the tarball is in /home/wilshire/download/rtl/rtai-0.8.tgz
cd /opt/rtl
tar xvzf /home/wilshire/download/rtl/rtai-0.8.tgz
This will create
/opt/rtl/rtai-0.8
1.6 Get a fresh copy of linux.
This means take the linux-2.2.13.tar.gz tarball and put it somewhere
I suggest in the current RTAI tree.
ie if the tarball is in
/home/wilshire/download/linux/linux-2.2.13.tar.gz
cd /opt/rtl/rtai-0.8
tar xvzf /home/wilshire/download/linux/linux-2.2.13.tar.gz
============================================================================
2.0 Modify the Kernel
============================================================================
2.1 Apply the mods for RTAI
make a link from /opt/rtl/rtai-0.8 to /usr/src/linux-2.2.13
ln -s /opt/rtl/rtai-0.8/linux /usr/src/linux-2.2.13
move to the patching directory
cd /opt/rtl/rtai-0.8/linux-2.2.13
apply the cautious patch for now
sh cautious_copyto
============================================================================
3.0 Configure and compile the Kernel
============================================================================
3.1 look at what's running
Now we need to configure and compile the patched kernel.
First we need to look at what's running.
[wilshire@pasrack3 linux]$ /sbin/lsmod
Module Size Used by
3c59x 18952 1
Then we need to configure our new kernel.
We see the modules used and make sure that we
configure the new kernel for the same ones.
now type
3.2 Configure the kernel
cd /opt/rtl/rtai-0.8/linux
make menuconfig
and check options as required
Code maturity level options ---> yes
Processor type and features --->
(PPro/6x86MX) Processor family
[*] Symmetric multi-processing support
[*] Hard realtime support
Loadable module support --->
[*] Enable loadable module support
[ ] Set version information on all symbols for modules
[ ] Kernel module loader
General setup ---> accept defaults
Plug and Play support ---> accept defaults
Plug and Play support ---> accept defaults
Networking options ---> accept defaults
SCSI support ---> accept defaults
Network device support --->
Ethernet (10 or 100Mbit) --->
[*] 3COM cards
<M> 3c590/3c900 series (592/595/597) "Vortex/Boomerang" support
( in this case )
and finally
Kernel hacking --->
[*] Magic SysRq key
( this may come in handy )
Right having done all this ...
save the configuration
**********************************************************************
Note it is a very good idea to mark the kernel version...
**********************************************************************
Edit Makefile and modify this bit at the top as below
VERSION = 2
PATCHLEVEL = 2
SUBLEVEL = 13
EXTRAVERSION =-RTAI08
3.4 Compile the kernel
Now build the kernel
[wilshire@pasrack3 linux]$ make dep; make clean; make bzImage
go for a cup of tea , read your mail, write a manual ....10 minutes or
so.
You will end up with a new Kernel a new Symbol.map etc.
BEFORE you do anything else... set your system up to use this new kernel
go to root
su
3.5 Make/ Install the modules
make the modules
make modules; make modules_install
watch the result here
[root@pasrack3 linux]# make modules_install
Installing modules under /lib/modules/2.2.13-RTAI08/net
Installing modules under /lib/modules/2.2.13-RTAI08/misc
the
/lib/modules/2.2.13-RTAI08
shows you that just about every thing is well.
============================================================================
4.0 Set up boot / Lilo
============================================================================
copy the boot image to the right place
cp arch/i386/boot/bzImage /boot/bzImageRTAI08
copy the Symbol.map to the right place
cp System.map /boot/System.mapRTAI08
make the new System.map " active"
rm /boot/System.map
ln -s /boot/System.mapRTAI08 /boot/System.map
edit /etc/lilo.conf
It should look like ...
=======================================================
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/bzImageRTAI08
label=linuxRTAI08
root=/dev/hda1
append="mem=126M"
read-only
image=/boot/bzImage
label=linux
root=/dev/hda1
append="mem=126M"
read-only
======================================================
#<keep another around just in case >
Run Lilo
[root@pasrack3 linux]# /sbin/lilo
Added linuxRTAI08 *
Added linux
============================================================================
5.0 Boot
============================================================================
Now is the time to reboot
Having rebooted we need to move the linux source link to our new source
tree.
rm /usr/src/linux
ln -s /opt/rtl/rtai-0.8/linux /usr/src/linux
============================================================================
6.0 Setup and make the rtai module
============================================================================
6. 1 Now we can make the rtl modules
Check and adjust the date
[root@pasrack3 rtl]# date
Wed Nov 10 23:14:18 PST 1999
[root@pasrack3 rtl]# date 11111452
Thu Nov 11 14:52:00 PST 1999
We need to set up the rtai header files
cd /opt/rtl/rtai-0.8
I cheat here to set up the headers...
make calibrate
If you do not have a SMP system then he BUS FREQ will not be detected
at this stage.
Then
make all
....
6.2 Set up your path
=======================set up your path============================
try lsmod
if you get
[root@pasrack3 fp]# lsmod
bash: lsmod: command not found
do this
export PATH=/sbin:$PATH
then try again
[root@pasrack3 fp]# lsmod
Module Size Used by
3c59x 19176 1
=====================================================================
6.3 Install what you need
This is a bit vague for me for all the different options.
I'll try pick out a working path for a UP system and a SMP system
For a UniProcessor system
cp /opt/rtl/rtai-0.8/upscheduler/rtai_sched /opt/rtl/rtai-0.8/modules
For a SMPsystem
cp /opt/rtl/rtai-0.8/smpscheduler/rtai_sched_8254
/opt/rtl/rtai-0.8/modules/rtai_sched
or
cp /opt/rtl/rtai-0.8/smpscheduler/rtai_sched_apic
/opt/rtl/rtai-0.8/modules/rtai_sched
Look at the /opt/rtl/rtai-0.8/smpscheduler/README to make your choice.
now cd /opt/rtl/rtai-0.8
and
./ldmod
should produce soemthing close to the following op
[root@pasrack3 rtai-0.8]# ./ldmod
Module Size Used by
3c59x 19176 1
Module Size Used by
rtai_sched 14452 0 (unused)
rtai_fifos 23156 0 (unused)
rtai 23232 1 [rtai_sched rtai_fifos]
3c59x 19176 1
6.4 try something
A simple test can be dug out of the latency_calibration system.
This is also a very useful check that your basic system is working.
cd /opt/rtl/rtai-0.8/latency_calibration
[root@pasrack3 latency_calibration]# ls
Makefile README check check.c rt_process rt_process.c
[root@pasrack3 latency_calibration]# insmod rt_process
[root@pasrack3 latency_calibration]# ./check
*** min: -4964, max: 5469 average: -3677 ***
*** min: -4964, max: -1727 average: -3684 ***
*** min: -4964, max: 5229 average: -3671 ***
*** min: -4994, max: 6564 average: -3668 ***
*** min: -4964, max: 8171 average: -3678 ***
*** min: -4994, max: 2865 average: -3676 ***
*** min: -4934, max: 6166 average: -3654 ***
...
^c
That's it for the main install..
============================================================================
7.0 Run some examples
============================================================================
Now for some of the examples
RTAI come with a ton of em I'll pick just a few
=========================fp=====================================
cd /opt/rtl/rtai-0.8/examples/fp
insmod rt_process
./check
***** CHECK FLOATING POINT SUPPORT (TO STOP CTRL-C) *****
***** PRESS f TO TOGGLE FLOATING POINT SUPPORT AND SEE WHAT HAPPENS
*****
***** PRESS ANY OTHER KEY TO KEEP VERIFYING THE CURRENT STATUS *****
***** THE RIGHT MOST VALUE SHOULD BE 1.2345728950E+09 *****
4.7436068635915034E-02 4.7422657799313435E-02 1.2345728950E+09
f
9.3079944866798936E-01 9.3079862074810471E-01 2.2110000000E+03
4.3794158235833830E-01 4.3793087876745251E-01 1.0878000000E+04
f
9.6302305497101659E-01 9.6302109177871875E-01 1.2345728950E+09
-8.6197664916726202E-01 -8.6198223915891703E-01 1.2345728950E+09
f
-4.6451587393225269E-01 -4.6451114977778762E-01 5.7970000000E+04
-3.8617040183534634E-01 -3.8618075197697144E-01 2.3770500000E+05
this is a cool test.....
=====================================================================
[root@pasrack3 examples]# cd ../jepplin
[root@pasrack3 jepplin]# insmod rt_process
[root@pasrack3 jepplin]# sleep 25
[root@pasrack3 jepplin]# rmmod rt_process
Joey Johnny Dee Dee Marky
Joey Johnny Dee Dee Marky
Joey Johnny Dee Dee Marky
Joey Johnny Dee Dee Marky
Joey Johnny Dee Dee Marky
sync
Marky Dee Dee Johnny Joey
sem timeout, task 0, Joey
sem timeout, task 1, Johnny
sem timeout, task 2, Dee Dee
sem timeout, task 3, Marky
sync
testing message queues
received by task 0 Joey
received by task 3 Johnny
received by task 2 Dee Dee
received by task 1 Marky
received from mbx_out: Joey
received from mbx_out: Marky
received from mbx_out: Dee Dee
received from mbx_out: Johnny
init task complete
mbx timeout, task 0, Joey
mbx timeout, task 1, Johnny
mbx timeout, task 2, Dee Dee
mbx timeout, task 3, Marky
Read the README and the source to work out what is happening.
=============================stress=========================================
note that if you try this you need the old fifis.
rmmod rtai_fifos
insmod ../../oldfifos/rtai_fifos
insmod rt_process
./checkp
> F r 201 7362274
> F r 201 7362275
> F r 201 7362276
> F r 201 7362277
> F r 201 7362279
> F r 201 7362279
> F r 201 7362281
> F r 201 7362282
> F r 201 7362284
./checkl
*** min: -5794, max: 6102 average: -3623 flags: 201***
*** min: -4840, max: 5114 average: -3609 flags: 201***
*** min: -4772, max: 5670 average: -3606 flags: 201***
*** min: -4840, max: 6414 average: -3613 flags: 201***
*** min: -4840, max: 8034 average: -3616 flags: 201***
*** min: -4780, max: 3784 average: -3614 flags: 201***
*** min: -4780, max: 6641 average: -3601 flags: 201***
*** min: -4742, max: 5401 average: -3605 flags: 201***
Read the README and the source to work out what is happening.
=============================================================================
for the mbx test
[root@pasrack3 mbx]# insmod ../../portable_shm/rtai_shm
[root@pasrack3 mbx]# insmod rt_process
[root@pasrack3 mbx]# sleep 10
[root@pasrack3 mbx]# rmmod rt_process
Again read the README and the source to work out what is happening.
=============================================================================
I strongly you try out the lxrt stuff and try to work out what is
happening..
That's it you're on your own now.
=====================================================================
Example Reboot Problem.
I'm running RedHat and my ehternet card
doesn't work now...
Solution #1
something to do with
cat /proc/version >/lib/modules/2.2.13-RTL2.0/.rhkmvtag
but this still does not work. I am working on it.
So
Solution #2
add
# load up eth0
/sbin/modprobe eth0
to /etc/rc.d/rc.sysinit
near the end
Hope this helps
Phil Wilshire
This archive was generated by hypermail 2b25 : Fri Nov 12 1999 - 18:39:10 CST