Skip to content

Commit 0c9b410

Browse files
authored
Merge pull request #53 from razr/master-ubuntu-24.04
update to 24.04
2 parents 6b755d1 + 5cd225c commit 0c9b410

File tree

5 files changed

+94
-74
lines changed

5 files changed

+94
-74
lines changed

.config-fragment

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,5 @@ CONFIG_PERF_EVENTS=y
2626
CONFIG_DEBUG_INFO=n
2727
CONFIG_IKCONFIG=y
2828
CONFIG_IKCONFIG_PROC=y
29+
CONFIG_SYSTEM_TRUSTED_KEYS=""
30+
CONFIG_SYSTEM_REVOCATION_KEYS=""

.github/workflows/build-stable.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ on:
44
workflow_dispatch:
55
inputs:
66
kernel_version:
7-
description: 'Raspi kernel version, 5.4.0|5.15.0'
8-
default: '5.15.0'
7+
description: 'Raspi kernel version, 6.8.0'
8+
default: '6.8.0'
99
required: false
1010
type: string
1111
ubuntu_version:
12-
description: 'Ubuntu version, focal|jammy'
13-
default: 'jammy'
12+
description: 'Ubuntu version, jammy|noble'
13+
default: 'noble'
1414
required: false
1515
type: string
1616
uname_r:
17-
description: 'raspi release in a form of <5.15.0-1012-raspi>'
17+
description: 'raspi release in the form of <6.8.0-1005-raspi>'
1818
required: true
19-
default: '5.15.0-1012-raspi'
19+
default: '6.8.0-1005-raspi'
2020
type: string
2121
lttng_version:
2222
description: 'LTTNG version 2.13'

.github/workflows/rpi4-kernel-build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ jobs:
5555

5656
- name: Get available space
5757
run: |
58+
sudo rm -rf /usr/local/lib/android
59+
sudo rm -rf /usr/share/dotnet
5860
cd /
5961
df -H
6062

Dockerfile

Lines changed: 62 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
1-
# A Dockerfile to build an RT kernel for the RPI4 based on Ubuntu 20.04 or 22.04 RPI4 kernel
1+
# A Dockerfile to build an RT kernel for the Raspberry Pi based on Ubuntu 24.04
22
#
3-
# If run without parameters the Docker image is created to built RT_PREEMPT patched version of the latest 5.15 raspi kernel
3+
# If run without parameters the Docker image is created to built RT_PREEMPT patched version of the latest 6.8 raspi kernel
44
# The Docker build command accepts the following build arguments:
55
# $ docker build [--build-arg UBUNTU_VERSION=<ubuntu name>] [--build-arg KERNEL_VERSION=<kernel version>]
66
# [--build-arg UNAME_R=<raspi release>] [--build-arg RT_PATCH=<RT patch>]
77
# [--build-arg LTTNG_VERSION=<LTTNG version>] -t rtwg-image .
88
#
99
# where
10-
# <ubuntu name> is jammy or focal, default is jammy
11-
# <kernel version> is 5.4.0 or 5.15.0, default is 5.15.0
12-
# <raspi release> is in a form of 5.15.0-1023-raspi, if not defined the lastest version is taken
10+
# <ubuntu name> is noble, default is noble
11+
# <kernel version> is in a form of 6.8.0, default is 6.8.0
12+
# <raspi release> is in a form of 6.8.0-1005-raspi, if not defined the lastest version is taken
1313
# see http://ports.ubuntu.com/pool/main/l/linux-raspi/
14-
# <RT patch> is in a form of 5.15.76-rt53, if not defined the closest to the defined <raspi release> is taken
15-
# see http://cdn.kernel.org/pub/linux/kernel/projects/rt/5.15/older
14+
# <RT patch> is in a form of 6.8.2-rt11, if not defined the closest to the defined <raspi release> is taken
15+
# see https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.8/
1616
# <LTTNG version> is 2.13, default is 2.13
1717
#
18-
# To build a Docker image for the latest 5.15 raspi kernel run
18+
# To build a Docker image for the latest raspi kernel, run
1919
# $ docker build -t rtwg-image .
2020
#
21-
# To build a Docker image for the latest 5.4 raspi kernel run
22-
# $ docker build --build-arg UBUNTU_VERSION=focal --build-arg KERNEL_VERSION=5.4.0 -t rtwg-image .
21+
# To build a Docker image for the stable raspi kernel, run
22+
# $ docker build --build-arg UBUNTU_VERSION=noble --build-arg KERNEL_VERSION=6.8.0 --build-arg UNAME_R=6.8.0-1005-raspi -t rtwg-image .
2323
#
2424
# After that the Docker image is prepared and ready to run
2525
# $ docker run -it rtwg-image bash
2626
#
2727
# and then inside the docker
28-
# $ cd $HOME/linux_build/linux-raspi
28+
# $ cd /linux_build/linux-raspi
2929
# $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LOCALVERSION=-raspi -j `nproc` bindeb-pkg
3030
#
31-
# user ~/linux_build/linux-raspi $ ls -la ../*.deb
32-
# -rw-r--r-- 1 user user 8123580 Jan 16 16:34 ../linux-headers-5.15.74-rt53-raspi_5.15.74-rt53-raspi-1_arm64.deb
33-
# -rw-r--r-- 1 user user 58802024 Jan 16 16:34 ../linux-image-5.15.74-rt53-raspi_5.15.74-rt53-raspi-1_arm64.deb
34-
# -rw-r--r-- 1 user user 1185420 Jan 16 16:34 ../linux-libc-dev_5.15.74-rt53-raspi-1_arm64.deb
31+
# user /linux_build/linux-raspi $ ls -la ../*.deb
32+
# -rw-r--r-- 1 user user 9355162 Jul 1 16:44 ../linux-headers-6.8.4-rt11-raspi_6.8.4-g75867ff0890f-4_arm64.deb
33+
# -rw-r--r-- 1 user user 70457678 Jul 1 16:44 ../linux-image-6.8.4-rt11-raspi_6.8.4-g75867ff0890f-4_arm64.deb
34+
# -rw-r--r-- 1 user user 1377154 Jul 1 16:44 ../linux-libc-dev_6.8.4-g75867ff0890f-4_arm64.deb
3535
#
36-
# copy deb packages to the host, or directly to the RPI4 target
36+
# copy deb packages to the host, or directly to the Raspberry Pi target
3737
# $ scp ../*.deb <user>@172.17.0.1:/home/<user>/.
3838

39-
FROM ubuntu:focal
39+
FROM ubuntu:noble
4040

4141
USER root
4242
ARG DEBIAN_FRONTEND=noninteractive
@@ -51,8 +51,8 @@ ARG ARCH=arm64
5151
ARG UNAME_R
5252
ARG RT_PATCH
5353
ARG triple=aarch64-linux-gnu
54-
ARG KERNEL_VERSION=5.15.0
55-
ARG UBUNTU_VERSION=jammy
54+
ARG KERNEL_VERSION=6.8.0
55+
ARG UBUNTU_VERSION=noble
5656
ARG LTTNG_VERSION=2.13
5757
ARG KERNEL_DIR=linux-raspi
5858

@@ -61,13 +61,18 @@ RUN apt-get update && apt-get install -q -y \
6161
gcc-${triple} \
6262
&& dpkg --add-architecture ${ARCH} \
6363
&& sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list \
64-
&& add-apt-repository -n -s "deb [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -s -c) main universe restricted" \
65-
&& add-apt-repository -n -s "deb [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports $(lsb_release -s -c)-updates main universe restricted" \
64+
&& sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list.d/* \
65+
&& sed -i '/Components/a\Architectures: amd64' /etc/apt/sources.list.d/*.sources \
66+
&& echo "deb [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -s -c) main universe restricted" >> /etc/apt/sources.list.d/ubuntu-ports.list \
67+
&& echo "deb-src [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -s -c) main universe restricted" >> /etc/apt/sources.list.d/ubuntu-ports.list \
68+
&& echo "deb [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports $(lsb_release -s -c)-updates main universe restricted" >> /etc/apt/sources.list.d/ubuntu-ports.list \
6669
&& rm -rf /var/lib/apt/lists/*
6770

6871
# setup environment
69-
ENV LANG C.UTF-8
70-
ENV LC_ALL C.UTF-8
72+
ENV LANG=C.UTF-8
73+
ENV LC_ALL=C.UTF-8
74+
ENV UID=1000
75+
ENV GID=1000
7176

7277
# install build deps
7378
RUN apt-get update && apt-get build-dep -q -y linux \
@@ -76,56 +81,67 @@ RUN apt-get update && apt-get build-dep -q -y linux \
7681
fakeroot \
7782
&& rm -rf /var/lib/apt/lists/*
7883

84+
# remove ubuntu user to set our own
85+
RUN userdel -r ubuntu
86+
7987
# setup user
8088
RUN apt-get update && apt-get install -q -y sudo \
81-
&& useradd -m -d /home/user -s /bin/bash user \
89+
&& groupadd -g $GID user \
90+
&& useradd -m -d /home/user -s /bin/bash -u $UID -g $GID user \
8291
&& gpasswd -a user sudo \
8392
&& echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \
8493
&& echo 'user\nuser\n' | passwd user \
8594
&& rm -rf /var/lib/apt/lists/*
8695

8796
# install extra packages needed for the patch handling
88-
RUN apt-get update && apt-get install -q -y wget curl gzip git time \
97+
RUN apt-get update && apt-get install -q -y wget curl gzip git bash-completion time \
8998
&& rm -rf /var/lib/apt/lists/*
9099

100+
# install lttng dependencies
101+
RUN sudo apt-get update \
102+
&& sudo apt-get install -y libuuid1 libpopt0 libxml2 numactl
103+
104+
# Create a directory and set permissions
105+
RUN mkdir -p /linux_build && chown user:user /linux_build
106+
107+
# Define the volume
108+
VOLUME /linux_build
109+
91110
USER user
92111

93112
# find the latest UNAME_R and store it locally for the later usage
94113
# if $UNAME_R is set via --build-arg, take it
95114
RUN if test -z $UNAME_R; then UNAME_R=`curl -s http://ports.ubuntu.com/pool/main/l/linux-raspi/ | grep linux-buildinfo | grep -o -P '(?<=<a href=").*(?=">l)' | grep ${ARCH} | grep ${KERNEL_VERSION} | sort | tail -n 1 | cut -d '-' -f 3-4`-raspi; fi \
96115
&& echo $UNAME_R > /home/user/uname_r
97116

117+
# Set the working directory
118+
WORKDIR /linux_build
119+
98120
# install linux sources from git
99-
RUN mkdir /home/user/linux_build \
100-
&& cd /home/user/linux_build \
101-
&& git config --global https.postBuffer 1048576000 \
102-
&& time git clone -b master --depth 1 --single-branch https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/${UBUNTU_VERSION} ${KERNEL_DIR} \
121+
RUN git config --global https.postBuffer 1048576000 \
122+
&& git clone -b master --depth 1 --single-branch --jobs=$(($(nproc) * 2)) --progress https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/${UBUNTU_VERSION} ${KERNEL_DIR} \
103123
&& cd ${KERNEL_DIR} \
104124
&& git fetch --tag
105125

106126
# checkout necessary tag
107-
RUN cd /home/user/linux_build/${KERNEL_DIR} \
108-
&& git tag -l *`cat /home/user/uname_r | cut -d '-' -f 2`* | sort -V | tail -1 > /home/user/linux_build/tag \
109-
&& git checkout `cat /home/user/linux_build/tag`
127+
RUN cd /linux_build/${KERNEL_DIR} \
128+
&& git tag -l *`cat /home/user/uname_r | cut -d '-' -f 2`* | sort -V | tail -1 > /linux_build/tag \
129+
&& git checkout `cat /linux_build/tag`
110130

111131
# install buildinfo to retieve `raspi` kernel config
112132
RUN cd /home/user \
113-
&& wget http://ports.ubuntu.com/pool/main/l/linux-raspi/linux-buildinfo-${KERNEL_VERSION}-`cat /home/user/uname_r | cut -d '-' -f 2`-raspi_${KERNEL_VERSION}-`cat /home/user/linux_build/tag | cut -d '-' -f 4`_${ARCH}.deb \
133+
&& wget http://ports.ubuntu.com/pool/main/l/linux-raspi/linux-buildinfo-${KERNEL_VERSION}-`cat /home/user/uname_r | cut -d '-' -f 2`-raspi_${KERNEL_VERSION}-`cat /linux_build/tag | cut -d '-' -f 4`_${ARCH}.deb \
114134
&& dpkg -X *.deb /home/user/
115135

116-
# install lttng dependencies
117-
RUN sudo apt-get update \
118-
&& sudo apt-get install -y libuuid1 libpopt0 liburcu6 libxml2 numactl
119-
120136
COPY ./getpatch.sh /home/user/
121137

122138
# get the nearest RT patch to the kernel SUBLEVEL
123139
# if $RT_PATCH is set via --build-arg, take it
124-
RUN cd /home/user/linux_build/${KERNEL_DIR} \
140+
RUN cd /linux_build/${KERNEL_DIR} \
125141
&& if test -z $RT_PATCH; then /home/user/getpatch.sh `make kernelversion` > /home/user/rt_patch; else echo $RT_PATCH > /home/user/rt_patch; fi
126142

127143
# download and unzip RT patch
128-
RUN cd /home/user/linux_build \
144+
RUN cd /linux_build \
129145
&& wget http://cdn.kernel.org/pub/linux/kernel/projects/rt/`echo ${KERNEL_VERSION} | cut -d '.' -f 1-2`/older/patch-`cat /home/user/rt_patch`.patch.gz \
130146
&& gunzip patch-`cat /home/user/rt_patch`.patch.gz
131147

@@ -138,25 +154,25 @@ RUN cd /home/user/ \
138154
# run lttng built-in script to configure RT kernel
139155
RUN set -x \
140156
&& cd `ls -d /home/user/lttng-modules-*` \
141-
&& ./scripts/built-in.sh ${HOME}/linux_build/${KERNEL_DIR}
157+
&& ./scripts/built-in.sh /linux_build/${KERNEL_DIR}
142158

143159
# patch kernel, do not fail if some patches are skipped
144-
RUN cd /home/user/linux_build/${KERNEL_DIR} \
160+
RUN cd /linux_build/${KERNEL_DIR} \
145161
&& OUT="$(patch -p1 --forward < ../patch-`cat $HOME/rt_patch`.patch)" || echo "${OUT}" | grep "Skipping patch" -q || (echo "$OUT" && false);
146162

147163
# setup build environment
148-
RUN cd /home/user/linux_build/${KERNEL_DIR} \
164+
RUN cd /linux_build/${KERNEL_DIR} \
149165
&& export $(dpkg-architecture -a${ARCH}) \
150166
&& export CROSS_COMPILE=${triple}- \
151167
&& fakeroot debian/rules clean \
152168
&& LANG=C fakeroot debian/rules printenv
153169

154-
COPY ./.config-fragment /home/user/linux_build/.
170+
COPY ./.config-fragment /linux_build/.
155171

156172
# config RT kernel and merge config fragment
157-
RUN cd /home/user/linux_build/${KERNEL_DIR} \
173+
RUN cd /linux_build/${KERNEL_DIR} \
158174
&& cp /home/user/usr/lib/linux/`cat /home/user/uname_r`/config .config \
159-
&& ARCH=${ARCH} CROSS_COMPILE=${triple}- ./scripts/kconfig/merge_config.sh .config $HOME/linux_build/.config-fragment
175+
&& ARCH=${ARCH} CROSS_COMPILE=${triple}- ./scripts/kconfig/merge_config.sh .config /linux_build/.config-fragment
160176

161-
RUN cd /home/user/linux_build/${KERNEL_DIR} \
177+
RUN cd /linux_build/${KERNEL_DIR} \
162178
&& fakeroot debian/rules clean

README.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
# Build ```RT_PREEMPT``` kernel for Raspberry Pi 4
1+
# Build ```RT_PREEMPT``` kernel for Raspberry Pi
22

3-
[![RPI4 RT Kernel build](https://github.com/ros-realtime/linux-real-time-kernel-builder/actions/workflows/rpi4-kernel-build.yml/badge.svg)](https://github.com/ros-realtime/linux-real-time-kernel-builder/actions/workflows/rpi4-kernel-build.yml)
3+
[![RPI RT Kernel build](https://github.com/ros-realtime/linux-real-time-kernel-builder/actions/workflows/rpi4-kernel-build.yml/badge.svg)](https://github.com/ros-realtime/linux-real-time-kernel-builder/actions/workflows/rpi4-kernel-build.yml)
44

55
## Introduction
66

7-
This README describes necessary steps to build and install ```RT_PREEMPT``` Linux kernel for the Raspberry Pi4 board. RT Kernel is a part of the ROS2 real-time system setup. Raspberry Pi4 is a reference board used by the ROS 2 real-time community for the development. RT Kernel is configured as described in [Kernel configuration section](#kernel-configuration). Kernel is built automatically by the Github action, and the artifacts are located under the [```build stable```](https://github.com/razr/linux-real-time-kernel-builder/actions/workflows/build-stable.yaml). Please follow [installation instructions](#deploy-new-kernel-on-raspberry-pi4) to deploy a new kernel to the RPI4 board.
7+
This README describes necessary steps to build and install ```RT_PREEMPT``` Linux kernel for the Raspberry Pi board. RT Kernel is a part of the ROS2 real-time system setup. Raspberry Pi is a reference board used by the ROS 2 real-time community for the development. RT Kernel is configured as described in [Kernel configuration section](#kernel-configuration). Kernel is built automatically by the Github action, and the artifacts are located under the [```build stable```](https://github.com/ros-realtime/linux-real-time-kernel-builder/actions/workflows/build-stable.yaml). Please follow [installation instructions](#deploy-new-kernel-on-raspberry-pi) to deploy a new kernel to the RPI board.
88

9-
## Raspberry Pi 4 RT Linux kernel
9+
## Raspberry Pi RT Linux kernel
1010

11-
Ubuntu ```raspi``` kernel is modified to produce an RT Linux kernel. Ubuntu is a ROS 2 Tier 1 platform and Ubuntu kernel was selected to align to it. It is possible to build the raspi kernel for both Ubuntu LTS releases 20.04 and 22.04.
11+
Ubuntu ```raspi``` kernel is modified to produce an RT Linux kernel. Ubuntu is a ROS 2 Tier 1 platform and Ubuntu kernel was selected to align to it. It is possible to build the raspi kernel for Ubuntu LTS release 24.04.
1212

1313
## Download ready-to-use RT Kernel ```deb``` packages
1414

1515
RT Kernel is configured using configuration parameters from the [](.config-fragment) file. In the case you need to build your own kernel read the description below.
1616

1717
### Using GUI
1818

19-
Go to the ```Action``` tab, find the ```Build stable```, go inside the latest workflow run, download, and unzip artifacts called ```RPI4 RT Kernel deb packages```. This archive contains three debian packages. Follow [instructions](#deploy-new-kernel-on-raspberry-pi4) to deploy them on the RPI4.
19+
Go to the ```Action``` tab, find the ```Build stable```, go inside the latest workflow run, download, and unzip artifacts called ```RPI4 RT Kernel deb packages```. This archive contains three debian packages. Follow [instructions](#deploy-new-kernel-on-raspberry-pi) to deploy them on the RPI.
2020

2121
### Using command line
2222

@@ -35,9 +35,9 @@ $ curl -u <my github name>:$token -L -H "Accept: application/vnd.github.v3+json"
3535
$ unzip rpi4_rt_kernel.zip
3636
```
3737

38-
## Raspberry Pi 4 RT Linux kernel build
38+
## Raspberry Pi RT Linux kernel build
3939

40-
Ubuntu 20.04 ```x86_64``` based ```Dockerfile``` is developed to cross-compile a new kernel.
40+
Ubuntu 24.04 ```x86_64``` based ```Dockerfile``` is developed to cross-compile a new kernel.
4141

4242
### Build environment
4343

@@ -66,10 +66,10 @@ docker build [--no-cache] [--build-arg UBUNTU_VERSION=<ubuntu name>] [--build-ar
6666

6767
where:
6868

69-
* ```<ubuntu name>``` is `jammy` or `focal`, default is `jammy`
70-
* ```<kernel version>``` is `5.15.0` or `5.4.0`, default is `5.15.0`
71-
* ```<raspi release>``` is in a form of ```5.15.0-1023-raspi```, see [Ubuntu raspi Linux kernels](http://ports.ubuntu.com/pool/main/l/linux-raspi)
72-
* ```<RT patch>``` is in a form of ```5.15.76-rt53```, see [RT patches](http://cdn.kernel.org/pub/linux/kernel/projects/rt/5.15/older)
69+
* ```<ubuntu name>``` is `noble`, default is `noble`
70+
* ```<kernel version>``` is `6.8.0`, default is `6.8.0`
71+
* ```<raspi release>``` is in a form of `6.8.0-1005-raspi`, see [Ubuntu raspi Linux kernels](http://ports.ubuntu.com/pool/main/l/linux-raspi)
72+
* ```<RT patch>``` is in a form of `6.8.2-rt11`, see [RT patches](https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.8/)
7373
* ```<LTTNG version>``` is `2.13`, default is `2.13`
7474

7575
```bash
@@ -112,19 +112,19 @@ You need 16GB free disk space to build it, it takes a while, and the results are
112112

113113
```bash
114114
raspi:~/linux_build/linux-raspi $ ls -la ../*.deb
115-
-rw-r--r-- 1 user user 8123580 Jan 16 16:34 ../linux-headers-5.15.74-rt53-raspi_5.15.74-rt53-raspi-1_arm64.deb
116-
-rw-r--r-- 1 user user 58802024 Jan 16 16:34 ../linux-image-5.15.74-rt53-raspi_5.15.74-rt53-raspi-1_arm64.deb
117-
-rw-r--r-- 1 user user 1185420 Jan 16 16:34 ../linux-libc-dev_5.15.74-rt53-raspi-1_arm64.deb
115+
-rw-r--r-- 1 user user 9355162 Jul 1 16:44 ../linux-headers-6.8.4-rt11-raspi_6.8.4-g75867ff0890f-4_arm64.deb
116+
-rw-r--r-- 1 user user 70457678 Jul 1 16:44 ../linux-image-6.8.4-rt11-raspi_6.8.4-g75867ff0890f-4_arm64.deb
117+
-rw-r--r-- 1 user user 1377154 Jul 1 16:44 ../linux-libc-dev_6.8.4-g75867ff0890f-4_arm64.deb
118118
```
119119

120-
## Deploy new kernel on Raspberry Pi4
120+
## Deploy new kernel on Raspberry Pi
121121

122-
### Download and install Ubuntu 22.04 server image
122+
### Download and install Ubuntu 24.04 server image
123123

124-
Follow these links to download and install Ubuntu 22.04 on your Raspberry Pi4
124+
Follow these links to download and install Ubuntu 24.04 on your Raspberry Pi
125125

126126
* [Install Ubuntu on a Raspberry Pi](https://ubuntu.com/download/raspberry-pi)
127-
* [Download Ubuntu Raspberry Pi server image](https://ubuntu.com/download/raspberry-pi/thank-you?version=22.04.1&architecture=server-arm64+raspi)
127+
* [Download Ubuntu Raspberry Pi server image](https://ubuntu.com/download/raspberry-pi/thank-you?version=24.04&architecture=server-arm64+raspi)
128128
* [Create an Ubuntu image for a Raspberry Pi on Ubuntu](https://ubuntu.com/tutorials/create-an-ubuntu-image-for-a-raspberry-pi-on-ubuntu#2-on-your-ubuntu-machine)
129129

130130
```bash
@@ -163,7 +163,7 @@ After reboot you should see a new RT kernel installed and real-time enabled
163163

164164
```bash
165165
ubuntu@ubuntu:~$ uname -a
166-
Linux ubuntu 5.15.74-rt53-raspi #1 SMP PREEMPT_RT Mon Jan 16 14:10:16 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
166+
Linux ubuntu 6.8.4-rt11-raspi #1 SMP PREEMPT_RT Mon Jul 1 14:10:16 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
167167

168168
ubuntu@ubuntu:~$ cat /sys/kernel/realtime
169169
1
@@ -183,6 +183,6 @@ As this repository is within the `ros-realtime` organization it can be assumed t
183183

184184
* [ROS Real-Time Working group documentation](https://ros-realtime.github.io/Guides/Real-Time-Operating-System-Setup/Real-Time-Linux/rt_linux_index.html)
185185
* [Ubuntu raspi linux images](http://ports.ubuntu.com/pool/main/l/linux-raspi)
186-
* [RT patches](http://cdn.kernel.org/pub/linux/kernel/projects/rt/5.15/older)
187-
* [Download Ubuntu raspi server image](https://ubuntu.com/download/raspberry-pi/thank-you?version=22.04.1&architecture=server-arm64+raspi)
186+
* [RT patches](https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.8/)
187+
* [Download Ubuntu raspi server image](https://ubuntu.com/download/raspberry-pi/thank-you?version=24.04&architecture=server-arm64+raspi)
188188
* [Building Realtime ```RT_PREEMPT``` kernel for ROS 2](https://index.ros.org/doc/ros2/Tutorials/Building-Realtime-rt_preempt-kernel-for-ROS-2/)

0 commit comments

Comments
 (0)