diff --git a/Containerfile.extra b/Containerfile.extra index e0650d3a..e531a6b4 100644 --- a/Containerfile.extra +++ b/Containerfile.extra @@ -52,6 +52,7 @@ RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-kmod-nct6687d.sh && \ /tmp/build-kmod-rtl8814au.sh && \ /tmp/build-kmod-rtl88xxau.sh && \ + /tmp/build-kmod-system76.sh && \ /tmp/build-kmod-system76-io.sh && \ /tmp/build-kmod-ryzen-smu.sh && \ /tmp/build-kmod-vhba.sh && \ diff --git a/README.md b/README.md index df7fd420..c2e4cc53 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,8 @@ The `nvidia` stream image contains | [rtl8814au](https://github.com/morrownr/8814au) | extra | Realtek RTL8814AU Driver | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/rtl8814au-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/rtl8814au-kmod) | | [rtl88xxau](https://github.com/aircrack-ng/rtl8812au) | extra | Realtek RTL8812AU/21AU and RTL8814AU driver | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/rtl88xxau-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/rtl88xxau-kmod) | | [ryzen-smu](https://gitlab.com/leogx9r/ryzen_smu) | extra | A Linux kernel driver that exposes access to the SMU (System Management Unit) for certain AMD Ryzen Processors | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/ryzen-smu-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/ryzen-smu-kmod) | -| [system76-io](https://github.com/pop-os/system76-io-dkms) | extra | A Linux kernel driver for the System76 Io board, which is used in System76's Thelio desktop line' | [![badge](https://copr.fedorainfracloud.org/coprs/ssweeny/system76-hwe/package/system76-io-akmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ssweeny/system76-hwe/package/system76-io-akmod/) | +| [system76](https://github.com/pop-os/system76-dkms) | extra | A Linux kernel driver for System76 laptops | [![badge](https://copr.fedorainfracloud.org/coprs/ssweeny/system76-hwe/package/system76-driver-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ssweeny/system76-hwe/package/system76-driver-kmod/) | +| [system76-io](https://github.com/pop-os/system76-io-dkms) | extra | A Linux kernel driver for the System76 Io board, which is used in System76's Thelio desktop line | [![badge](https://copr.fedorainfracloud.org/coprs/ssweeny/system76-hwe/package/system76-io-akmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ssweeny/system76-hwe/package/system76-io-akmod/) | | [v4l2loopback](https://github.com/umlaeute/v4l2loopback) | common | allows creating "virtual video devices" | [RPMFusion - free](https://rpmfusion.org/) | | [wl](https://github.com/rpmfusion/broadcom-wl/) | common | support for some legacy broadcom wifi devices | [RPMFusion - nonfree](https://rpmfusion.org/) | | [xpadneo](https://github.com/atar-axis/xpadneo) | common | xbox one controller bluetooth driver | [negativo17 - fedora-multimedia](https://negativo17.org/) | diff --git a/build-kmod-system76.sh b/build-kmod-system76.sh new file mode 100755 index 00000000..0e457568 --- /dev/null +++ b/build-kmod-system76.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +set -oeux pipefail + +ARCH="$(rpm -E '%_arch')" +KERNEL="$(rpm -q "${KERNEL_NAME:-kernel}" --queryformat '%{VERSION}-%{RELEASE}.%{ARCH}')" +RELEASE="$(rpm -E '%fedora')" + +if [[ "${RELEASE}" -ge 41 ]]; then + COPR_RELEASE="rawhide" +else + COPR_RELEASE="${RELEASE}" +fi + +curl -LsSf -o /etc/yum.repos.d/_copr_ssweeny-system76-hwe.repo \ + "https://copr.fedorainfracloud.org/coprs/ssweeny/system76-hwe/repo/fedora-${COPR_RELEASE}/ssweeny-system76-hwe-fedora-${COPR_RELEASE}.repo" + +### BUILD system76-io (succeed or fail-fast with debug output) +dnf install -y \ + "akmod-system76-driver*.fc${RELEASE}.${ARCH}" +akmods --force --kernels "${KERNEL}" --kmod system76-driver +modinfo "/usr/lib/modules/${KERNEL}/extra/system76-driver/system76.ko.xz" >/dev/null || + (find /var/cache/akmods/system76-io/ -name \*.log -print -exec cat {} \; && exit 1) + +rm -f /etc/yum.repos.d/_copr_ssweeny-system76-hwe.repo diff --git a/test-prep.sh b/test-prep.sh index da68e20f..5dde3ee6 100755 --- a/test-prep.sh +++ b/test-prep.sh @@ -66,8 +66,8 @@ curl -LsSf -o /etc/yum.repos.d/_copr_hikariknight-looking-glass-kvmfr.repo \ "https://copr.fedorainfracloud.org/coprs/hikariknight/looking-glass-kvmfr/repo/fedora-${COPR_RELEASE}/hikariknight-looking-glass-kvmfr-fedora-${COPR_RELEASE}.repo" fi -if [[ -f $(find /tmp/akmods-rpms/kmods/kmod-system76-io-*.rpm) ]]; then -curl -LsSf -o /etc/yum.repos.d/_copr_ssweeny-system76-io.repo \ +if [[ -f $(find /tmp/akmods-rpms/kmods/kmod-system76-io-*.rpm) || -f $(find /tmp/akmods-rpms/kmods/kmod-system76-driver-*.rpm) ]]; then +curl -LsSf -o /etc/yum.repos.d/_copr_ssweeny-system76-hwe.repo \ "https://copr.fedorainfracloud.org/coprs/ssweeny/system76-hwe/repo/fedora-${COPR_RELEASE}/ssweeny-system76-hwe-fedora-${COPR_RELEASE}.repo" fi