Home
License
Background
Screenshots
Features
Usage
Desktop
Download
Installation
Docs
   

Installation

These instructions apply to version 3.1 (Mongoose).

Compiling and installing Linux-SRT is done in several steps, each of which is explained in detail below. You should be comfortable with recompiling the Linux kernel before trying this.

Send email to dmi@uk.research.att.com if you experience any problems with the installation.

Summary:

1. Unpack archive
2. Install plain 2.2.15 kernel
3. Patch kernel
4. Build kernel
5. Create new device
6. Build command line tools
7. Build qps
8. Build XFree86
9. Build Afterstep
10. Configuration and getting started
11.   Report bugs
Note: commands shown in red must be typed as root, and those in green as a normal user.

1. Unpack archive

I'll assume you've downloaded the software to ~/mongoose_31.tar.gz and are now in your home directory. Lets unpack everything into ~/mongoose_31:
tar xzvf mongoose_31.tar.gz

2. Install plain 2.2.15 kernel

Linux-SRT is currently based on the 2.2.15 kernel, so if you are using an older or more recent kernel you will need to change to 2.2.15.

As an example I'll assume your machine currently runs Linux 2.X.Y, and you've downloaded a copy of the 2.2.15 source to ~/linux-2.2.15.tar.gz (say). The method described will preserve your existing kernel source tree.

Move installed kernel out of the way:

cd /usr/src
mv linux linux-2.X.Y
Install new kernel:
tar xzvf ~/linux-2.2.15.tar.gz
Tidy up with a symlink:
mv linux linux-2.2.15
ln -s linux-2.2.15 linux

3. Patch kernel

Stay in the /usr/src directory for this step. First check there is a subdirectory here called linux-2.2.15, amongst others (created by the previous step), then do:
cd linux-2.2.15
patch -p1 <~userid/mongoose_31/lsrt-r31.patch
Substitute your own user name for `userid', of course.

4. Build kernel

Build the new kernel in the usual way. Typically this involves the following steps:
cd /usr/src/linux
make xconfig
At this stage you should go into "General setup" and make sure the "Kernel events" option is switched on. Configure the rest of the kernel as usual for your hardware, then continue:
make dep; make clean
make bzImage
make modules
make modules_install
Install the kernel as you normally would, probably something like this:
cp arch/i386/boot/bzImage /boot
lilo
Reboot your machine and check everything works as you expect (you may need to go back to the make xconfig stage if you've forgotten a module, for example). If there are no problems, continue.
uname -r
ls /proc
If uname reports 2.2.10-SRT3 and the files /proc/sched, /proc/events and /proc/reserves exist (you can cat them if you like), you know the Linux SRT kernel is now running properly. Congratulations!

5. Create new device

mknod /dev/events c 1 15

6. Build command line tools

cd ~/mongoose_31/tools
make
make install
This puts two essential commands and one library file in /usr/local.

7. Build qps

cd ~/mongoose_31/qps-1.9.5-lsrt3
Take a look at the Makefile in this directory before you compile qps. You should check that the definitions near the top of the file specify the right locations for Qt and the moc compiler on your system (use locate to find them if you don't know).

Now continue:

make
cp qps /usr/local/bin
cp qps.1 /usr/local/man/man1

8. Build XFree86

Note: This step is optional but recommended. If you skip it you will not be able to apply real time scheduling accurately to graphics-intensive processes, nor will the window manager integration work.

(a) Compiling from source

To compile XFree86 3.3.6 from source you need 310 MB of disk space and probably several hours of CPU time, depending on the speed of your machine. It's a good idea to backup your entire /usr/X11R6 directory before you start, and save a copy of your XFree86Config file somewhere handy too.

I'll assume you've unpacked the XFree86 3.3.6 source in your home directory. You should now see a subdirectory called xc.

cd ~/xc
patch -p1 <~/mongoose_31/x11-r31.patch
make World
make install
Make sure you're not actually running X when you come to install it on the last line! See the instructions supplied with XFree86 if you need more information.

All being well, you can start your freshly compiled X server now. You might like to run this:

tail -f /var/log/messages
Then try starting some new X clients; the log file should report their PID's as each one connects to the X server.

(b) Using the precompiled binary

If you use the SVGA server, you can download a precompiled binary instead. This is a drop-in replacement for systems which are already using a standard release of XFree86 3.3.6.
tar xzvf svga_bin_lsrt_31.tar.gz
cd svga_bin_lsrt_31
make install

9. Build Afterstep

Note: If you don't wish to use the Afterstep integration, you can skip step 9.

Lets assume once more that you've unpacked the source in your home directory.

cd ~/AfterStep-1.8.0
patch -p1 <~/mongoose_31/afterstep-r3.patch
./configure --disable-savewindows
make
make install
I use the savewindows switch because I don't like session management, but thats up to you.

Configuring Afterstep requires Jedi levels of expertise and I won't attempt to cover it here. Take a look at the "Desktop" section on the Linux-SRT web page for the directives you need to enable the new window manager features. The titlebar button images which I use can be found in ~/mongoose_31/titlebar/; you might like to add that to your PixmapPath or copy them into ~/afterstep/desktop/icons/common/.

10. Configuration and getting started

cp ~/mongoose_31/config/qosrc /etc
You can then modify the default /etc/qosrc to suit your tastes. Try to avoid assigning POSIX (fixed) RT priorities with no upper limit to buggy applications - if they enter an infinite loop you will lose control and have to reboot and fsck.

Make sure your DISPLAY variable is set to `:0.0'. If you use a fully qualified hostname here instead, the real time X server will treat all clients as remote and won't be able to prioritize them (it will also use slower TCP/IP sockets rather than UNIX domain sockets for communication with the clients).

Next, add the following fragment to your system boot scripts (on Slackware the file to modify is /etc/rc.d/rc.local; other systems may vary slightly):

if [ -e /proc/reserves ]; then
   /usr/local/sbin/autoqosd
fi
To save rebooting you may as well run autoqosd by hand now. Then
cat /proc/reserves
to check the AutoQOS feature has configured itself correctly (it should echo the named reserves defined by /etc/qosrc).

That's it! You're done. You can read the documentation contained in the archive (see ~/mongoose_31/documentation/) or on the Linux-SRT web page for more information.

11. Report bugs

I'd be grateful for any e-mail reports stating whether Linux-SRT worked on your system, and if anything needs to be fixed!


Maintained by David Ingram (last updated 11 May 2000)
Send comments to
dmi@uk.research.att.com

Copyright 2000 - AT&T Laboratories Cambridge