diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index dacbc6bc..24fb964b 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -45,7 +45,7 @@ jobs: exclude: - fedora_version: 41 kernel_flavor: coreos-stable - - fedora_version: 41 + - fedora_version: 40 kernel_flavor: coreos-testing - fedora_version: 41 kernel_flavor: fsync @@ -53,6 +53,8 @@ jobs: kernel_flavor: fsync-ba - fedora_version: 41 kernel_flavor: surface + - fedora_version: 40 + kernel_flavor: bazzite - fedora_version: 39 kernel_flavor: fsync - fedora_version: 39 diff --git a/Containerfile.common b/Containerfile.common index 70c26a3c..9992d9c4 100644 --- a/Containerfile.common +++ b/Containerfile.common @@ -46,6 +46,7 @@ RUN --mount=type=cache,dst=/var/cache/dnf \ ; else \ export KERNEL_NAME="kernel-surface" \ ; fi && \ + /tmp/build-kmod-framework-laptop.sh && \ /tmp/build-kmod-kvmfr.sh && \ /tmp/build-kmod-openrazer.sh && \ /tmp/build-kmod-v4l2loopback.sh && \ diff --git a/Containerfile.nvidia b/Containerfile.nvidia index 51d625ab..cca26cb5 100644 --- a/Containerfile.nvidia +++ b/Containerfile.nvidia @@ -31,7 +31,7 @@ COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-nvidia-a COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/ublue-nvctk-cdi.service COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset - +COPY files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/60-nvidia-extra-devices-pm.rules RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-prep.sh && \ diff --git a/Containerfile.nvidia-open b/Containerfile.nvidia-open index 6670e78a..e0c25203 100644 --- a/Containerfile.nvidia-open +++ b/Containerfile.nvidia-open @@ -31,7 +31,7 @@ COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-nvidia-a COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/ublue-nvctk-cdi.service COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset - +COPY files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/60-nvidia-extra-devices-pm.rules RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-prep.sh && \ diff --git a/README.md b/README.md index 4b88fc63..1751a995 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ The `nvidia` stream image contains | [bmi260](https://github.com/hhd-dev/bmi260) | extra | kernel module driver for the Bosch BMI260 IMU | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/bmi260-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/bmi260-kmod) | | [evdi](www.displaylink.com) | extra | kernel module required for use of displaylink | [negativo17 - fedora-multimedia](https://negativo17.org/) | | [facetimehd](https://github.com/patjak/facetimehd/) | extra | kernel module Linux driver for the FacetimeHD (Broadcom 1570) PCIe webcam | [![badge](https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/package/facetimehd-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/package/facetimehd-kmod) | +| [framework-laptop](https://github.com/DHowett/framework-laptop-kmod) | common | A kernel module that exposes the Framework Laptop (13, 16)'s battery charge limit and LEDs to userspace | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/framework-laptop-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/framework-laptop-kmod) | | [gcadapter_oc](https://github.com/hannesmann/gcadapter-oc-kmod) | extra | kernel module for overclocking the Nintendo Wii U/Mayflash GameCube adapter | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/gcadapter_oc-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/gcadapter_oc-kmod) | | [it87-extras](https://github.com/frankcrawford/it87) | extra | Linux driver for ITE sensors and PWM controllers with expanded Gigabyte motherboard support | [![badge](https://copr.fedorainfracloud.org/coprs/grandpares/it87-extras/package/it87-extras-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/grandpares/it87-extras/package/it87-extras-kmod/) | | [kvmfr](https://github.com/gnif/looking-glass) | common | KVM framebuffer relay kernel module for use with Looking Glass | [![badge](https://copr.fedorainfracloud.org/coprs/hikariknight/looking-glass-kvmfr/package/kvmfr-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/hikariknight/looking-glass-kvmfr/package/kvmfr-kmod) | diff --git a/build-kmod-evdi.sh b/build-kmod-evdi.sh index b2785f05..00e33703 100755 --- a/build-kmod-evdi.sh +++ b/build-kmod-evdi.sh @@ -8,7 +8,7 @@ RELEASE="$(rpm -E '%fedora')" cp /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo /etc/yum.repos.d/ -if [[ "${FEDORA_MAJOR_VERSION}" -ge 41 ]]; then +if [[ "${FEDORA_MAJOR_VERSION}" -ge 42 ]]; then if dnf search displaylink | grep -qv "displaylink"; then echo "Skipping build of evdi; displaylink net yet provided by negativo17" exit 0 diff --git a/build-kmod-framework-laptop.sh b/build-kmod-framework-laptop.sh new file mode 100755 index 00000000..c5c30b30 --- /dev/null +++ b/build-kmod-framework-laptop.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -oeux pipefail + +ARCH="$(rpm -E '%_arch')" +KERNEL="$(rpm -q "${KERNEL_NAME}" --queryformat '%{VERSION}-%{RELEASE}.%{ARCH}')" +RELEASE="$(rpm -E '%fedora')" + +cp /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/_copr_ublue-os-akmods.repo /etc/yum.repos.d/ + +### BUILD framework-laptop (succeed or fail-fast with debug output) +dnf install -y \ + akmod-framework-laptop-*.fc${RELEASE}.${ARCH} +akmods --force --kernels "${KERNEL}" --kmod framework-laptop +modinfo /usr/lib/modules/${KERNEL}/extra/framework-laptop/framework_laptop.ko.xz > /dev/null \ +|| (find /var/cache/akmods/framework_laptop/ -name \*.log -print -exec cat {} \; && exit 1) + +rm -f /etc/yum.repos.d/_copr_ublue-os-akmods.repo diff --git a/build-kmod-vhba.sh b/build-kmod-vhba.sh index 7b66ad51..7bd2171e 100755 --- a/build-kmod-vhba.sh +++ b/build-kmod-vhba.sh @@ -12,11 +12,6 @@ if [[ "$RELEASE" -lt 39 ]]; then exit 0 fi -if [[ "${FEDORA_MAJOR_VERSION}" -ge 41 ]]; then - echo "Skipping build of vhba; net yet provided by COPR" - exit 0 -fi - if [[ "${RELEASE}" -ge 42 ]]; then COPR_RELEASE="rawhide" else diff --git a/build-kmod-xpadneo.sh b/build-kmod-xpadneo.sh index 3ad92275..549e58ea 100755 --- a/build-kmod-xpadneo.sh +++ b/build-kmod-xpadneo.sh @@ -1,6 +1,6 @@ #!/bin/sh -set -oux pipefail +set -oeux pipefail ARCH="$(rpm -E '%_arch')" @@ -9,15 +9,6 @@ RELEASE="$(rpm -E '%fedora')" cp /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo /etc/yum.repos.d/ -if [[ "${FEDORA_MAJOR_VERSION}" -ge 41 ]]; then - if dnf search akmod-xpadneo|grep -qv "akmod-xpadneo"; then - echo "Skipping build of xpadneo; net yet provided by negativo17" - exit 0 - fi -fi - -set -e pipefail - ### BUILD xpadneo (succeed or fail-fast with debug output) dnf install -y \ akmod-xpadneo-*.fc${RELEASE}.${ARCH} diff --git a/build-kmod-zfs.sh b/build-kmod-zfs.sh index 9d9b7faf..b7c179a5 100755 --- a/build-kmod-zfs.sh +++ b/build-kmod-zfs.sh @@ -19,7 +19,7 @@ echo "ZFS_VERSION==$ZFS_VERSION" ### zfs specific build deps -dnf install -y libtirpc-devel libblkid-devel libuuid-devel libudev-devel openssl-devel libaio-devel libattr-devel elfutils-libelf-devel python3-devel libffi-devel libcurl-devel ncompress +dnf install -y libtirpc-devel libblkid-devel libuuid-devel libudev-devel openssl-devel libaio-devel libattr-devel elfutils-libelf-devel python3-devel libffi-devel libcurl-devel ncompress python3-setuptools ### BUILD zfs diff --git a/files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules b/files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules new file mode 100644 index 00000000..fd76aff5 --- /dev/null +++ b/files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules @@ -0,0 +1,8 @@ +# Remove NVIDIA USB xHCI Host Controller devices, if present +ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1" + +# Remove NVIDIA USB Type-C UCSI devices, if present +ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{remove}="1" + +# Remove NVIDIA Audio devices, if present +ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{remove}="1" diff --git a/ublue-os-nvidia-addons.spec b/ublue-os-nvidia-addons.spec index 5aa0544b..d91c3569 100644 --- a/ublue-os-nvidia-addons.spec +++ b/ublue-os-nvidia-addons.spec @@ -16,6 +16,7 @@ Source3: 70-ublue-nvctk-cdi.preset Source4: environment Source5: negativo17-fedora-nvidia.repo Source6: eyecantcu-supergfxctl.repo +Source7: 60-nvidia-extra-devices-pm.rules %description Adds various runtime files for nvidia support.