Skip to content

Commit 492aba2

Browse files
bhouse-nexthopsaiarcot895
authored andcommitted
Secureboot fixes (#62)
* simplify logic, don't sprinkle +deb13 everywhere * secureboot requires kbuild to be installed * Merge conflict bad resolution from PR sonic-net#23734
1 parent 404abc1 commit 492aba2

3 files changed

Lines changed: 14 additions & 11 deletions

File tree

build_debian.sh

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)
3333
## docker engine version (with platform)
3434
DOCKER_VERSION=5:28.2.2-1~debian.13~$IMAGE_DISTRO
3535
CONTAINERD_IO_VERSION=1.7.27-1
36-
LINUX_KERNEL_VERSION=6.12.41
36+
LINUX_KERNEL_VERSION=6.12.41+deb13
3737

3838
## Working directory to prepare the file system
3939
FILESYSTEM_ROOT=./fsroot
@@ -153,8 +153,8 @@ sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install pigz
153153
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox linux-base
154154
echo '[INFO] Install SONiC linux kernel image'
155155
## Note: duplicate apt-get command to ensure every line return zero
156-
sudo cp $debs_path/initramfs-tools-core_*.deb $debs_path/initramfs-tools_*.deb $debs_path/linux-image-${LINUX_KERNEL_VERSION}+deb13-*_${CONFIGURED_ARCH}.deb $FILESYSTEM_ROOT
157-
basename_deb_packages=$(basename -a $debs_path/initramfs-tools-core_*.deb $debs_path/initramfs-tools_*.deb $debs_path/linux-image-${LINUX_KERNEL_VERSION}+deb13-*_${CONFIGURED_ARCH}.deb | sed 's,^,./,')
156+
sudo cp $debs_path/initramfs-tools-core_*.deb $debs_path/initramfs-tools_*.deb $debs_path/linux-image-${LINUX_KERNEL_VERSION}-*_${CONFIGURED_ARCH}.deb $FILESYSTEM_ROOT
157+
basename_deb_packages=$(basename -a $debs_path/initramfs-tools-core_*.deb $debs_path/initramfs-tools_*.deb $debs_path/linux-image-${LINUX_KERNEL_VERSION}-*_${CONFIGURED_ARCH}.deb | sed 's,^,./,')
158158
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt -y install $basename_deb_packages
159159
( cd $FILESYSTEM_ROOT; sudo rm -f $basename_deb_packages )
160160
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install acl
@@ -165,6 +165,9 @@ fi
165165
## Update initramfs for booting with squashfs+overlay
166166
cat files/initramfs-tools/modules | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-tools/modules > /dev/null
167167

168+
## Install kbuild for sign-file into docker image (not fsroot)
169+
sudo LANG=C DEBIAN_FRONTEND=noninteractive apt -y --allow-downgrades install ./$debs_path/linux-kbuild-${LINUX_KERNEL_VERSION}*_${CONFIGURED_ARCH}.deb
170+
168171
## Hook into initramfs: change fs type from vfat to ext4 on arista switches
169172
sudo mkdir -p $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/
170173
sudo cp files/initramfs-tools/arista-convertfs $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/arista-convertfs
@@ -714,9 +717,8 @@ if [[ $SECURE_UPGRADE_MODE == 'dev' || $SECURE_UPGRADE_MODE == "prod" ]]; then
714717
-k ${FILESYSTEM_ROOT}/usr/lib/modules
715718

716719
# verifying vmlinuz file.
717-
sudo ./scripts/secure_boot_signature_verification.sh -e $FILESYSTEM_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}+deb13-sonic-${CONFIGURED_ARCH} \
718-
-c $SECURE_UPGRADE_SIGNING_CERT \
719-
-k $FILESYSTEM_ROOT
720+
sudo ./scripts/secure_boot_signature_verification.sh -e $FILESYSTEM_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}-sonic-${CONFIGURED_ARCH} \
721+
-c $SECURE_UPGRADE_SIGNING_CERT
720722
fi
721723
echo "Secure Boot support build stage: END."
722724
fi
@@ -725,10 +727,10 @@ fi
725727
sudo chroot $FILESYSTEM_ROOT update-initramfs -u
726728
## Convert initrd image to u-boot format
727729
if [[ $TARGET_BOOTLOADER == uboot ]]; then
728-
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}+deb13-sonic-${CONFIGURED_ARCH}
729-
KERNEL_FILE=vmlinuz-${LINUX_KERNEL_VERSION}+deb13-sonic-${CONFIGURED_ARCH}
730+
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-sonic-${CONFIGURED_ARCH}
731+
KERNEL_FILE=vmlinuz-${LINUX_KERNEL_VERSION}-sonic-${CONFIGURED_ARCH}
730732
if [[ $CONFIGURED_ARCH == armhf ]]; then
731-
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}+deb13-sonic-armmp
733+
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-sonic-armmp
732734
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -A arm -O linux -T ramdisk -C gzip -d /boot/$INITRD_FILE /boot/u${INITRD_FILE}
733735
## Overwriting the initrd image with uInitrd
734736
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE

scripts/signing_secure_boot_dev.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ done
100100
## vmlinuz signing
101101
######################
102102

103-
CURR_VMLINUZ=$FS_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}+deb13-sonic-${CONFIGURED_ARCH}
103+
CURR_VMLINUZ=$FS_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}-sonic-${CONFIGURED_ARCH}
104104

105105
# clean old files
106106
clean_file ${CURR_VMLINUZ}-signed
@@ -116,6 +116,6 @@ mv ${CURR_VMLINUZ}-signed ${CURR_VMLINUZ}
116116
#########################
117117
# Kernel Modules signing
118118
#########################
119-
./scripts/signing_kernel_modules.sh -l ${LINUX_KERNEL_VERSION}+deb13 -c ${PEM_CERT} -p ${PEM_PRIV_KEY} -k ${FS_ROOT}
119+
./scripts/signing_kernel_modules.sh -l ${LINUX_KERNEL_VERSION} -c ${PEM_CERT} -p ${PEM_PRIV_KEY} -k ${FS_ROOT}/usr/lib/modules
120120

121121
echo "$0 signing & verifying EFI files and Kernel Modules DONE"

slave.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,6 +1398,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
13981398
$$(addprefix $(PYTHON_WHEELS_PATH)/,$$($$*_PYTHON_WHEELS)) \
13991399
$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(INITRAMFS_TOOLS) \
14001400
$(LINUX_KERNEL) \
1401+
$(LINUX_KBUILD) \
14011402
$(SONIC_DEVICE_DATA) \
14021403
$(IFUPDOWN2) \
14031404
$(KDUMP_TOOLS) \

0 commit comments

Comments
 (0)