Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

realtime_kernel

  • Clone with SSH
  • Clone with HTTPS
  • Forked from CeTI / ROS / Ubuntu Realtime Kernel
    21 commits behind the upstream repository.
    Name Last commit Last update
    .gitlab-ci.yml
    README.md
    compile.bash
    config

    Realtime Kernel for Ubuntu 18.4

    These are deb packages built for Ubuntu Bionic. The packages are created following advice from Stackoverflow and the Panda manuals.

    Information

    The kernel is built automatically by the CI from the linux kernel sources version 5.4, using the latest kernel version for which a real time patch is available. For more information on how the kernel is built, please review the compile.bash script.

    It's config file is based on the config provided by a Unbuntu Bionic installation with two changes:

    • The preemption model ist set to Fully Preemptible Kernel (RT).
    • Compile the kernel with debug info (DEBUG_INFO) is set to no.

    Before the build, if the new kernel version contains new config keys, the corresponding values are set to their defaults.

    Installation

    • ⚠️ ATTENTION Make sure secureboot is disabled. Currently, the compiled kernel is unsigned and thus, will not work with secureboot.
    • ⚠️ ATTENTION The repository does not contain the kernel packges, they are built by the CI and and can be downloaded.
    • Download the latest kernel packages built by the CI.
    • Install the packages using dpkg -i.

    Verifying that the Realtime Kernel is Running

    • Reboot after kernel installation, selecting the new kernel in the boot loader.
    • Run uname -a, the result should contain the kernel version number from the installed deb package as well as PREEMPT RT.

    Set User Permissions

    • Add a group named realtime and add the user controlling your robot to this group:
      sudo addgroup realtime
      sudo usermod -a -G realtime $(whoami)
    • Add the following limits to the realtime group in /etc/security/limits.conf:
      @realtime soft rtprio 99
      @realtime soft priority 99
      @realtime soft memlock 102400
      @realtime hard rtprio 99
      @realtime hard priority 99
      @realtime hard memlock 102400
    • Log off and on again to let the group assignment and realtime priorities take effect (or, to be safe, restart). Use the command groups to check if the the current user belongs to the realtime group.