Skip to content

Commit 20000b9

Browse files
authored
feat: add supergfxctl package (#77)
1 parent f0537de commit 20000b9

4 files changed

+25
-9
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Note: This project is a work-in-progress. You should at a minimum be familiar wi
1818
- Selinux support
1919
- [Multiple Fedora flavors and releases](https://github.com/ublue-os/nvidia#setup)
2020
- Post-install setup with [`just`](https://github.com/ublue-os/nvidia/blob/main/justfile)
21+
- Multi-GPU support with [`supergfxctl`](https://gitlab.com/asus-linux/supergfxctl) ([optional Gnome Shell extension](https://extensions.gnome.org/extension/5344/supergfxctl-gex/))
2122

2223
## Setup
2324

build.Containerfile

+5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-37}"
55
FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS builder
66

77
ARG NVIDIA_MAJOR_VERSION="${NVIDIA_MAJOR_VERSION:-525}"
8+
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}"
89

910
COPY --from=ghcr.io/ublue-os/config:latest /build /tmp/build
1011
COPY justfile /tmp/build/ublue-os-just/justfile
@@ -16,6 +17,8 @@ ADD ublue-os-nvidia-addons.spec /tmp/ublue-os-nvidia-addons/ublue-os-nvidia-addo
1617

1718
ADD https://nvidia.github.io/nvidia-docker/rhel9.0/nvidia-docker.repo \
1819
/tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/nvidia-container-runtime.repo
20+
ADD https://copr.fedorainfracloud.org/coprs/lukenukem/asus-linux/repo/fedora-${FEDORA_MAJOR_VERSION}/lukenukem-asus-linux-fedora-${FEDORA_MAJOR_VERSION}.repo \
21+
/tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/lukenukem-asus-linux.repo
1922

2023
ADD https://nvidia.github.io/nvidia-docker/rhel9.0/nvidia-docker.repo \
2124
/etc/yum.repos.d/nvidia-container-runtime.repo
@@ -28,6 +31,8 @@ ADD files/etc/sway/environment /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/envi
2831

2932
RUN /tmp/build.sh
3033

34+
RUN rpm -ql /tmp/ublue-os-nvidia-addons/rpmbuild/RPMS/*/*.rpm
35+
3136
FROM scratch
3237

3338
COPY --from=builder /var/cache /var/cache

install.sh

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/fedora-{cisco-openh264,modular
66

77
install -D /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/nvidia-container-runtime.repo \
88
/etc/yum.repos.d/nvidia-container-runtime.repo
9+
install -D /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/lukenukem-asus-linux.repo \
10+
/etc/yum.repos.d/lukenukem-asus-linux.repo
911

1012
source /var/cache/akmods/nvidia-vars
1113

1214
rpm-ostree install \
1315
xorg-x11-drv-${NVIDIA_PACKAGE_NAME}-{,cuda-,devel-,kmodsrc-,power-}${NVIDIA_FULL_VERSION} \
14-
nvidia-container-toolkit nvidia-vaapi-driver \
16+
nvidia-container-toolkit nvidia-vaapi-driver supergfxctl \
1517
/var/cache/akmods/${NVIDIA_PACKAGE_NAME}/kmod-${NVIDIA_PACKAGE_NAME}-${KERNEL_VERSION}-${NVIDIA_AKMOD_VERSION}.fc${RELEASE}.rpm \
1618
/tmp/ublue-os-nvidia-addons/rpmbuild/RPMS/noarch/ublue-os-nvidia-addons-*.rpm \
1719
/tmp/ublue-os/rpmbuild/RPMS/noarch/ublue-os-just-*.noarch.rpm

ublue-os-nvidia-addons.spec

+16-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Name: ublue-os-nvidia-addons
2-
Version: 0.3
2+
Version: 0.4
33
Release: 1%{?dist}
44
Summary: Additional files for nvidia driver support
55

@@ -11,9 +11,10 @@ Supplements: mokutil policycoreutils
1111

1212
Source0: public_key.der
1313
Source1: nvidia-container-runtime.repo
14-
Source2: config-rootless.toml
15-
Source3: nvidia-container.pp
16-
Source4: environment
14+
Source2: lukenukem-asus-linux.repo
15+
Source3: config-rootless.toml
16+
Source4: nvidia-container.pp
17+
Source5: environment
1718

1819
%description
1920
Adds various runtime files for nvidia support. These include a key for importing with mokutil to enable secure boot for nvidia kernel modules
@@ -26,29 +27,36 @@ Adds various runtime files for nvidia support. These include a key for importing
2627
# Have different name for *.der in case kmodgenca is needed for creating more keys
2728
install -Dm0644 %{SOURCE0} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/pki/akmods/certs/akmods-nvidia.der
2829
install -Dm0644 %{SOURCE1} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/nvidia-container-runtime.repo
29-
install -Dm0644 %{SOURCE2} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/nvidia-container-runtime/config-rootless.toml
30-
install -Dm0644 %{SOURCE3} %{buildroot}%{_datadir}/ublue-os/%{_datadir}/selinux/packages/nvidia-container.pp
31-
install -Dm0644 %{SOURCE4} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/sway/environment
30+
install -Dm0644 %{SOURCE2} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/lukenukem-asus-linux.repo
31+
install -Dm0644 %{SOURCE3} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/nvidia-container-runtime/config-rootless.toml
32+
install -Dm0644 %{SOURCE4} %{buildroot}%{_datadir}/ublue-os/%{_datadir}/selinux/packages/nvidia-container.pp
33+
install -Dm0644 %{SOURCE5} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/sway/environment
3234

33-
sed -i 's@enabled=1@enabled=0@g' %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/nvidia-container-runtime.repo
35+
sed -i 's@enabled=1@enabled=0@g' %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/{lukenukem-asus-linux,nvidia-container-runtime}.repo
3436

3537
install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/pki/akmods/certs/akmods-nvidia.der %{buildroot}%{_sysconfdir}/pki/akmods/certs/akmods-nvidia.der
3638
install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/nvidia-container-runtime.repo %{buildroot}%{_sysconfdir}/yum.repos.d/nvidia-container-runtime.repo
39+
install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/lukenukem-asus-linux.repo %{buildroot}%{_sysconfdir}/yum.repos.d/lukenukem-asus-linux.repo
3740
install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/nvidia-container-runtime/config-rootless.toml %{buildroot}%{_sysconfdir}/nvidia-container-runtime/config-rootless.toml
3841
install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_datadir}/selinux/packages/nvidia-container.pp %{buildroot}%{_datadir}/selinux/packages/nvidia-container.pp
3942

4043
%files
4144
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/pki/akmods/certs/akmods-nvidia.der
4245
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/nvidia-container-runtime.repo
46+
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/lukenukem-asus-linux.repo
4347
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/nvidia-container-runtime/config-rootless.toml
4448
%attr(0644,root,root) %{_datadir}/ublue-os/%{_datadir}/selinux/packages/nvidia-container.pp
4549
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/sway/environment
4650
%attr(0644,root,root) %{_sysconfdir}/pki/akmods/certs/akmods-nvidia.der
4751
%attr(0644,root,root) %{_sysconfdir}/yum.repos.d/nvidia-container-runtime.repo
52+
%attr(0644,root,root) %{_sysconfdir}/yum.repos.d/lukenukem-asus-linux.repo
4853
%attr(0644,root,root) %{_sysconfdir}/nvidia-container-runtime/config-rootless.toml
4954
%attr(0644,root,root) %{_datadir}/selinux/packages/nvidia-container.pp
5055

5156
%changelog
57+
* Sun Mar 26 2023 Joshua Stone <joshua.gage.stone@gmail.com> - 0.4
58+
- Add asus-linux COPR
59+
5260
* Fri Feb 24 2023 Joshua Stone <joshua.gage.stone@gmail.com> - 0.3
5361
- Add sway environment file
5462
- Put ublue-os modifications into a separate data directory

0 commit comments

Comments
 (0)