Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
24e5375
Switch to building a Trixie base image
saiarcot895 Jun 11, 2025
77ee325
Update some userspace tools to Trixie versions
saiarcot895 Jun 11, 2025
2818719
Update systemd-sonic-generator to make it work on Trixie
saiarcot895 Jun 11, 2025
d1ef68b
Update Linux kernel to 6.12.30
saiarcot895 Jun 18, 2025
05a4f37
Specify the libyang-frr dependency only for Bookworm
saiarcot895 Jun 18, 2025
326c954
Build libpcre3 for libyang
saiarcot895 Jun 30, 2025
d0a33c3
Loosen help text check, as it might change depending on versions
saiarcot895 Jul 11, 2025
0006722
Update sonic-py-common tests and ignore failing test
saiarcot895 Jul 14, 2025
1a46e2a
Allow newer versions of lxml and pyyaml to be used for config-engine
saiarcot895 Jul 14, 2025
c1bd079
Update FIPS for Trixie
saiarcot895 Jul 14, 2025
bce8284
Disable cgroups v1
saiarcot895 Jul 14, 2025
e12a530
Fix scripts for Python 3.13
saiarcot895 Jul 15, 2025
04ce690
Switch to using Boost 1.83 for Bookworm
saiarcot895 Jul 24, 2025
4d5f398
Recreate all version control files from scratch
saiarcot895 Jul 25, 2025
9fac20d
Use pam_systemd for user session management
saiarcot895 Jul 29, 2025
bd5305a
Fix FIPS build issue on trixie (#28)
liuh-80 Jul 31, 2025
1a762d0
[nokia bcm platform] trixie support (#29)
jon-nokia Aug 14, 2025
ca29e87
Upgrade to Rust 1.86 for Trixie
saiarcot895 Aug 19, 2025
85abcde
Start updating the build rules for platform modules and fix some of t…
saiarcot895 Sep 8, 2025
a76fc7f
saibcm-modules trixie support (#30)
jon-nokia Aug 31, 2025
cd5efa8
Fix tacacs and RADIUS build issue on trixie (#33)
liuh-80 Sep 15, 2025
081e867
Clear out resolv.conf
saiarcot895 Sep 22, 2025
e614964
dell trixie changes (#36)
rohinikumart Sep 25, 2025
f1623ba
Nexthop modules: Support kernel 6.12 (#37)
nate-nexthop Oct 3, 2025
90336ff
[Arista] Update platform library submodules (#42)
byu343 Oct 19, 2025
e933b75
Add immediate variable expansion to makefile to fix slowness (#51)
tirupatihemanth Oct 31, 2025
234523c
[marvell-teralynx] Add Trixie support (#43)
pavannaregundi Oct 20, 2025
12f2568
[marvell-prestera] add Nokia support on trixie (#44)
yanmarkman Oct 28, 2025
1af92a1
platform-modules-cel: adapt for kernel 6.12 and trixie (#46)
rchandramouli Oct 29, 2025
554e9f9
Update hw-mgmt and sdk automatic integration for Trixie (#47)
tirupatihemanth Oct 31, 2025
7388de5
Try to fix UEFI boot issue (#49)
tirupatihemanth Oct 31, 2025
a0038db
[Mellanox] Fix ISSU and Mellanox Platform API (#53)
tirupatihemanth Oct 31, 2025
d78698a
Update hsFlowd to close the pipe immediately (#50)
tirupatihemanth Oct 31, 2025
7262942
Update monit to 5.34
saiarcot895 Nov 3, 2025
8ecffdb
[#24386] rsyslog: restore kernel timestamp in the /dev/kmsg logs (#56)
rchandramouli Nov 6, 2025
efe9160
[Debian 13] [Mellanox] Fix Rshim and Linux Kbuild (#61)
tirupatihemanth Nov 8, 2025
5bd9197
marvell-prestera nokia update trixie (#65)
yanmarkman Nov 14, 2025
ae3971c
[Mellanox] Remove Linux Kbuild dependency and Fix Component Versions …
tirupatihemanth Nov 16, 2025
08c8ef6
Locally compile grub2 2.06 from Debian Bookworm for Trixie
saiarcot895 Nov 16, 2025
d99eb91
[ufispace] Update platform build rules and kernel module to support D…
nonodark Nov 17, 2025
3a3692b
[nvidia-bluefield] Fix OFED compilation failure in latest NASA (#75)
tirupatihemanth Nov 21, 2025
d1be915
[Mellanox] Add platform support for Trixie (#77)
tirupatihemanth Nov 22, 2025
5539f21
[Nvidia-Bluefield] Add platform support for Trixie (#78)
tirupatihemanth Nov 22, 2025
dcc86c4
[submod] marvell-prestera/sonic-platform-marvell (#80)
yanmarkman Nov 26, 2025
55437e5
[submod] marvell-prestera/mrvl-prestera (#81)
yanmarkman Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .azure-pipelines/template-variables.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
variables:
DEFAULT_CONTAINER_REGISTRY: 'publicmirror.azurecr.io'
COMMON_LIB_BUILD_ENVS: 'bookworm'
COMMON_LIB_BUILD_ENVS: 'bookworm trixie'
SONIC_SLAVE_DOCKER_DRIVER: 'overlay2'
SONIC_BUILD_RETRY_COUNT: 3
SONIC_BUILD_RETRY_INTERVAL: 600
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ NOSTRETCH ?= 1
NOBUSTER ?= 1
NOBULLSEYE ?= 1
NOBOOKWORM ?= 0
NOTRIXIE ?= 1
NOTRIXIE ?= 0

override Q := @
ifeq ($(QUIET),n)
Expand Down Expand Up @@ -60,10 +60,10 @@ ifeq ($(NOBULLSEYE), 0)
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=bullseye -f Makefile.work bullseye
endif
ifeq ($(NOBOOKWORM), 0)
$(MAKE_WITH_RETRY) BLDENV=bookworm -f Makefile.work $@
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=bookworm -f Makefile.work bookworm
endif
ifeq ($(NOTRIXIE), 0)
$(MAKE_WITH_RETRY) BLDENV=trixie -f Makefile.work trixie
$(MAKE_WITH_RETRY) BLDENV=trixie -f Makefile.work $@
endif

BLDENV=bookworm $(MAKE) -f Makefile.work docker-cleanup
Expand Down
5 changes: 3 additions & 2 deletions Makefile.work
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ USER := $(shell id -un)
PWD := $(shell realpath $(shell pwd))
USER_LC := $(shell echo $(USER) | tr A-Z a-z)
ifneq ($(DEFAULT_CONTAINER_REGISTRY),)
DOCKER_MACHINE := $(shell docker run --rm $(DEFAULT_CONTAINER_REGISTRY)/debian:buster uname -m)
DOCKER_MACHINE := $(shell docker run --rm $(DEFAULT_CONTAINER_REGISTRY)/debian:trixie uname -m)
else
DOCKER_MACHINE := $(shell docker run --rm debian:buster uname -m)
DOCKER_MACHINE := $(shell docker run --rm debian:trixie uname -m)
endif
HOST_DOCKERD_GID := $(shell getent group docker | cut -d : -f3)

Expand Down Expand Up @@ -217,6 +217,7 @@ $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) \
DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) \
DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
FIPS_VERSION=$(FIPS_VERSION) \
FIPS_GOLANG_MAIN_VERSION=$(FIPS_GOLANG_MAIN_VERSION) \
FIPS_GOLANG_VERSION=$(FIPS_GOLANG_VERSION) \
j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)

Expand Down
92 changes: 39 additions & 53 deletions build_debian.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ set -x -e
CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)

## docker engine version (with platform)
DOCKER_VERSION=5:24.0.2-1~debian.12~$IMAGE_DISTRO
CONTAINERD_IO_VERSION=1.6.21-1
LINUX_KERNEL_VERSION=6.1.0-29-2
DOCKER_VERSION=5:28.2.2-1~debian.13~$IMAGE_DISTRO
CONTAINERD_IO_VERSION=1.7.27-1
LINUX_KERNEL_VERSION=6.12.41+deb13

## Working directory to prepare the file system
FILESYSTEM_ROOT=./fsroot
Expand Down Expand Up @@ -135,20 +135,12 @@ echo 'Dir::Bin::dpkg "/usr/local/bin/dpkg";' | sudo tee $FILESYSTEM_ROOT/etc/apt
sudo LANG=C chroot $FILESYSTEM_ROOT rm /usr/local/sbin/dpkg -f

echo '[INFO] Install packages for building image'
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install makedev psmisc
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install psmisc

if [[ $CROSS_BUILD_ENVIRON == y ]]; then
sudo LANG=C chroot $FILESYSTEM_ROOT dpkg --add-architecture $CONFIGURED_ARCH
fi

## Create device files
echo '[INFO] MAKEDEV'
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'cd /dev && MAKEDEV generic-arm'
else
sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'cd /dev && MAKEDEV generic'
fi

## docker and mkinitramfs on target system will use pigz/unpigz automatically
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install pigz

Expand All @@ -173,6 +165,9 @@ fi
## Update initramfs for booting with squashfs+overlay
cat files/initramfs-tools/modules | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-tools/modules > /dev/null

## Install kbuild for sign-file into docker image (not fsroot)
sudo LANG=C DEBIAN_FRONTEND=noninteractive apt -y --allow-downgrades install ./$debs_path/linux-kbuild-${LINUX_KERNEL_VERSION}*_${CONFIGURED_ARCH}.deb

## Hook into initramfs: change fs type from vfat to ext4 on arista switches
sudo mkdir -p $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/
sudo cp files/initramfs-tools/arista-convertfs $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/arista-convertfs
Expand Down Expand Up @@ -311,7 +306,8 @@ sudo LANG=C chroot $FILESYSTEM_ROOT usermod -aG redis $USERNAME
if [[ $CONFIGURED_ARCH == amd64 ]]; then
## Pre-install hardware drivers
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install \
firmware-linux-nonfree
firmware-linux-nonfree \
firmware-intel-misc
fi

## Pre-install the fundamental packages
Expand Down Expand Up @@ -344,13 +340,16 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
pciutils \
iptables-persistent \
ebtables \
linux-sysctl-defaults \
logrotate \
curl \
kexec-tools \
less \
unzip \
fdisk \
gdisk \
sysfsutils \
e2fsprogs \
squashfs-tools \
$bootloader_packages \
rsyslog \
Expand All @@ -365,15 +364,13 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
makedumpfile \
conntrack \
python3 \
python3-distutils \
python3-pip \
python-is-python3 \
cron \
libprotobuf32 \
libgrpc29 \
libgrpc++1.51 \
libprotobuf32t64 \
libgrpc29t64 \
libgrpc++1.51t64 \
haveged \
fdisk \
gpg \
dmidecode \
jq \
Expand Down Expand Up @@ -447,16 +444,19 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
chrony

if [[ $TARGET_BOOTLOADER == grub ]]; then
sudo cp $debs_path/grub-common*.deb $debs_path/grub2-common*.deb $FILESYSTEM_ROOT
basename_deb_packages=$(basename -a $debs_path/grub-common*.deb $debs_path/grub2-common*.deb | sed 's,^,./,')
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt -y --allow-downgrades install $basename_deb_packages
sudo rm $FILESYSTEM_ROOT/grub-common*.deb $FILESYSTEM_ROOT/grub2-common*.deb
( cd $FILESYSTEM_ROOT; sudo rm -f $basename_deb_packages )

if [[ $CONFIGURED_ARCH == amd64 ]]; then
GRUB_PKG=grub-pc-bin
elif [[ $CONFIGURED_ARCH == arm64 ]]; then
GRUB_PKG=grub-efi-arm64-bin
fi

sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get install -d -o dir::cache=/var/cache/apt \
$GRUB_PKG

sudo cp $FILESYSTEM_ROOT/var/cache/apt/archives/grub*.deb $FILESYSTEM_ROOT/$PLATFORM_DIR/grub
sudo cp $debs_path/${GRUB_PKG}*.deb $FILESYSTEM_ROOT/$PLATFORM_DIR/grub
fi

## Disable kexec supported reboot which was installed by default
Expand Down Expand Up @@ -502,6 +502,9 @@ EOF
sudo sed -i 's/^#ListenAddress 0.0.0.0/ListenAddress 0.0.0.0/' $FILESYSTEM_ROOT/etc/ssh/sshd_config
sudo sed -i 's/^#ListenAddress ::/ListenAddress ::/' $FILESYSTEM_ROOT/etc/ssh/sshd_config

# Use libpam_systemd, since that's now needed for limiting login sessions
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install libpam-systemd

## Config rsyslog
sudo augtool -r $FILESYSTEM_ROOT --autosave "
rm /files/lib/systemd/system/rsyslog.service/Service/ExecStart/arguments
Expand All @@ -510,23 +513,7 @@ set /files/lib/systemd/system/rsyslog.service/Service/ExecStart/arguments/1 -n

sudo mkdir -p $FILESYSTEM_ROOT/var/core

# Config sysctl
sudo augtool --autosave "
set /files/etc/sysctl.conf/kernel.core_pattern '|/usr/local/bin/coredump-compress %e %t %p %P'
set /files/etc/sysctl.conf/kernel.softlockup_panic 1
set /files/etc/sysctl.conf/kernel.panic 10
set /files/etc/sysctl.conf/kernel.hung_task_timeout_secs 300
set /files/etc/sysctl.conf/vm.panic_on_oom 2
set /files/etc/sysctl.conf/fs.suid_dumpable 2
" -r $FILESYSTEM_ROOT

sysctl_net_cmd_string=""
while read line; do
[[ "$line" =~ ^#.*$ ]] && continue
sysctl_net_conf_key=`echo $line | awk -F '=' '{print $1}'`
sysctl_net_conf_value=`echo $line | awk -F '=' '{print $2}'`
sysctl_net_cmd_string=$sysctl_net_cmd_string"set /files/etc/sysctl.conf/$sysctl_net_conf_key $sysctl_net_conf_value"$'\n'
done < files/image_config/sysctl/sysctl-net.conf
sudo cp files/image_config/sysctl/90-sonic.conf $FILESYSTEM_ROOT/usr/lib/sysctl.d/

sudo augtool --autosave "$sysctl_net_cmd_string" -r $FILESYSTEM_ROOT

Expand All @@ -540,7 +527,7 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==7.1.0'

# Install scapy
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'scapy==2.4.4'
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install python3-scapy

## Note: keep pip installed for maintainance purpose

Expand All @@ -564,13 +551,6 @@ sudo cp files/dhcp/sethostname6 $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/
sudo cp files/dhcp/graphserviceurl $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/
sudo cp files/dhcp/snmpcommunity $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/
sudo cp files/dhcp/vrf $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/
if [ -f files/image_config/ntp/ntpsec ]; then
sudo cp ./files/image_config/ntp/ntpsec $FILESYSTEM_ROOT/etc/init.d/
fi

if [ -f files/image_config/ntp/ntp-systemd-wrapper ]; then
sudo cp ./files/image_config/ntp/ntp-systemd-wrapper $FILESYSTEM_ROOT/usr/libexec/ntpsec/
fi

## Version file part 1
sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic
Expand Down Expand Up @@ -696,10 +676,14 @@ sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c "echo 0 > /etc/fips/fips_enable
if [[ $SECURE_UPGRADE_MODE == 'dev' || $SECURE_UPGRADE_MODE == "prod" ]]; then
echo "Secure Boot support build stage: Starting .."

sudo cp $debs_path/grub-efi*.deb $FILESYSTEM_ROOT
basename_deb_packages=$(basename -a $debs_path/grub-efi*.deb | sed 's,^,./,')
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt -y --allow-downgrades install $basename_deb_packages
sudo rm $FILESYSTEM_ROOT/grub-efi*.deb

# debian secure boot dependecies
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
shim-unsigned \
grub-efi
shim-unsigned

if [ ! -f $SECURE_UPGRADE_SIGNING_CERT ]; then
echo "Error: SONiC SECURE_UPGRADE_SIGNING_CERT=$SECURE_UPGRADE_SIGNING_CERT key missing"
Expand Down Expand Up @@ -740,7 +724,7 @@ if [[ $SECURE_UPGRADE_MODE == 'dev' || $SECURE_UPGRADE_MODE == "prod" ]]; then
-k ${FILESYSTEM_ROOT}/usr/lib/modules

# verifying vmlinuz file.
sudo ./scripts/secure_boot_signature_verification.sh -e $FILESYSTEM_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH} \
sudo ./scripts/secure_boot_signature_verification.sh -e $FILESYSTEM_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}-sonic-${CONFIGURED_ARCH} \
-c $SECURE_UPGRADE_SIGNING_CERT
fi
echo "Secure Boot support build stage: END."
Expand All @@ -750,10 +734,10 @@ fi
sudo chroot $FILESYSTEM_ROOT update-initramfs -u
## Convert initrd image to u-boot format
if [[ $TARGET_BOOTLOADER == uboot ]]; then
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}
KERNEL_FILE=vmlinuz-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-sonic-${CONFIGURED_ARCH}
KERNEL_FILE=vmlinuz-${LINUX_KERNEL_VERSION}-sonic-${CONFIGURED_ARCH}
if [[ $CONFIGURED_ARCH == armhf ]]; then
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-armmp
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-sonic-armmp
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -A arm -O linux -T ramdisk -C gzip -d /boot/$INITRD_FILE /boot/u${INITRD_FILE}
## Overwriting the initrd image with uInitrd
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE
Expand Down Expand Up @@ -834,6 +818,8 @@ sudo mkdir -p $FILESYSTEM_ROOT/var/lib/docker
## Clear DNS configuration inherited from the build server
sudo rm -f $FILESYSTEM_ROOT/etc/resolvconf/resolv.conf.d/original
sudo cp files/image_config/resolv-config/resolv.conf.head $FILESYSTEM_ROOT/etc/resolvconf/resolv.conf.d/head
sudo rm -f $FILESYSTEM_ROOT/etc/resolv.conf
sudo touch $FILESYSTEM_ROOT/etc/resolv.conf

## Optimize filesystem size
if [ "$BUILD_REDUCE_IMAGE_SIZE" = "y" ]; then
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"num_fans_pertray":1,
"num_ports":56,
"num_temps":4,
"num_components":1,
"pddf_dev_types":
{
"description":"DS1000 - Below is the list of supported PDDF device types (chip names) for various components. If any component uses some other driver, we will create the client using 'echo <dev-address> <dev-type> > <path>/new_device' method",
Expand Down
Loading
Loading