Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Applying RT-Patch added for what can be done externally

...

Info

If you want to make changes to a RPI which is already set up, you have to remount the read-only filesystem.

  • Install Raspbian Lite
  • Change password by using:
    passwd pi
  • Activate SSH: sudo systemctl enable ssh  and  sudo systemctl start ssh
  • Install and configure NTP
  • Install tmux: sudo apt install tmux
  • "Install" the RTI Connext libraries under /usr/local/lib/ by copying the arm-folder from the Main PC under opt/rti_connext_dds-6.0.0/lib/armv6vfphLinux3.xgcc4.7.2/. This can of course only be done after the ARM libraries have been installed on the Main Computer

...

sudo mount -o remount,rw /
sudo mount -o remount,rw /boot

to remount the system.

Applying RT-Patch

Because the vehicle needs to be real-time capable, a real-time patch (RT-Patch) should be applied to the underlying Linux Kernel.

Follow these instructions to build the kernel. It is recommended to use the section Cross-Compiling instead of Local Building to speed up the process (e.g. ~15 minutes vs. ~2 hours). Additionally, there has to be done several annotations:

  • Get Sources: 
    • Make sure that there exists a real-time patch for the current kernel version. You can see this version by looking at the first lines of the makefile residing in the cloned directory, e.g., by using
      head Makefile -n 4
      The currently existing real-time patches can be found here.
  • Before Build sources
    • Download the RT-Patch matching your kernel version and patch the kernel according to these instructions. (Execute the patch-command in the root directory of the cloned git repository.)
  • Build sources
    • Run the commands which depend on the RPi version.
    • Run make menuconfig, navigate to General Setup > Preemption Model, choose Fully Preemptible Kernel (RT) and save.
    • Run the lastly given make command.
      • Make sure to use the parameter -j i to configure how many threads are used for this command in order to speed up this process as explained.
      • It might happen that you are asked to set up the .config file again which you already configured in the last step. (The console will show something like *Restart config... and asks you questions.) Then press strg+c and replace the command by
        make ARCH=arm menuconfig CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
        Now, the menu will open again, but you can quit that by only ?saving? and leaving the menu. Afterwards, the process should start building as usual.

Troubleshooting

It might happen that the system clock is not automatically synchronizing via NTP if it differs too much from the real-time. Firstly, take care that your timezone is set correctly:

...