Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/kmod-6.1-nvidia-r580/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/580.159.
sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938"
force-upstream = true

[[package.metadata.build-package.external-files]]
url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz"
sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342"

[build-dependencies]
kernel-6_1 = { path = "../kernel-6.1" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[Unit]
Description=Copy GDRCopy kernel module (open-gpu)
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
# Rerunning this service after the system is fully loaded will override
# the already linked kernel modules. This doesn't affect the running system,
# since kernel modules are linked early in the boot sequence, but we still
# disable manual restarts to prevent unnecessary kernel modules rewrites.
RefuseManualStart=true
RefuseManualStop=true

[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-gdrcopy-open-gpu link-modules
RemainAfterExit=true
StandardError=journal+console

[Install]
RequiredBy=drivers.target
68 changes: 68 additions & 0 deletions packages/kmod-6.1-nvidia-r580/kmod-6.1-nvidia-r580.spec
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
%global tesla_patch 03
%global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch}
%global grid_ver grid-19.5
%global gdrcopy_ver 2.6
%if "%{?_cross_arch}" == "aarch64"
%global nvidia_arch sbsa
%else
Expand Down Expand Up @@ -73,6 +74,14 @@ Source503: load-open-gpu-kernel-modules.service.in
Source504: copy-grid-kernel-modules.service.in
Source505: load-grid-kernel-modules.service.in

Source600: nvidia-gdrcopy-open-gpu-config.toml.in

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit - other sections like this we preface with a comment

Suggested change
Source600: nvidia-gdrcopy-open-gpu-config.toml.in
# GDRcopy config files from 600 to 699
Source600: nvidia-gdrcopy-open-gpu-config.toml.in

Source601: copy-gdrcopy-open-gpu-kernel-module.service.in
Source602: load-gdrcopy-open-gpu-kernel-module.service.in
Source603: nvidia-gdrcopy-tmpfiles.conf

# GDRcopy
Source700: https://github.com/NVIDIA/gdrcopy/archive/v%{gdrcopy_ver}/gdrcopy-%{gdrcopy_ver}.tar.gz

Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch

BuildRequires: %{_cross_os}kernel-6.1-archive
Expand Down Expand Up @@ -138,6 +147,16 @@ Requires: %{name}
%description mps
%{summary}.

%package gdrcopy
Summary: NVIDIA GDRCopy driver
Version: %{gdrcopy_ver}
License: MIT AND GPL-2.0-only
Requires: %{_cross_os}variant-platform(aws)
Requires: %{name}

%description gdrcopy
%{summary}.

%prep
# Extract nvidia sources with `-x`, otherwise the script will try to install
# the driver in the current run
Expand Down Expand Up @@ -244,6 +263,24 @@ and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gp
jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json
popd

tar -xof %{S:700}
pushd gdrcopy-%{gdrcopy_ver}/src/gdrdrv
NVIDIA_SRC_DIR="%{_builddir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open/nvidia" \
NVIDIA_IS_OPENSOURCE=y \
HAVE_VM_FLAGS_SET=n \
HAVE_PROC_OPS=y \
make %{?_smp_mflags} \
-C %{kernel_sources} \
M="$PWD" \
ARCH=%{_cross_karch} \
CC=%{_cross_target}-gcc \
LD=%{_cross_target}-ld \
modules

%{_cross_target}-strip -g --strip-unneeded gdrdrv.ko
mv gdrdrv.ko ../../gdrdrv-open-gpu.ko
popd

%install
install -d %{buildroot}%{_cross_libdir}
install -d %{buildroot}%{_cross_libdir}/nvidia/tesla
Expand Down Expand Up @@ -473,6 +510,26 @@ done

popd

install -d %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers

install -p -m 0644 gdrcopy-%{gdrcopy_ver}/gdrdrv-open-gpu.ko \
%{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko

install -p -m 0644 gdrcopy-%{gdrcopy_ver}/LICENSE gdrcopy-LICENSE

sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/|' %{S:600} > \
nvidia-gdrcopy-open-gpu.toml
install -m 0644 nvidia-gdrcopy-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers

sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:601} > copy-gdrcopy-open-gpu-kernel-module.service
sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:602} > load-gdrcopy-open-gpu-kernel-module.service
install -p -m 0644 \
copy-gdrcopy-open-gpu-kernel-module.service \
load-gdrcopy-open-gpu-kernel-module.service \
%{buildroot}%{_cross_unitdir}

install -p -m 0644 %{S:603} %{buildroot}%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf

%files
%{_cross_attribution_file}
%dir %{_cross_libexecdir}/nvidia
Expand Down Expand Up @@ -758,3 +815,14 @@ popd
%{_cross_bindir}/nvidia-cuda-mps-server
%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control
%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server

%files gdrcopy
%license gdrcopy-LICENSE
%dir %{_cross_datadir}/nvidia/gdrcopy
%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu
%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers
%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko
%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-gdrcopy-open-gpu.toml
%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf
%{_cross_unitdir}/copy-gdrcopy-open-gpu-kernel-module.service
%{_cross_unitdir}/load-gdrcopy-open-gpu-kernel-module.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[Unit]
Description=Load GDRCopy kernel module (open-gpu)
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
After=copy-gdrcopy-open-gpu-kernel-module.service load-open-gpu-kernel-modules.service
Requires=copy-gdrcopy-open-gpu-kernel-module.service load-open-gpu-kernel-modules.service
# Disable manual restarts to prevent loading kernel modules
# that weren't linked by the running system
RefuseManualStart=true
RefuseManualStop=true

[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-gdrcopy-open-gpu load-modules
ExecStart=/usr/bin/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv
RemainAfterExit=true
StandardError=journal+console

[Install]
RequiredBy=drivers.target
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[nvidia-gdrcopy-open-gpu]
lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu"

[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"]
copy-source = "__NVIDIA_MODULES__"
1 change: 1 addition & 0 deletions packages/kmod-6.1-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
C /etc/drivers/nvidia-gdrcopy-open-gpu.toml
4 changes: 4 additions & 0 deletions packages/kmod-6.1-nvidia-r580/nvidia-tmpfiles.conf.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/op
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu 0755 root root - -
R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid - - - - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid 0755 root root - -
R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy - - - - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy 0755 root root - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu 0755 root root - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy/tesla 0755 root root - -
C /etc/nvidia/fabricmanager.cfg - - - -
C /etc/nvidia/fabricmanager.env - - - -
C /etc/nvidia/gridd.conf - - - -
Expand Down
4 changes: 4 additions & 0 deletions packages/kmod-6.1-nvidia-r595/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/595.71.0
sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938"
force-upstream = true

[[package.metadata.build-package.external-files]]
url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz"
sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342"

[build-dependencies]
kernel-6_1 = { path = "../kernel-6.1" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[Unit]
Description=Copy GDRCopy kernel module (open-gpu)
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
# Rerunning this service after the system is fully loaded will override
# the already linked kernel modules. This doesn't affect the running system,
# since kernel modules are linked early in the boot sequence, but we still
# disable manual restarts to prevent unnecessary kernel modules rewrites.
RefuseManualStart=true
RefuseManualStop=true

[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-gdrcopy-open-gpu link-modules
RemainAfterExit=true
StandardError=journal+console

[Install]
RequiredBy=drivers.target
69 changes: 69 additions & 0 deletions packages/kmod-6.1-nvidia-r595/kmod-6.1-nvidia-r595.spec
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
%global tesla_patch 05
%global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch}
%global grid_ver grid-20.1
%global gdrcopy_ver 2.6
%if "%{?_cross_arch}" == "aarch64"
%global nvidia_arch sbsa
%else
Expand Down Expand Up @@ -73,6 +74,14 @@ Source503: load-open-gpu-kernel-modules.service.in
Source504: copy-grid-kernel-modules.service.in
Source505: load-grid-kernel-modules.service.in

Source600: nvidia-gdrcopy-open-gpu-config.toml.in
Source601: copy-gdrcopy-open-gpu-kernel-module.service.in
Source602: load-gdrcopy-open-gpu-kernel-module.service.in
Source603: nvidia-gdrcopy-tmpfiles.conf

# GDRcopy
Source700: https://github.com/NVIDIA/gdrcopy/archive/v%{gdrcopy_ver}/gdrcopy-%{gdrcopy_ver}.tar.gz

Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch

BuildRequires: %{_cross_os}kernel-6.1-archive
Expand Down Expand Up @@ -138,6 +147,16 @@ Requires: %{name}
%description mps
%{summary}.

%package gdrcopy
Summary: NVIDIA GDRCopy driver
Version: %{gdrcopy_ver}
License: MIT AND GPL-2.0-only
Requires: %{_cross_os}variant-platform(aws)
Requires: %{name}

%description gdrcopy
%{summary}.

%prep
# Extract nvidia sources with `-x`, otherwise the script will try to install
# the driver in the current run
Expand Down Expand Up @@ -244,6 +263,24 @@ and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gp
jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json
popd

tar -xof %{S:700}
pushd gdrcopy-%{gdrcopy_ver}/src/gdrdrv
NVIDIA_SRC_DIR="%{_builddir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open/nvidia" \
NVIDIA_IS_OPENSOURCE=y \
HAVE_VM_FLAGS_SET=n \
HAVE_PROC_OPS=y \
make %{?_smp_mflags} \
-C %{kernel_sources} \
M="$PWD" \
ARCH=%{_cross_karch} \
CC=%{_cross_target}-gcc \
LD=%{_cross_target}-ld \
modules

%{_cross_target}-strip -g --strip-unneeded gdrdrv.ko
mv gdrdrv.ko ../../gdrdrv-open-gpu.ko
popd

%install
install -d %{buildroot}%{_cross_libdir}
install -d %{buildroot}%{_cross_libdir}/nvidia/tesla
Expand Down Expand Up @@ -472,6 +509,26 @@ done

popd

install -d %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers

install -p -m 0644 gdrcopy-%{gdrcopy_ver}/gdrdrv-open-gpu.ko \
%{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko

install -p -m 0644 gdrcopy-%{gdrcopy_ver}/LICENSE gdrcopy-LICENSE

sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/|' %{S:600} > \
nvidia-gdrcopy-open-gpu.toml
install -m 0644 nvidia-gdrcopy-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers

sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:601} > copy-gdrcopy-open-gpu-kernel-module.service
sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:602} > load-gdrcopy-open-gpu-kernel-module.service
install -p -m 0644 \
copy-gdrcopy-open-gpu-kernel-module.service \
load-gdrcopy-open-gpu-kernel-module.service \
%{buildroot}%{_cross_unitdir}

install -p -m 0644 %{S:603} %{buildroot}%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf

%files
%{_cross_attribution_file}
%dir %{_cross_libexecdir}/nvidia
Expand Down Expand Up @@ -760,3 +817,15 @@ popd
%{_cross_bindir}/nvidia-cuda-mps-server
%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control
%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server


%files gdrcopy
%license gdrcopy-LICENSE
%dir %{_cross_datadir}/nvidia/gdrcopy
%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu
%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers
%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko
%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-gdrcopy-open-gpu.toml
%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf
%{_cross_unitdir}/copy-gdrcopy-open-gpu-kernel-module.service
%{_cross_unitdir}/load-gdrcopy-open-gpu-kernel-module.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[Unit]
Description=Load GDRCopy kernel module (open-gpu)
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
After=copy-gdrcopy-open-gpu-kernel-module.service load-open-gpu-kernel-modules.service
Requires=copy-gdrcopy-open-gpu-kernel-module.service load-open-gpu-kernel-modules.service
# Disable manual restarts to prevent loading kernel modules
# that weren't linked by the running system
RefuseManualStart=true
RefuseManualStop=true

[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-gdrcopy-open-gpu load-modules
ExecStart=/usr/bin/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv
RemainAfterExit=true
StandardError=journal+console

[Install]
RequiredBy=drivers.target
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[nvidia-gdrcopy-open-gpu]
lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu"

[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"]
copy-source = "__NVIDIA_MODULES__"
1 change: 1 addition & 0 deletions packages/kmod-6.1-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
C /etc/drivers/nvidia-gdrcopy-open-gpu.toml
4 changes: 4 additions & 0 deletions packages/kmod-6.1-nvidia-r595/nvidia-tmpfiles.conf.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/op
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu 0755 root root - -
R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid - - - - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid 0755 root root - -
R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy - - - - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy 0755 root root - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu 0755 root root - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy/tesla 0755 root root - -
C /etc/nvidia/fabricmanager.cfg - - - -
C /etc/nvidia/fabricmanager.env - - - -
C /etc/nvidia/gridd.conf - - - -
Expand Down
4 changes: 4 additions & 0 deletions packages/kmod-6.12-nvidia-r580/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/580.159.
sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938"
force-upstream = true

[[package.metadata.build-package.external-files]]
url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz"
sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342"

[build-dependencies]
kernel-6_12 = { path = "../kernel-6.12" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[Unit]
Description=Copy GDRCopy kernel module (open-gpu)
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
# Rerunning this service after the system is fully loaded will override
# the already linked kernel modules. This doesn't affect the running system,
# since kernel modules are linked early in the boot sequence, but we still
# disable manual restarts to prevent unnecessary kernel modules rewrites.
RefuseManualStart=true
RefuseManualStop=true

[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-gdrcopy-open-gpu link-modules
RemainAfterExit=true
StandardError=journal+console

[Install]
RequiredBy=drivers.target
Loading
Loading