261 lines
12 KiB
Plaintext
261 lines
12 KiB
Plaintext
|
TimeSys Linux Install HOWTO
|
|||
|
|
|||
|
Trevor Harmon
|
|||
|
|
|||
|
<trevor@vocaro.com>
|
|||
|
|
|||
|
2005-04-05
|
|||
|
Revision History
|
|||
|
Revision 1.0 2005-04-05 Revised by: TH
|
|||
|
first official release
|
|||
|
|
|||
|
|
|||
|
This document is a quick-start guide for installing TimeSys Linux on a
|
|||
|
typical desktop workstation.
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
Table of Contents
|
|||
|
1. Introduction
|
|||
|
1.1. Background
|
|||
|
1.2. Copyright and License
|
|||
|
1.3. Disclaimer
|
|||
|
1.4. Feedback
|
|||
|
|
|||
|
|
|||
|
2. Requirements
|
|||
|
3. Install the packages
|
|||
|
4. Prepare the source directories
|
|||
|
5. Configure the kernel
|
|||
|
6. Compile the kernel
|
|||
|
7. Prepare for rebooting
|
|||
|
8. Rebooting
|
|||
|
9. Further Information
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
1.1. Background
|
|||
|
|
|||
|
TimeSys Linux is a derivative of Linux created by [http://www.timesys.com/]
|
|||
|
TimeSys Corporation. It includes a fully preemptible kernel, a constant-time
|
|||
|
scheduler, fully schedulable interrupt handlers, fully schedulable soft-IRQs,
|
|||
|
and reduced interrupt disable times. These features reduce latency to a point
|
|||
|
where TimeSys Linux can be used as a Real-Time Operating System (RTOS).
|
|||
|
|
|||
|
TimeSys Linux comes in four flavors:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> TimeSys Linux/GPL ?? The basic TimeSys Linux kernel; offers full
|
|||
|
preemption at the kernel level, prioritized interrupt handlers, and so
|
|||
|
on.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> TimeSys Linux/Real-time ?? Makes Linux a true RTOS by adding priority
|
|||
|
inheritance and a POSIX-based high-resolution timer API.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> TimeSys Linux/CPU ?? Adds support for CPU reservation, which gives a
|
|||
|
thread, process, or process group exclusive use of the CPU.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> TimeSys Linux/Net ?? Adds support for network bandwidth reservation,
|
|||
|
guaranteeing that your thread or process will get the bandwidth it
|
|||
|
requires, regardless of network activity in other processes.
|
|||
|
|
|||
|
|
|||
|
This document deals with the first variant, GPL, as it is the only one
|
|||
|
available for free. The GPL version is unsupported by TimeSys Corporation
|
|||
|
(unless you purchase a support contract, of course), and thus the
|
|||
|
documentation for it is a bit lacking.
|
|||
|
|
|||
|
To be fair, the documentation for installing TimeSys Linux onto an embedded
|
|||
|
board and cross-compiling code for it is fairly good. The problem is that
|
|||
|
TimeSys charges for the toolchains necessary for cross-compiling, and even
|
|||
|
then, many first-time users may not wish to start compiling for a target
|
|||
|
board right away. They may just want to try out TimeSys Linux, or they may
|
|||
|
not even have an embedded board to begin with. TimeSys Corporation's
|
|||
|
documentation does not help these users.
|
|||
|
|
|||
|
In this mini-HOWTO, I try to rectify this situation somewhat by explaining
|
|||
|
how to install TimeSys Linux/GPL onto a typical "beige box" desktop
|
|||
|
workstation. Although this is clearly not the intended platform for TimeSys
|
|||
|
Linux, installing the kernel onto a plain-vanilla desktop is an easy way to
|
|||
|
get started quickly and play around with some real-time applications, such as
|
|||
|
the [https://rtsj.dev.java.net/] RTSJ [http://www.timesys.com/products/java/]
|
|||
|
Reference Implementation.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.2. Copyright and License
|
|||
|
|
|||
|
This document, TimeSys Linux Install mini HOWTO, is copyrighted (c) 2005 by
|
|||
|
Trevor Harmon and is licensed under the Creative Commons
|
|||
|
Attribution-Sharealike 2.0 License. Terms and conditions for distribution can
|
|||
|
be found at [http://creativecommons.org/licenses/by-sa/2.0/] http://
|
|||
|
creativecommons.org/licenses/by-sa/2.0/.
|
|||
|
|
|||
|
TimeSys is a registered trademark of TimeSys Corporation.
|
|||
|
|
|||
|
Linux is a registered trademark of Linus Torvalds.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.3. Disclaimer
|
|||
|
|
|||
|
No liability for the contents of this document can be accepted. Use the
|
|||
|
concepts, examples and information at your own risk. There may be errors and
|
|||
|
inaccuracies that could be damaging to your system. Proceed with caution, and
|
|||
|
although this is highly unlikely, the author does not take any
|
|||
|
responsibility.
|
|||
|
|
|||
|
All copyrights are held by their by their respective owners, unless
|
|||
|
specifically noted otherwise. Use of a term in this document should not be
|
|||
|
regarded as affecting the validity of any trademark or service mark. Naming
|
|||
|
of particular products or brands should not be seen as endorsements.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.4. Feedback
|
|||
|
|
|||
|
Feedback is welcome for this document. Send your additions, comments, and
|
|||
|
criticisms to <trevor@vocaro.com>.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2. Requirements
|
|||
|
|
|||
|
For this HOWTO, I assume that you have the following:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> [ftp://ftp.redhat.com/pub/redhat/linux/9/en/] Red Hat Linux 9 [1]
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> [http://timesys.com/index.cfm?bdy=linux_bdy_download.cfm&item_id=3827]
|
|||
|
TimeSys Linux 4.1 Build 155 for the generic Pentium [2]
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> Pentium-class computer capable of running Red Hat Linux 9
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
3. Install the packages
|
|||
|
|
|||
|
Your first task is to install Red Hat Linux 9 on the desktop computer that
|
|||
|
will be running TimeSys Linux. If you already have a computer with RHL9 on it
|
|||
|
(or even just a boot partition that has it), you can skip this step, but a
|
|||
|
clean installation is always best. Be sure to choose the Workstation
|
|||
|
installation option so that all of the development packages get installed.
|
|||
|
|
|||
|
Next, make sure that the kernel-source package is installed. You can do this
|
|||
|
by typing:
|
|||
|
# rpm -q kernel-source
|
|||
|
|
|||
|
If it's not installed, retrieve it by whatever means you prefer, such as
|
|||
|
downloading the binary RPM from Red Hat's [ftp://ftp.redhat.com/pub/redhat/
|
|||
|
linux/9/en/os/i386/RedHat/RPMS/] FTP site, then install it with:
|
|||
|
# rpm -Uvh kernel-source-2.4.20-8.i386.rpm
|
|||
|
|
|||
|
Copy the TimeSys Linux distribution archive to the computer running RHL9
|
|||
|
and extract it. Switch to the TimeSys-x86bsp directory that was created and
|
|||
|
run ./install as root. This will put all of the TimeSys Linux files into /opt
|
|||
|
/timesys.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4. Prepare the source directories
|
|||
|
|
|||
|
Before compiling the TimeSys Linux kernel, you need to set up the source
|
|||
|
directories so that the kernel knows about all the drivers and things on your
|
|||
|
system. To do so, issue the following commands:
|
|||
|
# cd /usr/src
|
|||
|
# mv linux linux.old # Only if the linux directory already exists
|
|||
|
# mv linux-2.4 linux-2.4.old
|
|||
|
# ln -s /opt/timesys/linux/4.1/x86bsp/src/2.4.21-timesys-4.1/kernel linux
|
|||
|
# ln -s /opt/timesys/linux/4.1/x86bsp/src/2.4.21-timesys-4.1/kernel linux-2.4
|
|||
|
|
|||
|
Note that in the above commands, you may need to change x86bsp and the
|
|||
|
version numbers as needed for the TimeSys Linux package that you downloaded.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
5. Configure the kernel
|
|||
|
|
|||
|
You are now ready to compile the TimeSys Linux kernel. Begin by executing
|
|||
|
these commands:
|
|||
|
# cd linux
|
|||
|
# make menuconfig
|
|||
|
|
|||
|
Note that you cannot skip the above step and edit the .config file
|
|||
|
yourself. Running the configuration utility and saving your changes generates
|
|||
|
files that are necessary for compiling the kernel.
|
|||
|
|
|||
|
If you had performed a clean install of Red Hat Linux 9, then most likely
|
|||
|
you don't need to change any of the configuration options that appear.
|
|||
|
However, if you have any strange hardware or just want to perform a "sanity
|
|||
|
check", you should walk through the menus and enable whatever drivers and
|
|||
|
options you need. For instance, you may need to add Ethernet drivers for
|
|||
|
whatever network card you have. If you are installing to a laptop, don't
|
|||
|
forget to enable General Setup --> PCMCIA/CardBus Support before going to the
|
|||
|
Network device support page so that you can see the PCMCIA Ethernet drivers.
|
|||
|
If you have a USB keyboard or mouse, be sure USB devices are enabled. You
|
|||
|
should also make sure that Block Devices --> Loopback device support is
|
|||
|
enabled. And it wouldn't hurt to check other likely prerequisites, such as
|
|||
|
Networking options --> IP: DHCP support.
|
|||
|
|
|||
|
When you are satisfied with the configuration, exit and save.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6. Compile the kernel
|
|||
|
|
|||
|
The next step is to compile TimeSys Linux:
|
|||
|
# make dep
|
|||
|
# make bzImage [3]
|
|||
|
# make modules
|
|||
|
# make modules_install
|
|||
|
# make install
|
|||
|
|
|||
|
The make install should have put the kernel into /boot and even added a
|
|||
|
TimeSys entry into GRUB for you. If you want the new kernel to boot by
|
|||
|
default, edit /etc/grub.conf and change the default line to the appropriate
|
|||
|
zero-based index corresponding to the TimeSys kernel entry. (This will
|
|||
|
probably be 0).
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
7. Prepare for rebooting
|
|||
|
|
|||
|
At this point, the kernel is prepped and ready, but if you reboot now, your
|
|||
|
system won't come back up due to device file system errors. The problem is
|
|||
|
that TimeSys Linux depends on the devfs file system.
|
|||
|
|
|||
|
To solve this problem, install [ftp://ftp.atnf.csiro.au/pub/people/rgooch/
|
|||
|
linux/daemons/devfsd/devfsd-v1.3.25.tar.gzdevfsd] devfsd from [http://
|
|||
|
www.atnf.csiro.au/people/rgooch/linux/] Richard Gooch's site. Extract the tar
|
|||
|
file, then copy it to /usr/src/redhat/SOURCES/. Switch to the directory where
|
|||
|
the file extracted to, then run:
|
|||
|
# rpmbuild -ba rpm.spec [4]
|
|||
|
|
|||
|
This should build the devfs package and place it in /usr/src/redhat/RPMS/
|
|||
|
i386/. You can then install this RPM by typing:
|
|||
|
# rpm -Uvh /usr/src/redhat/RPMS/i386/devfsd-1.3.25-1.i386.rpm
|
|||
|
|
|||
|
Normally, you would now need to add the line /sbin/devfsd /dev into /etc/
|
|||
|
rc.d/rc.sysinit, but Red Hat Linux 9 should already have done this for you
|
|||
|
during installation.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
8. Rebooting
|
|||
|
|
|||
|
Congratulations! You're done! You can now reboot into the TimeSys Linux/GPL
|
|||
|
kernel.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
9. Further Information
|
|||
|
|
|||
|
Here are some web sites related to TimeSys Linux that you may find useful:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://sourceforge.net/projects/timesysgpl] TimeSys Linux/GPL on
|
|||
|
SourceForge ?? an independent project that hosts TimeSys Linux/GPL
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.linuxjournal.com/article/4142] Review of TimeSys Linux/RT by
|
|||
|
Linux Journal ?? a brief look at the RT version (not GPL) of TimeSys
|
|||
|
Linux
|
|||
|
|
|||
|
|
|||
|
Notes
|
|||
|
|
|||
|
[1] Other Linux distributions are compatible with TimeSys Linux, but I find
|
|||
|
that RHL9 is the most TimeSys-friendly.
|
|||
|
[2] Other versions should work, of course, but this is the one I tested.
|
|||
|
Note, too, that TimeSys may occasionally update its kernel with security
|
|||
|
fixes, so obtaining the most recent build is recommended.
|
|||
|
[3] If you get errors about not finding i586-linux-gcc, edit the Makefile
|
|||
|
and comment out the line about CROSS_COMPILE.
|
|||
|
[4] If your system can't find rpmbuild, you may need to install the
|
|||
|
rpm-build package first.
|