Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Till Straumann built a newer version of linuxRT to support the new hardware.

These servers are all Intel-based targets that now run linuxRT (embedded linux) with uClibc and PREMPT_RT patch.

The important change to the linuxRT RTOS was the addition of support for the Broadcom NIC chipsets which are ethernet network controllers found in these servers.

...

There are a few scripts that automate this process.

To begin with, there is the 'ipxe.ini' script in the tftp boot area /afs/slac/g/lcls/tftpboot/linuxRT/boot that PXE will run.

This is where the version of (linuxRT) kernel to run is specified as follows:

set vers 3.2.13-121108

This version number can be over-ridden by a chained, host-specific pxe init script to load an image different from the above:

chain ${hostname}.ipxe ||

For example, we have defined a script specifically for our ioc ioc-b34-bd32.ipxe which chooses to load the latest linuxRT image:

...

Additional NFS Mount Points for linuxRT pertaining to the ioc data directory $IOC_DATA are mounted as well
9.

The next line in the startup.cmd file loads the linuxRT kernel modules.

More on kernel modules under question (10).

This can also be done only by the "root" user:

/afs/slac/g/lcls/epics/iocCommon/ioc-b34-bd32/kernel-modules.cmd

Next we must start the caRepeater process:

(http://www.aps.anl.gov/epics/base/R3-14/12-docs/CAref.html#Repeater)

"When several client processes (virtual iocs) run on the same host it is not possible for all of them to directly receive a copy of the server beacon messages when the beacon messages are sent to unicast addresses, or when legacy IP kernels are still in use. To avoid confusion over these restrictions a special UDP server, the CA Repeater, is automatically spawned by the CA client library when it is not found to be running. This program listens for server beacons sent to the UDP port specified in the EPICS_CA_REPEATER_PORT parameter and fans any beacons received out to any CA client program running on the same host that have registered themselves with the CA Repeater. If the CA Repeater is not already running on a workstation, then the "caRepeater" program must be in your path before using the CA client library for the first time."

So we add the following lines to startup.cmd to start a caRepeater for all EPICS VIOCs that may be hosted by this CPU:

export EPICS_CA_REPEATER_PORT=5067

su laci -c /afs/slac/g/lcls/epics/R3-14-12-3_1-0/base/base-R3-14-12-3_1-0/bin/linuxRT-x86/caRepeater

Finally, it is possible to automatically startup one or more EPICS IOCs right here and detach them using the linux screen program.

We can start another shell such that a user called "laci" can start the IOC process instead of the "root" user:

su laci -c /afs/slac/g/lcls/epics/iocCommon/ioc-b34-bd32/startup-laci-rt.cmd

Under linuxRT,  a few real time processes that need real time scheduler and kernel memory locking features, can be specifically run as such.

The screen process does not need or have RT priority.

 The _MAIN_ thread in epics application process, which is started  doesn't have the RT priority either.

But, other threads which are created by the _MAIN_ thread may need RT priority.

Kukhee provides some information about this to find out which processes are running with real-time priorities:


More on startup-laci-rt.cmd under Question (13).
9. How do I monitor the server remotely as it boots up - after a power-cycle or after a 'reboot' command?

Thuy has setup the BIOS of all the linux servers used for linuxRT development, to How do I monitor the server remotely as it boots up - after a power-cycle or after a 'reboot' command?Thuy has setup the BIOS of the Dell Linux Servers and other servers used for linuxRT development, to re-direct the
console (monitor) output to one of the serial ports. This allows us to watch the boot process remotely via our standard 'iocConsole'
python script. iocConsole uses the 'screen' process to accomplish this re-direction.

...

To see the PCI devices in your system type the following command:

# lspci

 

 

 

 


10. What are kernel modules and how are they loaded in linuxRT?

...