33%global tesla_patch 08
44%global tesla_ver %{tesla_major }.%{tesla_minor }.%{tesla_patch }
55%if "%{?_cross_arch }" == "aarch64 "
6- %global fm_arch sbsa
6+ %global nvidia_arch sbsa
77%else
8- %global fm_arch %{_cross_arch }
8+ %global nvidia_arch %{_cross_arch }
99%endif
1010
1111%global kernel_major 6.12
@@ -39,6 +39,10 @@ Source3: COPYING
3939Source10: https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64 /nvidia-fabric-manager-%{tesla_ver }-1.x86_64 .rpm
4040Source11: https://developer.download.nvidia.com/compute/cuda/repos/rhel9/sbsa/nvidia-fabric-manager-%{tesla_ver }-1.aarch64 .rpm
4141
42+ # IMEX for GB200
43+ Source20: https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64 /nvidia-imex-%{tesla_ver }-1.x86_64 .rpm
44+ Source21: https://developer.download.nvidia.com/compute/cuda/repos/rhel9/sbsa/nvidia-imex-%{tesla_ver }-1.aarch64 .rpm
45+
4246# Common NVIDIA conf files from 200 to 299
4347Source200: nvidia-tmpfiles.conf.in
4448Source202: nvidia-dependencies-modules-load.conf
@@ -85,10 +89,18 @@ Requires: %{name}-grid
8589Summary: NVIDIA fabricmanager config and service files
8690Requires: %{name }-tesla(fabricmanager)
8791Requires: %{_cross_os }nvlsm
92+ Requires: %{name }-imex
8893
8994%description fabricmanager
9095%{summary }.
9196
97+ %package imex
98+ Summary: NVIDIA IMEX config and service files
99+ Requires: %{name }
100+
101+ %description imex
102+ %{summary }.
103+
92104%package open-gpu
93105Summary: NVIDIA %{tesla_major } Open GPU driver
94106Version: %{tesla_ver }
@@ -135,12 +147,17 @@ popd
135147
136148# Extract fabricmanager from the rpm via cpio rather than `%%setup` since the
137149# correct source is architecture-dependent.
138- mkdir fabricmanager-linux-%{fm_arch }-%{tesla_ver }-archive
139- rpm2cpio %{_sourcedir }/nvidia-fabric-manager-%{tesla_ver }-1.%{_cross_arch }.rpm | cpio -idmV -D fabricmanager-linux-%{fm_arch }-%{tesla_ver }-archive
150+ mkdir fabricmanager-linux-%{nvidia_arch }-%{tesla_ver }-archive
151+ rpm2cpio %{_sourcedir }/nvidia-fabric-manager-%{tesla_ver }-1.%{_cross_arch }.rpm | cpio -idmV -D fabricmanager-linux-%{nvidia_arch }-%{tesla_ver }-archive
140152
141153# Add the license.
142154install -p -m 0644 %{S:2 } %{S:3 } .
143155
156+ # Extract imex from the rpm via cpio rather than `%%setup` since the
157+ # correct source is architecture-dependent.
158+ mkdir imex-%{nvidia_arch }-%{tesla_ver }-archive
159+ rpm2cpio %{_sourcedir }/nvidia-imex-%{tesla_major }-%{tesla_ver }-1.%{_cross_arch }.rpm | cpio -idmV -D imex-%{nvidia_arch }-%{tesla_ver }-archive
160+
144161# This recipe was based in the NVIDIA yum/dnf specs:
145162# https://github.com/NVIDIA/yum-packaging-precompiled-kmod
146163
@@ -429,7 +446,7 @@ install -p -m 0644 supported-gpus/open-gpu-supported-devices.json %{buildroot}%{
429446popd
430447
431448# Begin NVIDIA fabric manager binaries and topologies
432- pushd fabricmanager-linux-%{fm_arch }-%{tesla_ver }-archive
449+ pushd fabricmanager-linux-%{nvidia_arch }-%{tesla_ver }-archive
433450install -p -m 0755 usr/bin/nv-fabricmanager %{buildroot }%{_cross_bindir }
434451install -p -m 0755 usr/bin/nvswitch-audit %{buildroot }%{_cross_bindir }
435452ln -rs %{buildroot }%{_cross_bindir }/nv-fabricmanager %{buildroot }%{_cross_libexecdir }/nvidia/tesla/bin/nv-fabricmanager
@@ -442,6 +459,13 @@ done
442459
443460popd
444461
462+ # Begin IMEX binaries and configuration files
463+ pushd imex-%{nvidia_arch }-%{tesla_ver }-archive
464+ install -p -m 0755 usr/bin/nvidia-imex %{buildroot }%{_cross_bindir }
465+ install -p -m 0755 usr/bin/nvidia-imex-ctl %{buildroot }%{_cross_bindir }
466+
467+ popd
468+
445469%files
446470%{_cross_attribution_file }
447471%dir %{_cross_libexecdir }/nvidia
455479
456480%files tesla
457481%license NVidiaEULAforAWS.pdf
458- %license fabricmanager-linux-%{fm_arch }-%{tesla_ver }-archive/usr/share/doc/nvidia-fabricmanager/third-party-notices.txt
482+ %license fabricmanager-linux-%{nvidia_arch }-%{tesla_ver }-archive/usr/share/doc/nvidia-fabricmanager/third-party-notices.txt
459483%dir %{_cross_datadir }/egl
460484%dir %{_cross_datadir }/egl/egl_external_platform.d
461485%dir %{_cross_datadir }/glvnd
708732%{_cross_factorydir }%{_cross_sysconfdir }/nvidia/fabricmanager.cfg
709733%{_cross_factorydir }%{_cross_sysconfdir }/nvidia/fabricmanager.env
710734%{_cross_unitdir }/nvidia-fabricmanager.service
735+
736+ %files imex
737+ %{_cross_bindir }/nvidia-imex
738+ %{_cross_bindir }/nvidia-imex-ctl
0 commit comments