Debian 13 Trixie environments release notes

From Grid5000
Jump to navigation Jump to search


There is some significant evolutions since previous debian11 environments.

Common componants changes (Debian)

Componant Debian 11 Bullseye Debian 13 Trixie
Linux kernel 5.10 6.12
GCC 10.2 14.2
LLVM/Clang toolchain 11 19
Perl 5.32 5.40
Python 3.9 3.13
Ruby 2.7 3.3
OpenJDK 17 25
Qemu 5.2 10.0
RDMA 33.2 56.1
Singularity 4.1.2 N/A
Apptainer (Singularity replacement) N/A 1.4.5

For more informations, see debian.org Release Notes.

Environments specific changes

Available in debian13-big and debian13-std (default) environments :

x86_64 (AMD64) componants debian11 envs debian13 envs
Nvidia drivers 535.x 580.x
Nvidia CUDA 11.2.x 13.0 via modules
AMD drivers (amdgpu) 6.3.x 30.x
AMD ROCm 6.3.x 7.1 via modules
Open MPI 4.1 4.1 via modules
aarch64 (ARM64) componants debian11 env debian13 env
Nvidia drivers N/A 580.x
Nvidia CUDA N/A via modules (planned)

Note some “old” Nvidia GPU clusters use a new dedicated environment named debiannvlegacy13 for big and std (default) variants. The only change in this environment flavor is that the proprietary nvidia module kernel is used, instead of the more recent open source one, as it is mandatory for Nvidia GPU Compute Capability < 7.5 .

For more informations, see this Nvidia explanation.

Some other useful informations:

Modules evolution

The default provided modules are no more build with Spack, but with GUIX.

For more informations, see

Note.png Note

ARM64 CPU architecture modules are not available for now. We are working on it.

Warning.png Warning

Libraries available on the system and in the modules are not always compatible. To avoid any issue always use *only* the software in the modules, or *only* those from the system, don't mix and match.

CUDA and ROCm

Only nvidia and amdgpu drivers (kernel modules) are provided in big and default environments. Tools like CUDA and ROCm have to be loaded with module commands.

Nvidia CUDA modules

If you want to use cuda from the modules and run the compiled code, you need to load two modules: cuda-toolkit, which provide the cuda-related software, and nvidia-driver-libs, which allows the packaged cuda to see the system's drivers. You likely also want to use a toolchain to compile non-cuda code, and therefore will need to load gcc-toolchain.


If the default environment is debian13 the module load looks like this : module load gcc-toolchain cuda-toolkit nvidia-driver-libs (default is currently cuda-toolkit/13).

And if the default environment is debiannvlegacy13 : module load gcc-toolchain cuda-toolkit/12 nvidia-driver-libs

Compatibility matrix:

environment Nvidia kernel module Nvidia GPU compute capability CUDA 12.9 CUDA 13
debiannvlegacy13 proprietary (legacy) < 7.5 OK KO
debian13 open ≥ 7.5 OK OK

For more informations on CUDA GPU Compute Capability, see Nvidia documentation.

AMD ROCm (Radeon Open Compute) modules

There are a lot of ROCm modules available, you can load them individually, or you can use the meta-module rocm to make it available:

module load cmake gcc-toolchain rocm

Open MPI

OpenMPI is, for now, still installed in the environment, but the version provided by the Debian package (5.0.7) is not compatible with OAR if you don't book entire nodes. We recommend to use the modules, buy have to load it with module load openmpi.

Loading openmpi doesn't load a toolchain, you must load a toolchain and make sure to use it, otherwise you will end up using the system's toolchain and you will run into issues; you can use module load gcc-toolchain to make a compatible gcc available.

If your code depends on other librairies, please make sure they come from the modules and not the system.

Tools changes

DHCP client and IPv6

ISC DHCP tools (client and server) are deprecated. See ISC Note.

The client has been replaced by dhcpcd. So the commonly used dhclient <interface_name> is no more available, and is replaced by dhcpcd <interface_name>.

Node network interface will have both IPv4 and IPv6 addresses by default.

Network Time Protocol (NTP) client

For system time synchronizaton, ntpsec and ntpsec-ntpdate are used instead of no more available ntp et ntpdate tools packages.

CPU frequency scaling

cpufrequtils has been replaced by linux-cpupower (introduced with kernel 3.1).

See the cpupower manpage for more informations.

Singularity to Apptainer

Apptainer is available in replacement of Singularity.

PMem (Persistent Memory)

Debian ipmctl package, a utility for configuring and managing Intel® Optane™ Persistent Memory modules is not compatible with python 3.13 provided by Debian 13 repository.

So the Troll cluster in Grenoble featuring PMem remains on debian11 environnement by default.

Custom Linux kernel

For big and std environments variants, we had to use a custom Linux kernel build to enable and continue using control groups v1 (cgroupv1) instead of newer cgroupv2 to keep compatibility with currently used OAR 2.5.10.

Kwown issues

New conda module may have problem

A new Conda module (built with guix) has been proposed but it seems to create some incompatibilities with previously built env. A simple workaround is to use the previous by specifying

module load conda/23.5.0

Faulty module has been removed, but user that have use it need to clean lines in .bashrc that contains

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/gnu/store/pjxc33yybwa7fx9bk6z0w36i9d7x6zrk-conda-25.9.1/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/gnu/store/pjxc33yybwa7fx9bk6z0w36i9d7x6zrk-conda-25.9.1/etc/profile.d/conda.sh" ]; then
        . "/gnu/store/pjxc33yybwa7fx9bk6z0w36i9d7x6zrk-conda-25.9.1/etc/profile.d/conda.sh"
    else
        export PATH="/gnu/store/pjxc33yybwa7fx9bk6z0w36i9d7x6zrk-conda-25.9.1/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

as it can create infinite loop (and the symptom is empty OAR.stdout and OAR.stderr file).


Formatting option incompatibilities for legacy custom environments

During the maintenance operation, Kadeploy miniOS has been updated to Debian 13/trixie. As a result, default formatting options are not backward compatible with Debian 11 / Almalinux 9 / Centos Stream 9 / Ubuntu 22.04.

An entry has been added to Advanced_Kadeploy#Formatting_option_incompatibilities_for_legacy_custom_environments, explaining how to force required ext4 options for older OSes. Another temporary solution, as long as older MiniOS is available, is to force it by adding to the environment description file (.dsc or .yaml):

custom_variables:
  FORCE_MINI_OS_KERNEL: 'kernels/kadeploy3-deploy-kernel-bookworm.vmlinuz'
  FORCE_MINI_OS_INITRD: 'kernels/kadeploy3-deploy-kernel-bookworm.initrd.img'

or by adding the --custom-variable FORCE_MINI_OS_KERNEL=kernels/kadeploy3-deploy-kernel-bookworm.vmlinuz --custom-variable FORCE_MINI_OS_INITRD=kernels/kadeploy3-deploy-kernel-bookworm.initrd.img to the `kadeploy3` command line.

Python 3.13 fails to communicate with the internal API from fronted or node

On a frontend or a node, api.grid5000.fr resolved to a machine api-proxy.SITE.grid5000.fr. This machine use a self-signed certificates which is rejected with Python 3.13.

  • A 'temporary solution is to decrease the version of requests by specifying, for example :
pip install enoslib requests==2.28

or to interact with the API from outside Grid'5000.