Skip to content

Commit 1fccc97

Browse files
vivekrnvyxieca
authored andcommitted
[Nvidia] Fix mlnx-sai build failure (#14)
Signed-off-by: Vivek Reddy <[email protected]> [Nvidia] Enable iproute2 & fix mft build (#16) * Enable iproute2 as the SDK is also built Signed-off-by: Vivek Reddy <[email protected]> * [Nvidia] Dont use mkbmdeb method of dkms to build the package Signed-off-by: Vivek Reddy <[email protected]> * Added linux image to the Depends section of mft Signed-off-by: Vivek Reddy <[email protected]> [Nvidia] [Bookworm] Separate KERNEL_MFT into a new target (#16782) * [Nvidia] Seperate KERNEL_MFT into a new target because of kernel header dependency Signed-off-by: Vivek Reddy <[email protected]> * Update linux-kernel submodule Signed-off-by: Vivek Reddy <[email protected]> * Fix paralell build problem Signed-off-by: Vivek Reddy <[email protected]> --------- Signed-off-by: Vivek Reddy <[email protected]>
1 parent 73605a9 commit 1fccc97

File tree

7 files changed

+59
-23
lines changed

7 files changed

+59
-23
lines changed

platform/mellanox/mft.mk

+5-5
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ export MFT_VERSION MFT_REVISION MFT_FROM_INTERNAL MLNX_MFT_INTERNAL_SOURCE_BASE_
3131

3232
MFT = mft_$(MFT_VERSION)-$(MFT_REVISION)_$(CONFIGURED_ARCH).deb
3333
$(MFT)_SRC_PATH = $(PLATFORM_PATH)/mft
34-
SONIC_MAKE_DEBS += $(MFT)
3534

36-
$(MFT)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON)
35+
MFT_OEM = mft-oem_$(MFT_VERSION)-$(MFT_REVISION)_$(CONFIGURED_ARCH).deb
36+
$(eval $(call add_derived_package,$(MFT),$(MFT_OEM)))
3737

3838
KERNEL_MFT = kernel-mft-dkms-modules-$(KVERSION)_$(MFT_VERSION)_$(CONFIGURED_ARCH).deb
39-
$(eval $(call add_derived_package,$(MFT),$(KERNEL_MFT)))
39+
$(KERNEL_MFT)_SRC_PATH = $(PLATFORM_PATH)/mft
40+
$(KERNEL_MFT)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON)
4041

41-
MFT_OEM = mft-oem_$(MFT_VERSION)-$(MFT_REVISION)_$(CONFIGURED_ARCH).deb
42-
$(eval $(call add_derived_package,$(MFT),$(MFT_OEM)))
42+
SONIC_MAKE_DEBS += $(MFT) $(KERNEL_MFT)

platform/mellanox/mft/Makefile

+36-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2016-2021 NVIDIA CORPORATION & AFFILIATES.
2+
# Copyright (c) 2016-2023 NVIDIA CORPORATION & AFFILIATES.
33
# Apache-2.0
44
#
55
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,19 +34,46 @@ MFT_TGZ_URL = http://www.mellanox.com/downloads/MFT/$(MFT_TGZ)
3434
endif
3535

3636
SRC_DEB = kernel-mft-dkms_$(MFT_VERSION)-$(MFT_REVISION)_all.deb
37-
MOD_DEB = kernel-mft-dkms-modules-$(KVERSION)_$(MFT_VERSION)_$(CONFIGURED_ARCH).deb
37+
KERNEL_MFT_TARGET = kernel-mft-dkms-modules-$(KVERSION)_$(MFT_VERSION)_$(CONFIGURED_ARCH).deb
3838

3939
MAIN_TARGET = mft_$(MFT_VERSION)-$(MFT_REVISION)_$(CONFIGURED_ARCH).deb
40-
DERIVED_TARGETS = $(MOD_DEB) mft-oem_$(MFT_VERSION)-$(MFT_REVISION)_$(CONFIGURED_ARCH).deb
40+
DERIVED_TARGETS = mft-oem_$(MFT_VERSION)-$(MFT_REVISION)_$(CONFIGURED_ARCH).deb
4141

42-
DKMS_BMDEB = /var/lib/dkms/kernel-mft-dkms/$(MFT_VERSION)/bmdeb
42+
DKMS_CTRL = /var/lib/dkms/kernel-mft-dkms/
4343
DKMS_TMP := $(shell mktemp -u -d -t dkms.XXXXXXXXXX)
4444

45+
MFT_TMP = /tmp/mft_build/
46+
4547
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
48+
mkdir -p $(MFT_TMP)
49+
pushd $(MFT_TMP)
50+
wget -O $(MFT_TGZ) $(MFT_TGZ_URL)
51+
tar xzf $(MFT_TGZ)
52+
53+
# fix timestamp
54+
touch $(MFT_NAME)/DEBS/*.deb
55+
mv $(MFT_NAME)/DEBS/*.deb $(DEST)
56+
popd
57+
rm -rf $(MFT_TMP)
58+
59+
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
60+
61+
$(addprefix $(DEST)/, $(KERNEL_MFT_TARGET)): $(DEST)/% :
4662
rm -rf $(MFT_NAME)
4763
wget -O $(MFT_TGZ) $(MFT_TGZ_URL)
4864
tar xzf $(MFT_TGZ)
4965

66+
# Prepare the directory to build kernel-mft-dkms-modules debian package
67+
mkdir -p $(DKMS_TMP)/DEBIAN
68+
mkdir -p $(DKMS_TMP)/lib/modules/$(KVERSION)/updates/dkms/
69+
export kversion="$(KVERSION)"
70+
export mft_version="$(MFT_VERSION)"
71+
j2 templates/control.j2 > $(DKMS_TMP)/DEBIAN/control
72+
j2 templates/postinst.j2 > $(DKMS_TMP)/DEBIAN/postinst
73+
j2 templates/postrm.j2 > $(DKMS_TMP)/DEBIAN/postrm
74+
chmod +x $(DKMS_TMP)/DEBIAN/postinst
75+
chmod +x $(DKMS_TMP)/DEBIAN/postrm
76+
5077
pushd $(MFT_NAME)/SDEBS
5178

5279
# put a lock here because dpkg does not allow installing packages in parallel
@@ -59,24 +86,17 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
5986
popd
6087

6188
sudo dkms build kernel-mft-dkms/$(MFT_VERSION) -k $(KVERSION) -a $(CONFIGURED_ARCH)
62-
sudo dkms mkbmdeb kernel-mft-dkms/$(MFT_VERSION) -k $(KVERSION) -a $(CONFIGURED_ARCH)
63-
64-
# w/a: remove dependencies
65-
mkdir -p $(DKMS_TMP)/DEBIAN
66-
67-
dpkg -e $(DKMS_BMDEB)/$(MOD_DEB) $(DKMS_TMP)/DEBIAN
68-
dpkg -x $(DKMS_BMDEB)/$(MOD_DEB) $(DKMS_TMP)
6989

70-
sed -i '/^Depends:/c\Depends:' $(DKMS_TMP)/DEBIAN/control
90+
# copy the built modules
91+
cp -r $(DKMS_CTRL)/kernel-$(KVERSION)-$(CONFIGURED_ARCH)/module/*.ko \
92+
$(DKMS_TMP)/lib/modules/$(KVERSION)/updates/dkms/
7193

7294
pushd $(MFT_NAME)/DEBS
7395
dpkg -b $(DKMS_TMP) .
7496
popd
7597

7698
rm -rf $(DKMS_TMP)
7799

78-
# fix timestamp because we do not actually build tools, only kernel
79-
touch $(MFT_NAME)/DEBS/*.deb
80-
mv $(MFT_NAME)/DEBS/*.deb $(DEST)
100+
mv $(MFT_NAME)/DEBS/$(KERNEL_MFT_TARGET) $(DEST)
101+
81102

82-
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Package: kernel-mft-dkms-modules-{{kversion}}
2+
Source: kernel-mft-dkms-dkms-bin
3+
Version: {{mft_version}}
4+
Architecture: amd64
5+
Maintainer: Vivek Reddy <vkarri@nvidia.com>
6+
Provides: kernel-mft-dkms-modules
7+
Depends: linux-image-{{ kversion }}-unsigned
8+
Section: misc
9+
Priority: optional
10+
Description: kernel-mft-dkms binary drivers for linux-image-{{kversion}} Kernel
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
set -e
3+
depmod -a {{kversion}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
set -e
3+
depmod -a {{kversion}}

platform/mellanox/mlnx-sai.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
MLNX_SAI_VERSION = SAIBuild2211.25.1.4
44
MLNX_SAI_ASSETS_GITHUB_URL = https://github.com/Mellanox/Spectrum-SDK-Drivers-SONiC-Bins
55
MLNX_SAI_ASSETS_RELEASE_TAG = sai-$(MLNX_SAI_VERSION)-$(BLDENV)-$(CONFIGURED_ARCH)
6-
MLNX_SAI_ASSETS_URL = $(MLNX_ASSETS_GITHUB_URL)/releases/download/$(MLNX_SAI_ASSETS_RELEASE_TAG)
6+
MLNX_SAI_ASSETS_URL = $(MLNX_SAI_ASSETS_GITHUB_URL)/releases/download/$(MLNX_SAI_ASSETS_RELEASE_TAG)
77
MLNX_SAI_DEB_VERSION = $(subst -,.,$(subst _,.,$(MLNX_SAI_VERSION)))
88

99
# Place here URL where SAI sources exist

rules/docker-platform-monitor.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ DOCKER_PLATFORM_MONITOR_DBG = $(DOCKER_PLATFORM_MONITOR_STEM)-$(DBG_IMAGE_MARK).
66

77
$(DOCKER_PLATFORM_MONITOR)_PATH = $(DOCKERS_PATH)/$(DOCKER_PLATFORM_MONITOR_STEM)
88

9-
$(DOCKER_PLATFORM_MONITOR)_DEPENDS += $(LIBSENSORS) $(LM_SENSORS) $(FANCONTROL) $(SENSORD) $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON) $(MFT)
9+
$(DOCKER_PLATFORM_MONITOR)_DEPENDS += $(LIBSENSORS) $(LM_SENSORS) $(FANCONTROL) $(SENSORD) $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON)
1010

1111

1212
$(DOCKER_PLATFORM_MONITOR)_PYTHON_WHEELS += $(SONIC_PLATFORM_COMMON_PY3)

0 commit comments

Comments
 (0)