From 2d5bf647a6a447b2b8c9af32b3f07e8fdb8150a6 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Sun, 31 Mar 2024 22:01:23 -0400 Subject: [PATCH 01/25] feat: add facetimehd-kmod to akmod cache This is the initial commit of the facetimehd firmware for the integrated camera for older macbook air models. --- Containerfile.common | 1 + build-kmod-facetimehd.sh | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 build-kmod-facetimehd.sh diff --git a/Containerfile.common b/Containerfile.common index 755faee3..079e6545 100644 --- a/Containerfile.common +++ b/Containerfile.common @@ -46,6 +46,7 @@ RUN if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ /tmp/build-kmod-bmi160.sh && \ /tmp/build-kmod-bmi260.sh && \ /tmp/build-kmod-bmi323.sh && \ + /tmp/build-kmod-facetimehd.sh && \ /tmp/build-kmod-gcadapter_oc.sh && \ /tmp/build-kmod-nct6687d.sh && \ /tmp/build-kmod-openrazer.sh && \ diff --git a/build-kmod-facetimehd.sh b/build-kmod-facetimehd.sh new file mode 100755 index 00000000..54d0c790 --- /dev/null +++ b/build-kmod-facetimehd.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 + +wget "https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/repo/fedora-${COPR_RELEASE}/mulderje-facetimehd-kmod-fedora-${COPR_RELEASE}.repo" -O /etc/yum.repos.d/_copr_mulderje-facetimehd-kmod.repo + +### BUILD facetimehd (succeed or fail-fast with debug output) +rpm-ostree install \ + "akmod-facetimehd-*.fc${RELEASE}.${ARCH}" \ + facetimehd-firmware +akmods --force --kernels "${KERNEL}" --kmod facetimehd +modinfo "/usr/lib/modules/${KERNEL}/extra/facetimehd/facetimehd.ko.xz" > /dev/null \ +|| (find /var/cache/akmods/facetimehd/ -name \*.log -print -exec cat {} \; && exit 1) + +rm -f /etc/yum.repos.d/_copr_mulderje-facetimehd-kmod.repo From 01860020962b1b52b63d46c181fd304224a3c4b1 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Fri, 5 Apr 2024 16:19:56 -0400 Subject: [PATCH 02/25] chore: add facetimehd to README file --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 14842bac..26ef3343 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,8 @@ Feel free to PR more kmod build scripts into this repo! - [bmi160](https://github.com/hhd-dev/bmi160) - kernel module driver for the BMI160 IMU (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) - [bmi260](https://github.com/hhd-dev/bmi260) - kernel module driver for the Bosch BMI260 IMU (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) - [bmi323](https://github.com/hhd-dev/bmi260) - kernel module driver for the Bosch BMI323 IMU (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [evdi](www.displaylink.com) - kernel module required for use of displaylink (akmod from [negativo17 multimedia repo](https://negativo17.org/multimedia/) +- [evdi](www.displaylink.com) - kernel module required for use of displaylink (akmod from [negativo17 multimedia repo](https://negativo17.org/multimedia/)) +- [facetimehd](https://github.com/patjak/facetimehd/) - kernel module Linux driver for the FacetimeHD (Broadcom 1570) PCIe webcam (akmod from [mulderje/facetimehd-kmod copr](https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/)) - [gcadapter_oc](https://github.com/hannesmann/gcadapter-oc-kmod) - kernel module for overclocking the Nintendo Wii U/Mayflash GameCube adapter (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) - [nct6687d](https://github.com/Fred78290/nct6687d) - Linux kernel module for Nuvoton NCT6687-R found on AMD B550 chipset motherboards (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) - [nvidia](https://rpmfusion.org/Howto/NVIDIA) - nvidia GPU drivers built from rpmfusion From e9c46d059d58b304b4b31b432712851a66a7c44e Mon Sep 17 00:00:00 2001 From: Benjamin Sherman Date: Sun, 7 Apr 2024 20:49:02 -0500 Subject: [PATCH 03/25] chore: support new fedora 6.8.4 main kernel (#166) --- .github/workflows/reusable-build.yml | 11 ----------- README.md | 17 ++++++++++------- build-kmod-v4l2loopback.sh | 4 ++-- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index 8db69605..47eb3f8e 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -37,27 +37,16 @@ jobs: - nvidia nvidia_version: - 0 - - 470 - 550 exclude: - - cfile_suffix: common - nvidia_version: 470 - cfile_suffix: common nvidia_version: 550 - cfile_suffix: nvidia nvidia_version: 0 - - cfile_suffix: nvidia - fedora_version: 39 - kernel_flavor: asus - nvidia_version: 470 # nvidia 470 no longer builds on 6.8 asus kernel - kernel_flavor: asus fedora_version: 38 - kernel_flavor: surface fedora_version: 38 - - kernel_flavor: surface - nvidia_version: 470 - - fedora_version: 40 - nvidia_version: 470 # rpmfusion packages nvidia 470 for F40 but won't compile yet. - fedora_version: 38 kernel_flavor: fsync # kernel-fsync not required for ublue-os F38 - fedora_version: 40 diff --git a/README.md b/README.md index 26ef3343..e9ccfe2c 100644 --- a/README.md +++ b/README.md @@ -41,18 +41,21 @@ The [`akmods` image](https://github.com/orgs/ublue-os/packages/container/package Here's a rundown on how it's organized. -We do our best to support all current builds of Fedora, current versions of the kernel modules listed, and in the case of NVIDIA, current (550) and the 470 legacy driver. +We do our best to support all current builds of Fedora, current versions of the kernel modules listed, and in the case of NVIDIA current (550). +**Note: NVIDIA legacy driver version 470 is no longer provided as RPMfusion has ceased updates to the package and it no longer builds with kernel 6.8 which has now released for Fedora 38 and 39.** The majority of the drivers are tagged with `KERNEL_TYPE-FEDORA_RELEASE`. NVIDIA drivers are bundled distinctly with tag `KERNEL_TYPE-FEDORA_RELEASE-NVIDIA_VERSION`. | KERNEL_TYPE | FEDORA_RELEASE | TAG | | - | - | - | -| Fedora stock kernel | 38 | `main-38`, `main-38-470` `main-38-550` | -| | 39 | `main-39`, `main-39-470` `main-39-550` | -| [patched for ASUS devices](https://copr.fedorainfracloud.org/coprs/lukenukem/asus-kernel) | 38 | `asus-38`, `asus-38-470` `asus-38-550` | -| | 39 | `asus-39`, `asus-39-470` `asus-39-550` | -| [patched Microsoft Surface devices](https://github.com/linux-surface/linux-surface/) | 38 | `surface-38`, `surface-38-550` | -| | 39 | `surface-39`, `surface-39-550` | +| Fedora stock kernel | 38 | `main-38`, `main-38-550` | +| | 39 | `main-39`, `main-39-550` | +| | 40 | `main-40`, `main-40-550` | +| [patched for ASUS devices](https://copr.fedorainfracloud.org/coprs/lukenukem/asus-kernel) | 39 | `asus-39`, `asus-39-550` | +| | 40 | `asus-40`, `asus-40-550` | +| [patched fsync](https://copr.fedorainfracloud.org/coprs/sentry/kernel-fsync) | 39 | `fsync-39`, `fsync-39-550` | +| [patched Microsoft Surface devices](https://github.com/linux-surface/linux-surface/) | 39 | `surface-39`, `surface-39-550` | +| | 40 | `surface-40`, `surface-40-550` | diff --git a/build-kmod-v4l2loopback.sh b/build-kmod-v4l2loopback.sh index ccecc098..ed55af51 100755 --- a/build-kmod-v4l2loopback.sh +++ b/build-kmod-v4l2loopback.sh @@ -7,8 +7,8 @@ ARCH="$(rpm -E '%_arch')" KERNEL="$(rpm -q "${KERNEL_NAME}" --queryformat '%{VERSION}-%{RELEASE}.%{ARCH}')" RELEASE="$(rpm -E '%fedora')" -if [[ "${RELEASE}" -eq "39" ]] && [[ "${KERNEL_FLAVOR}" != "main" ]]; then - echo "SKIPPED BUILD of v4l2loopback: compile failure on F39 w/ 6.8 kernels as of 2024-03-27" +if [[ "${RELEASE}" -lt "40" ]]; then + echo "SKIPPED BUILD of v4l2loopback: compile failure on 6.8 kernels in F38/F39 as of 2024-03-27" exit 0 fi From 800f3cf11bd444080db2df95a3d0a4b668b96a00 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Mon, 8 Apr 2024 14:56:53 -0400 Subject: [PATCH 04/25] fix: docs: fix contributor's guide 404 link (#164) Co-authored-by: Benjamin Sherman --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 2018f211..fc8f96dc 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,3 +1,3 @@ ## Thank you for contributing to the Universal Blue project! -Please [read the Contributor's Guide](https://universal-blue.org/CONTRIBUTING/) before submitting a pull request. +Please [read the Contributor's Guide](https://universal-blue.org/contributing.html) before submitting a pull request. From 1d7c941da6fd8266ea75a5ad29ca16bf766cf6be Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Mon, 15 Apr 2024 11:51:06 -0400 Subject: [PATCH 05/25] chore: remove explicit facetimehd-firmware include --- build-kmod-facetimehd.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build-kmod-facetimehd.sh b/build-kmod-facetimehd.sh index 54d0c790..852c2bc8 100755 --- a/build-kmod-facetimehd.sh +++ b/build-kmod-facetimehd.sh @@ -16,8 +16,7 @@ wget "https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/repo/fedo ### BUILD facetimehd (succeed or fail-fast with debug output) rpm-ostree install \ - "akmod-facetimehd-*.fc${RELEASE}.${ARCH}" \ - facetimehd-firmware + akmod-facetimehd-*.fc${RELEASE}.${ARCH} akmods --force --kernels "${KERNEL}" --kmod facetimehd modinfo "/usr/lib/modules/${KERNEL}/extra/facetimehd/facetimehd.ko.xz" > /dev/null \ || (find /var/cache/akmods/facetimehd/ -name \*.log -print -exec cat {} \; && exit 1) From 8bf32c2536896df0cdafdff5269c973883455a1d Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 16 Apr 2024 14:35:07 -0400 Subject: [PATCH 06/25] chore: switch to curl to align with broader direction --- build-kmod-facetimehd.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build-kmod-facetimehd.sh b/build-kmod-facetimehd.sh index 852c2bc8..b9162cf3 100755 --- a/build-kmod-facetimehd.sh +++ b/build-kmod-facetimehd.sh @@ -12,7 +12,8 @@ else COPR_RELEASE="${RELEASE}" fi -wget "https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/repo/fedora-${COPR_RELEASE}/mulderje-facetimehd-kmod-fedora-${COPR_RELEASE}.repo" -O /etc/yum.repos.d/_copr_mulderje-facetimehd-kmod.repo +curl -L "https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/repo/fedora-${COPR_RELEASE}/mulderje-facetimehd-kmod-fedora-${COPR_RELEASE}.repo" \ + -o /etc/yum.repos.d/_copr_mulderje-facetimehd-kmod.repo ### BUILD facetimehd (succeed or fail-fast with debug output) rpm-ostree install \ From 1142cd0d22cb82fe41baf986135daf100d5fd66e Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 16 Apr 2024 21:56:54 -0400 Subject: [PATCH 07/25] merge in the a handful of the reusable-build.yml from upstream/nega-nv --- .github/workflows/reusable-build.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index 57047d10..bd821d55 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -7,7 +7,7 @@ on: required: true type: string env: - IMAGE_NAME: akmods + IMAGE_BASE_NAME: akmods IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} concurrency: @@ -73,6 +73,11 @@ jobs: echo "SOURCE_IMAGE=base" >> $GITHUB_ENV echo "SOURCE_ORG=fedora-ostree-desktops" >> $GITHUB_ENV fi + if [ "common" == "${{ matrix.cfile_suffix }}" ]; then + echo "IMAGE_NAME=${{ env.IMAGE_BASE_NAME }}" >> $GITHUB_ENV + else + echo "IMAGE_NAME=${{ env.IMAGE_BASE_NAME }}-${{ matrix.cfile_suffix }}" >> $GITHUB_ENV + fi - name: Generate tags id: generate-tags @@ -80,11 +85,7 @@ jobs: run: | # Generate a timestamp for creating an image version history TIMESTAMP="$(date +%Y%m%d)" - if [[ "${{ matrix.cfile_suffix }}" == "nvidia" ]]; then - VARIANT="${{ matrix.kernel_flavor }}-${{ matrix.fedora_version }}-${{ matrix.nvidia_version }}" - else - VARIANT="${{ matrix.kernel_flavor }}-${{ matrix.fedora_version }}" - fi + VARIANT="${{ matrix.kernel_flavor }}-${{ matrix.fedora_version }}" COMMIT_TAGS=() BUILD_TAGS=() @@ -153,9 +154,9 @@ jobs: id: meta with: images: | - ${{ 'nvidia' == matrix.cfile_suffix && format('{0}-nvidia', env.IMAGE_NAME) || format('{0}', env.IMAGE_NAME) }} + ${{ env.IMAGE_NAME }} labels: | - org.opencontainers.image.title=${{ env.IMAGE_NAME }} + org.opencontainers.image.title=${{ env.IMAGE_BASE_NAME }} org.opencontainers.image.description=A caching layer for pre-built akmod RPMs org.opencontainers.image.version=${{ env.SOURCE_IMAGE_VERSION }} ostree.linux=${{ env.SOURCE_IMAGE_LINUX }} @@ -179,7 +180,7 @@ jobs: with: containerfiles: | ./Containerfile.${{ matrix.cfile_suffix }} - image: ${{ 'nvidia' == matrix.cfile_suffix && format('{0}-nvidia', env.IMAGE_NAME) || format('{0}', env.IMAGE_NAME) }} + image: ${{ env.IMAGE_NAME }} tags: | ${{ steps.generate-tags.outputs.alias_tags }} build-args: | From cfb8bb906050e1d12909ead84f28f4373e21c9a8 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 16 Apr 2024 22:17:50 -0400 Subject: [PATCH 08/25] feat: add 'extra' akmod stream build --- .github/workflows/reusable-build.yml | 1 + Containerfile.common | 1 - Containerfile.extra | 49 ++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 Containerfile.extra diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index bd821d55..f8437ff3 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -35,6 +35,7 @@ jobs: - surface cfile_suffix: - common + - extra - nvidia nvidia_version: - 0 diff --git a/Containerfile.common b/Containerfile.common index 079e6545..755faee3 100644 --- a/Containerfile.common +++ b/Containerfile.common @@ -46,7 +46,6 @@ RUN if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ /tmp/build-kmod-bmi160.sh && \ /tmp/build-kmod-bmi260.sh && \ /tmp/build-kmod-bmi323.sh && \ - /tmp/build-kmod-facetimehd.sh && \ /tmp/build-kmod-gcadapter_oc.sh && \ /tmp/build-kmod-nct6687d.sh && \ /tmp/build-kmod-openrazer.sh && \ diff --git a/Containerfile.extra b/Containerfile.extra new file mode 100644 index 00000000..a48168c2 --- /dev/null +++ b/Containerfile.extra @@ -0,0 +1,49 @@ +### +### Containerfile.extra - used to build extra kmods +### + +#Build from base, simpley because it's the smallest image +ARG SOURCE_IMAGE="${SOURCE_IMAGE:-base}" +ARG SOURCE_ORG="${SOURCE_ORG:-fedora-ostree-desktops}" +ARG BASE_IMAGE="quay.io/${SOURCE_ORG}/${SOURCE_IMAGE}" +ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}" + +FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS builder +ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}" +ARG KERNEL_FLAVOR="{KERNEL_FLAVOR:-main}" +ARG RPMFUSION_MIRROR="" + +COPY build*.sh /tmp +COPY certs /tmp/certs + +# files for akmods +COPY ublue-os-akmods-addons.spec /tmp/ublue-os-akmods-addons/ublue-os-akmods-addons.spec +ADD https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/repo/fedora-${FEDORA_MAJOR_VERSION}/ublue-os-akmods-fedora-${FEDORA_MAJOR_VERSION}.repo \ + /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/_copr_ublue-os-akmods.repo +ADD https://negativo17.org/repos/fedora-multimedia.repo \ + /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo + +RUN /tmp/build-prep.sh + +RUN /tmp/build-ublue-os-akmods-addons.sh + +# Set kernel name +RUN if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ + export KERNEL_NAME="kernel" \ + ; else \ + export KERNEL_NAME="kernel-surface" \ + ; fi && \ + /tmp/build-kmod-facetimehd.sh + +RUN cp /tmp/ublue-os-akmods-addons/rpmbuild/RPMS/noarch/ublue-os-akmods-addons*.rpm \ + /var/cache/rpms/ublue-os/ +RUN for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do \ + cp "${RPM}" /var/cache/rpms/kmods/; \ + done + +RUN find /var/cache/rpms + +FROM scratch + +COPY --from=builder /var/cache/rpms /rpms + From 064ee018bf1f8a6e9175dbb65ad0772011c5bb6b Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 16 Apr 2024 22:24:07 -0400 Subject: [PATCH 09/25] chore: add .gitattributes files for Containerfile syntax highlighting --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..c233cb6d --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +Containerfile* linguist-language=Containerfile From 79a47ba86f7573e2e00d9d8b895fc7c78598c517 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 16 Apr 2024 22:26:53 -0400 Subject: [PATCH 10/25] fix: add exclude for extra/550 in build --- .github/workflows/reusable-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index f8437ff3..22da031e 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -43,6 +43,8 @@ jobs: exclude: - cfile_suffix: common nvidia_version: 550 + - cfile_suffix: extra + nvidia_version: 550 - cfile_suffix: nvidia nvidia_version: 0 - kernel_flavor: asus From 9c9be8b2415001a53dfbbb358a08cfe721a87092 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Wed, 17 Apr 2024 19:21:33 -0400 Subject: [PATCH 11/25] chore: break daily cron schedule into their own file --- .github/workflows/build-38.yml | 2 -- .github/workflows/build-39.yml | 2 -- .github/workflows/build-40.yml | 2 -- .github/workflows/build-daily.yml | 17 +++++++++++++++++ 4 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/build-daily.yml diff --git a/.github/workflows/build-38.yml b/.github/workflows/build-38.yml index 0496f426..50f29481 100644 --- a/.github/workflows/build-38.yml +++ b/.github/workflows/build-38.yml @@ -2,8 +2,6 @@ name: ublue akmods 38 on: pull_request: merge_group: - schedule: - - cron: '10 14 * * *' # 2pm-ish UTC everyday (timed against official fedora container pushes, and after 'config') workflow_dispatch: jobs: diff --git a/.github/workflows/build-39.yml b/.github/workflows/build-39.yml index 11ad11f8..3e362002 100644 --- a/.github/workflows/build-39.yml +++ b/.github/workflows/build-39.yml @@ -2,8 +2,6 @@ name: ublue akmods 39 on: pull_request: merge_group: - schedule: - - cron: '0 14 * * *' # 2pm-ish UTC everyday (timed against official fedora container pushes, and after 'config') workflow_dispatch: jobs: diff --git a/.github/workflows/build-40.yml b/.github/workflows/build-40.yml index ba7ae77b..088e97b5 100644 --- a/.github/workflows/build-40.yml +++ b/.github/workflows/build-40.yml @@ -2,8 +2,6 @@ name: ublue akmods 40 on: pull_request: merge_group: - schedule: - - cron: '5 14 * * *' # 2pm-ish UTC everyday (timed against official fedora container pushes, and after 'config') workflow_dispatch: jobs: diff --git a/.github/workflows/build-daily.yml b/.github/workflows/build-daily.yml new file mode 100644 index 00000000..d1b155d7 --- /dev/null +++ b/.github/workflows/build-daily.yml @@ -0,0 +1,17 @@ +name: ublue akmods daily cron +on: + schedule: + - cron: '0 14 * * *' # 2pm-ish UTC everyday (timed against official fedora container pushes, and after 'config') + workflow_dispatch: + +jobs: + akmods_daily_cron: + strategy: + matrix: + fedora_version: [38, 39, 40] + runs-on: ubuntu-22.04 + steps: + - name: build + uses: ./.github/workflows/reusable-build.yml + with: + fedora_version: ${{ matrix.fedora_version }} From f6b2203714d0838d6065b27078b90c91f01cc13e Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Wed, 17 Apr 2024 19:29:40 -0400 Subject: [PATCH 12/25] Revert "chore: break daily cron schedule into their own file" --- .github/workflows/build-38.yml | 2 ++ .github/workflows/build-39.yml | 2 ++ .github/workflows/build-40.yml | 2 ++ .github/workflows/build-daily.yml | 17 ----------------- 4 files changed, 6 insertions(+), 17 deletions(-) delete mode 100644 .github/workflows/build-daily.yml diff --git a/.github/workflows/build-38.yml b/.github/workflows/build-38.yml index 50f29481..0496f426 100644 --- a/.github/workflows/build-38.yml +++ b/.github/workflows/build-38.yml @@ -2,6 +2,8 @@ name: ublue akmods 38 on: pull_request: merge_group: + schedule: + - cron: '10 14 * * *' # 2pm-ish UTC everyday (timed against official fedora container pushes, and after 'config') workflow_dispatch: jobs: diff --git a/.github/workflows/build-39.yml b/.github/workflows/build-39.yml index 3e362002..11ad11f8 100644 --- a/.github/workflows/build-39.yml +++ b/.github/workflows/build-39.yml @@ -2,6 +2,8 @@ name: ublue akmods 39 on: pull_request: merge_group: + schedule: + - cron: '0 14 * * *' # 2pm-ish UTC everyday (timed against official fedora container pushes, and after 'config') workflow_dispatch: jobs: diff --git a/.github/workflows/build-40.yml b/.github/workflows/build-40.yml index 088e97b5..ba7ae77b 100644 --- a/.github/workflows/build-40.yml +++ b/.github/workflows/build-40.yml @@ -2,6 +2,8 @@ name: ublue akmods 40 on: pull_request: merge_group: + schedule: + - cron: '5 14 * * *' # 2pm-ish UTC everyday (timed against official fedora container pushes, and after 'config') workflow_dispatch: jobs: diff --git a/.github/workflows/build-daily.yml b/.github/workflows/build-daily.yml deleted file mode 100644 index d1b155d7..00000000 --- a/.github/workflows/build-daily.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: ublue akmods daily cron -on: - schedule: - - cron: '0 14 * * *' # 2pm-ish UTC everyday (timed against official fedora container pushes, and after 'config') - workflow_dispatch: - -jobs: - akmods_daily_cron: - strategy: - matrix: - fedora_version: [38, 39, 40] - runs-on: ubuntu-22.04 - steps: - - name: build - uses: ./.github/workflows/reusable-build.yml - with: - fedora_version: ${{ matrix.fedora_version }} From 14f75c3bf4f64d216c80ab336ec4e011b0af0cbe Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Fri, 19 Apr 2024 12:04:30 -0400 Subject: [PATCH 13/25] fix: add KERNEL_VERSION arg to Containerfile.extra --- Containerfile.extra | 1 + 1 file changed, 1 insertion(+) diff --git a/Containerfile.extra b/Containerfile.extra index a48168c2..82a60794 100644 --- a/Containerfile.extra +++ b/Containerfile.extra @@ -11,6 +11,7 @@ ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}" FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS builder ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}" ARG KERNEL_FLAVOR="{KERNEL_FLAVOR:-main}" +ARG KERNEL_VERSION="" ARG RPMFUSION_MIRROR="" COPY build*.sh /tmp From 71253aab5dca80dc271984cbb2c903d8b48b667b Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Fri, 19 Apr 2024 12:14:13 -0400 Subject: [PATCH 14/25] chore(facetimehd): quiet curl output --- build-kmod-facetimehd.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-kmod-facetimehd.sh b/build-kmod-facetimehd.sh index b9162cf3..e53ffe53 100755 --- a/build-kmod-facetimehd.sh +++ b/build-kmod-facetimehd.sh @@ -12,7 +12,7 @@ else COPR_RELEASE="${RELEASE}" fi -curl -L "https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/repo/fedora-${COPR_RELEASE}/mulderje-facetimehd-kmod-fedora-${COPR_RELEASE}.repo" \ +curl -LsSf "https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/repo/fedora-${COPR_RELEASE}/mulderje-facetimehd-kmod-fedora-${COPR_RELEASE}.repo" \ -o /etc/yum.repos.d/_copr_mulderje-facetimehd-kmod.repo ### BUILD facetimehd (succeed or fail-fast with debug output) From 00c2def6cb8a54ab473d1722325ca5db3505fe30 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Mon, 22 Apr 2024 22:41:13 -0400 Subject: [PATCH 15/25] chore: merge in upstream/main --- .github/workflows/reusable-build.yml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index 674df359..f6ef6a1f 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -63,17 +63,11 @@ jobs: else echo "IMAGE_NAME=${{ env.IMAGE_BASE_NAME }}-${{ matrix.cfile_suffix }}" >> $GITHUB_ENV fi - if [[ "${{ matrix.fedora_version }}" -ge "41" ]]; then - # when we are confident of official fedora images we can switch to them - export SOURCE_IMAGE=fedora-silverblue - export SOURCE_ORG=fedora - else - export SOURCE_IMAGE=base - export SOURCE_ORG=fedora-ostree-desktops - fi - echo "FQ_SOURCE_IMAGE=quay.io/${SOURCE_ORG}/${SOURCE_IMAGE}:${{ matrix.fedora_version }}" >> $GITHUB_ENV + export SOURCE_IMAGE=base + export SOURCE_ORG=fedora-ostree-desktops echo "SOURCE_IMAGE=${SOURCE_IMAGE}" >> $GITHUB_ENV echo "SOURCE_ORG=${SOURCE_ORG}" >> $GITHUB_ENV + echo "FQ_SOURCE_IMAGE=quay.io/${SOURCE_ORG}/${SOURCE_IMAGE}:${{ matrix.fedora_version }}" >> $GITHUB_ENV - name: Generate tags @@ -124,7 +118,7 @@ jobs: wc -c certs/private_key.priv - name: Pull build image - uses: Wandalen/wretry.action@v2.1.0 + uses: Wandalen/wretry.action@v3.4.0 with: attempt_limit: 3 attempt_delay: 15000 @@ -234,7 +228,7 @@ jobs: - name: Push To GHCR - uses: Wandalen/wretry.action@v2.1.0 + uses: Wandalen/wretry.action@v3.4.0 id: push if: github.event_name != 'pull_request' env: From a996953aa872510146e4ca6b6328bc334c00bda9 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 23 Apr 2024 11:59:21 -0400 Subject: [PATCH 16/25] chore(extra): bump fedora major version to 40 --- Containerfile.extra | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Containerfile.extra b/Containerfile.extra index 82a60794..13f8accd 100644 --- a/Containerfile.extra +++ b/Containerfile.extra @@ -6,10 +6,10 @@ ARG SOURCE_IMAGE="${SOURCE_IMAGE:-base}" ARG SOURCE_ORG="${SOURCE_ORG:-fedora-ostree-desktops}" ARG BASE_IMAGE="quay.io/${SOURCE_ORG}/${SOURCE_IMAGE}" -ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}" +ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-40}" FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS builder -ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}" +ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-40}" ARG KERNEL_FLAVOR="{KERNEL_FLAVOR:-main}" ARG KERNEL_VERSION="" ARG RPMFUSION_MIRROR="" From c168dc0679a5c4a468d54038cbc09c7f898df1ce Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 23 Apr 2024 12:00:10 -0400 Subject: [PATCH 17/25] fix(extra): remove /tmp/build-ublue-os-akmods-addons.sh run line --- Containerfile.extra | 2 -- 1 file changed, 2 deletions(-) diff --git a/Containerfile.extra b/Containerfile.extra index 13f8accd..fab8f69e 100644 --- a/Containerfile.extra +++ b/Containerfile.extra @@ -26,8 +26,6 @@ ADD https://negativo17.org/repos/fedora-multimedia.repo \ RUN /tmp/build-prep.sh -RUN /tmp/build-ublue-os-akmods-addons.sh - # Set kernel name RUN if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ export KERNEL_NAME="kernel" \ From 02d9ed73953419c2153d4b85e9f192245865e953 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 23 Apr 2024 12:07:48 -0400 Subject: [PATCH 18/25] fix(extra): remove more build-ublue-os-akmods-addons --- Containerfile.extra | 2 -- 1 file changed, 2 deletions(-) diff --git a/Containerfile.extra b/Containerfile.extra index fab8f69e..052f95d9 100644 --- a/Containerfile.extra +++ b/Containerfile.extra @@ -34,8 +34,6 @@ RUN if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ ; fi && \ /tmp/build-kmod-facetimehd.sh -RUN cp /tmp/ublue-os-akmods-addons/rpmbuild/RPMS/noarch/ublue-os-akmods-addons*.rpm \ - /var/cache/rpms/ublue-os/ RUN for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do \ cp "${RPM}" /var/cache/rpms/kmods/; \ done From e6f3f22ec60e9438897f6c3383d65cb91f29ff79 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 23 Apr 2024 22:46:54 -0400 Subject: [PATCH 19/25] feat(extra): move initial list of kmods from common to extra #176 --- Containerfile.common | 15 +-------------- Containerfile.extra | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Containerfile.common b/Containerfile.common index ad219410..d596cc39 100644 --- a/Containerfile.common +++ b/Containerfile.common @@ -37,25 +37,12 @@ RUN if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ if grep -qv "asus" <<< "${KERNEL_FLAVOR}"; then \ /tmp/build-kmod-evdi.sh \ ; fi && \ - if grep -qv "fsync" <<< "${KERNEL_FLAVOR}"; then \ - /tmp/build-kmod-openrgb.sh \ - ; fi && \ - /tmp/build-kmod-ayaneo-platform.sh && \ - /tmp/build-kmod-ayn-platform.sh && \ - /tmp/build-kmod-kvmfr.sh && \ - /tmp/build-kmod-nct6687d.sh && \ /tmp/build-kmod-openrazer.sh && \ - /tmp/build-kmod-ryzen-smu.sh && \ - /tmp/build-kmod-rtl8814au.sh && \ - /tmp/build-kmod-rtl88xxau.sh && \ /tmp/build-kmod-v4l2loopback.sh && \ /tmp/build-kmod-framework-laptop.sh && \ - /tmp/build-kmod-vhba.sh && \ - /tmp/build-kmod-VirtualBox.sh && \ /tmp/build-kmod-wl.sh && \ /tmp/build-kmod-xpadneo.sh && \ - /tmp/build-kmod-xone.sh && \ - /tmp/build-kmod-zenergy.sh + /tmp/build-kmod-xone.sh RUN cp /tmp/ublue-os-akmods-addons/rpmbuild/RPMS/noarch/ublue-os-akmods-addons*.rpm \ /var/cache/rpms/ublue-os/ diff --git a/Containerfile.extra b/Containerfile.extra index 052f95d9..1da77647 100644 --- a/Containerfile.extra +++ b/Containerfile.extra @@ -32,7 +32,21 @@ RUN if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ ; else \ export KERNEL_NAME="kernel-surface" \ ; fi && \ - /tmp/build-kmod-facetimehd.sh + if grep -qv "fsync" <<< "${KERNEL_FLAVOR}"; then \ + /tmp/build-kmod-openrgb.sh \ + ; fi && \ + /tmp/build-kmod-ayaneo-platform.sh && \ + /tmp/build-kmod-ayn-platform.sh && \ + /tmp/build-kmod-facetimehd.sh \ + /tmp/build-kmod-framework-laptop.sh && \ + /tmp/build-kmod-kvmfr.sh && \ + /tmp/build-kmod-nct6687d.sh && \ + /tmp/build-kmod-rtl8814au.sh && \ + /tmp/build-kmod-rtl88xxau.sh && \ + /tmp/build-kmod-ryzen-smu.sh && \ + /tmp/build-kmod-vhba.sh && \ + /tmp/build-kmod-VirtualBox.sh && \ + /tmp/build-kmod-zenergy.sh RUN for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do \ cp "${RPM}" /var/cache/rpms/kmods/; \ From e7e0ecab2681688254eb167c63223fa6d7ceb343 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 23 Apr 2024 23:00:28 -0400 Subject: [PATCH 20/25] docs(extra): add basic package layout for common/extra/nvidia breakout --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ffac1593..11ba7e16 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,11 @@ Feel free to PR more kmod build scripts into this repo! The [`akmods` image](https://github.com/orgs/ublue-os/packages/container/package/akmods) is built and published daily. However, there's not a single image but several, given various kernel support we now provide. -Here's a rundown on how it's organized. +The akmods package is broken out into three akmod "streams": + +- `common` - any kmod installed by default in Bluefin or which was originally in main pre-39 +- `extra` - primarily for kmods used in Bazzite or any others we need, but don't fit in `common` +- `nvidia` - only for the nvidia kmod We do our best to support all current builds of Fedora, current versions of the kernel modules listed, and the latest NVIDIA driver. **Note: NVIDIA legacy driver version 470 is no longer provided as RPMfusion has ceased updates to the package and it no longer builds with kernel 6.8 which has now released for Fedora 38 and 39. Also the `-550` extra driver version tag has been removed as the latest driver will always be included.** From 854e00e297ab74964a423e4ebbe9821959c5351a Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Tue, 23 Apr 2024 23:04:25 -0400 Subject: [PATCH 21/25] chore(facetimehd): reorder curl command --- build-kmod-facetimehd.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-kmod-facetimehd.sh b/build-kmod-facetimehd.sh index e53ffe53..32c55863 100755 --- a/build-kmod-facetimehd.sh +++ b/build-kmod-facetimehd.sh @@ -12,8 +12,8 @@ else COPR_RELEASE="${RELEASE}" fi -curl -LsSf "https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/repo/fedora-${COPR_RELEASE}/mulderje-facetimehd-kmod-fedora-${COPR_RELEASE}.repo" \ - -o /etc/yum.repos.d/_copr_mulderje-facetimehd-kmod.repo +curl -LsSf -o /etc/yum.repos.d/_copr_mulderje-facetimehd-kmod.repo \ + "https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/repo/fedora-${COPR_RELEASE}/mulderje-facetimehd-kmod-fedora-${COPR_RELEASE}.repo" ### BUILD facetimehd (succeed or fail-fast with debug output) rpm-ostree install \ From 8e97c0ea4a3728bc060e86e4705d302bee2bd559 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Wed, 24 Apr 2024 17:13:13 -0400 Subject: [PATCH 22/25] docs(extra): convert kmod list to a table, and add in additional meta data --- README.md | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index a4624f56..cd63534e 100644 --- a/README.md +++ b/README.md @@ -12,25 +12,29 @@ Feel free to PR more kmod build scripts into this repo! - ublue-os-nvidia-addons - installs extra repos enabling our nvidia support - [nvidia container selinux policy](https://github.com/NVIDIA/dgx-selinux/tree/master/src/nvidia-container-selinux) - uses RHEL9 policy as the closest match - [nvidia-container-tookkit repo](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-yum-or-dnf) - version 1.14 (and newer) provide CDI for podman use of nvidia gpus -- [ayaneo-platform](https://github.com/ShadowBlip/ayaneo-platform) - Linux drivers for AYANEO x86 handhelds (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [ayn-platform](https://github.com/ShadowBlip/ayn-platform) - Linux drivers for AYN x86 handhelds (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [evdi](www.displaylink.com) - kernel module required for use of displaylink (akmod from [negativo17 multimedia repo](https://negativo17.org/multimedia/)) -- [facetimehd](https://github.com/patjak/facetimehd/) - kernel module Linux driver for the FacetimeHD (Broadcom 1570) PCIe webcam (akmod from [mulderje/facetimehd-kmod copr](https://copr.fedorainfracloud.org/coprs/mulderje/facetimehd-kmod/)) -- [framework-laptop](https://github.com/DHowett/framework-laptop-kmod) - A kernel module that exposes the Framework Laptop (13, 16)'s battery charge limit and LEDs to userspace (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [gcadapter_oc](https://github.com/hannesmann/gcadapter-oc-kmod) - kernel module for overclocking the Nintendo Wii U/Mayflash GameCube adapter (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [kvmfr](https://github.com/gnif/looking-glass) - KVM framebuffer relay kernel module for use with Looking Glass (akmod from [hikariknight/looking-glass-kvmfr-akmod copr](https://copr.fedorainfracloud.org/coprs/hikariknight/looking-glass-kvmfr/)) -- [nct6687d](https://github.com/Fred78290/nct6687d) - Linux kernel module for Nuvoton NCT6687-R found on AMD B550 chipset motherboards (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [nvidia](https://rpmfusion.org/Howto/NVIDIA) - nvidia GPU drivers built from rpmfusion -- [openrazer](https://openrazer.github.io/) - kernel module adding additional features to Razer hardware (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [openrgb](https://gitlab.com/CalcProgrammer1/OpenRGB/-/raw/master/OpenRGB.patch) - kernel module with i2c-nct6775 and patched i2c-piix4 for use with OpenRGB (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- rtl8814au - Realtek RTL8814AU Driver (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- rtl88xxau - Realtek RTL8812AU/21AU and RTL8814AU driver (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [ryzen_smu](https://gitlab.com/leogx9r/ryzen_smu) - A Linux kernel driver that exposes access to the SMU (System Management Unit) for certain AMD Ryzen Processors (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [v4l2loopback](https://github.com/umlaeute/v4l2loopback) - allows creating "virtual video devices" -- [wl (broadcom)](https://github.com/rpmfusion/broadcom-wl/) - support for some legacy broadcom wifi devices -- [xpadneo](https://github.com/atar-axis/xpadneo) - xbox one controller bluetooth driver (akmod from [negativo17 steam repo](https://negativo17.org/steam/) -- [xonedo](https://github.com/BoukeHaarsma23/xonedo/) - xbox one controller USB wired/RF driver modified to work along-side xpad (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) -- [zenergy](https://github.com/BoukeHaarsma23/zenergy) - Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely. (akmod from [ublue-os/akmods copr](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)) + +| Package | Stream | Description | Source | +|---------|--------|-------------|--------| +| [ayaneo-platform](https://github.com/ShadowBlip/ayaneo-platform) | extra | Linux drivers for AYANEO x86 handhelds | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/ayaneo-platform-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/ayaneo-platform-kmod) | +| [ayn-platform](https://github.com/ShadowBlip/ayn-platform) | extra | Linux drivers for AYN x86 handhelds | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/ayn-platform-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/ayn-platform-kmod) | +| [evdi](www.displaylink.com) | common | 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) | extra | 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) | +| [kvmfr](https://github.com/gnif/looking-glass) | extra | 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) | +| [nct6687d](https://github.com/Fred78290/nct6687d) | extra | Linux kernel module for Nuvoton NCT6687-R found on AMD B550 chipset motherboards | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/nct6687d-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/nct6687d-kmod) | +| [nvidia](https://rpmfusion.org/Howto/NVIDIA) | nvidia | nvidia GPU drivers built from rpmfusion | [RPMFusion - nonfree](https://rpmfusion.org/) | +| [openrazer](https://openrazer.github.io/) | common | kernel module adding additional features to Razer hardware | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/openrazer-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/openrazer-kmod) | +| [openrgb](https://gitlab.com/CalcProgrammer1/OpenRGB/-/raw/master/OpenRGB.patch) | extra | kernel module with i2c-nct6775 and patched i2c-piix4 for use with OpenRGB | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/openrgb-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/openrgb-kmod) | +| [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) | +| [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/) | +| [xone](https://github.com/BoukeHaarsma23/xonedo/) | common | xbox one controller USB wired/RF driver modified to work along-side xpad (akmod from | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/xone-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/xone-kmod) | +| [zenergy](https://github.com/BoukeHaarsma23/zenergy) | extra | Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/zenergy-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/zenergy-kmod) | + # How it's organized From 95cbb7fcb57d5c1575545bf988e6dfc414babf4c Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Wed, 24 Apr 2024 17:17:12 -0400 Subject: [PATCH 23/25] docs(extra): fix markdown lint issues and move 'how it works' section up --- README.md | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index cd63534e..a2d75d4e 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,31 @@ -[![build-38](https://github.com/ublue-os/akmods/actions/workflows/build-38.yml/badge.svg)](https://github.com/ublue-os/akmods/actions/workflows/build-38.yml) [![build-39](https://github.com/ublue-os/akmods/actions/workflows/build-39.yml/badge.svg)](https://github.com/ublue-os/akmods/actions/workflows/build-39.yml) [![build-40](https://github.com/ublue-os/akmods/actions/workflows/build-40.yml/badge.svg)](https://github.com/ublue-os/akmods/actions/workflows/build-40.yml) - # ublue-os akmods +[![build-38](https://github.com/ublue-os/akmods/actions/workflows/build-38.yml/badge.svg)](https://github.com/ublue-os/akmods/actions/workflows/build-38.yml) [![build-39](https://github.com/ublue-os/akmods/actions/workflows/build-39.yml/badge.svg)](https://github.com/ublue-os/akmods/actions/workflows/build-39.yml) [![build-40](https://github.com/ublue-os/akmods/actions/workflows/build-40.yml/badge.svg)](https://github.com/ublue-os/akmods/actions/workflows/build-40.yml) + A layer for adding extra kernel modules to your image. Use for better hardware support and a few other features! -# Features +## How it's organized + +The [`akmods` image](https://github.com/orgs/ublue-os/packages/container/package/akmods) is built and published daily. However, there's not a single image but several, given various kernel support we now provide. + +The akmods package is broken out into three akmod "streams": + +- `common` - any kmod installed by default in Bluefin or which was originally in main pre-39 +- `extra` - primarily for kmods used in Bazzite or any others we need, but don't fit in `common` +- `nvidia` - only for the nvidia kmod Feel free to PR more kmod build scripts into this repo! +## Features + +### Overview + - ublue-os-akmods-addons - installs extra repos and our kmods signing key; install and import to allow SecureBoot systems to use these kmods - ublue-os-nvidia-addons - installs extra repos enabling our nvidia support - - [nvidia container selinux policy](https://github.com/NVIDIA/dgx-selinux/tree/master/src/nvidia-container-selinux) - uses RHEL9 policy as the closest match - - [nvidia-container-tookkit repo](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-yum-or-dnf) - version 1.14 (and newer) provide CDI for podman use of nvidia gpus + - [nvidia container selinux policy](https://github.com/NVIDIA/dgx-selinux/tree/master/src/nvidia-container-selinux) - uses RHEL9 policy as the closest match + - [nvidia-container-tookkit repo](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-yum-or-dnf) - version 1.14 (and newer) provide CDI for podman use of nvidia gpus + +### Kmod Packages | Package | Stream | Description | Source | |---------|--------|-------------|--------| @@ -35,16 +49,7 @@ Feel free to PR more kmod build scripts into this repo! | [xone](https://github.com/BoukeHaarsma23/xonedo/) | common | xbox one controller USB wired/RF driver modified to work along-side xpad (akmod from | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/xone-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/xone-kmod) | | [zenergy](https://github.com/BoukeHaarsma23/zenergy) | extra | Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/zenergy-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/zenergy-kmod) | - -# How it's organized - -The [`akmods` image](https://github.com/orgs/ublue-os/packages/container/package/akmods) is built and published daily. However, there's not a single image but several, given various kernel support we now provide. - -The akmods package is broken out into three akmod "streams": - -- `common` - any kmod installed by default in Bluefin or which was originally in main pre-39 -- `extra` - primarily for kmods used in Bazzite or any others we need, but don't fit in `common` -- `nvidia` - only for the nvidia kmod +## Notes We do our best to support all current builds of Fedora, current versions of the kernel modules listed, and the latest NVIDIA driver. **Note: NVIDIA legacy driver version 470 is no longer provided as RPMfusion has ceased updates to the package and it no longer builds with kernel 6.8 which has now released for Fedora 38 and 39. Also the `-550` extra driver version tag has been removed as the latest driver will always be included.** @@ -62,11 +67,9 @@ The majority of the drivers are tagged with `KERNEL_TYPE-FEDORA_RELEASE`. NVIDIA | [patched Microsoft Surface devices](https://github.com/linux-surface/linux-surface/) | 39 | `surface-39` | | | 40 | `surface-40` | +## Usage - -# Usage - -To install one of these kmods, you'll need to install any of their specific dependencies (checkout the `build-prep.sh` and the specific `build-FOO.sh` script for details. +To install one of these kmods, you'll need to install any of their specific dependencies (checkout the `build-prep.sh` and the specific `build-FOO.sh` script for details). For common images, add something like this to your Containerfile, replacing `TAG` with one of the `something-FR` tags above: @@ -83,22 +86,21 @@ For NVIDIA images, add something like this to your Containerfile, replacing `TAG RUN rpm-ostree install /tmp/rpms/kmods/kmod-nvidia.rpm These examples show: + 1. copying all the rpms from the respective akmods images 2. installing the respective ublue specific RPM 3. installing a kmods RPM. - -# Adding kmods +## Adding kmods If you have a kmod you want to contribute send a pull request by adding a script using [build-kmod-wl.sh](https://github.com/ublue-os/akmods/blob/main/build-kmod-wl.sh) as an example. -# Verification +## Verification These images are signed with sisgstore's [cosign](https://docs.sigstore.dev/cosign/overview/). You can verify the signature by downloading the `cosign.pub` key from this repo and running the following command, replacing `RELEASE` with either `38` or `39`: cosign verify --key cosign.pub ghcr.io/ublue-os/akmods:RELEASE -# Metrics +## Metrics ![Alt](https://repobeats.axiom.co/api/embed/a7ddeb1a3d2e0ce534ccf7cfa75c33b35183b106.svg "Repobeats analytics image") - From 97753959a3df7d57e9138d0904be68ce41c4b51b Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Wed, 24 Apr 2024 17:23:24 -0400 Subject: [PATCH 24/25] docs(extra): add basic instructions for installing an 'extra' akmod package --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a2d75d4e..27936517 100644 --- a/README.md +++ b/README.md @@ -78,9 +78,15 @@ For common images, add something like this to your Containerfile, replacing `TAG RUN rpm-ostree install /tmp/rpms/ublue-os/ublue-os-akmods*.rpm RUN rpm-ostree install /tmp/rpms/kmods/kmod-v4l2loopback*.rpm +For extra images, add something like this to your Containerfile, replacing `TAG` with one of the `something-FR` tags above: + + COPY --from=ghcr.io/ublue-os/akmods-extra:TAG /rpms/ /tmp/rpms + RUN find /tmp/rpms + RUN rpm-ostree install /tmp/rpms/kmods/kmod-facetimehd*.rpm + For NVIDIA images, add something like this to your Containerfile, replacing `TAG` with one of the `something-FR-NVV` tags above: - COPY --from=ghcr.io/ublue-os/akmods:TAG /rpms/ /tmp/rpms + COPY --from=ghcr.io/ublue-os/akmods-nvidia:TAG /rpms/ /tmp/rpms RUN find /tmp/rpms RUN rpm-ostree install /tmp/rpms/ublue-os/ublue-os-nvidia*.rpm RUN rpm-ostree install /tmp/rpms/kmods/kmod-nvidia.rpm From e13498495aaf45ad1325baf8f05c10db6f5e3140 Mon Sep 17 00:00:00 2001 From: Jon Mulder Date: Wed, 24 Apr 2024 18:12:06 -0400 Subject: [PATCH 25/25] fixup: remove copy/paste issue from xone details in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27936517..ae590f97 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Feel free to PR more kmod build scripts into this repo! | [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/) | -| [xone](https://github.com/BoukeHaarsma23/xonedo/) | common | xbox one controller USB wired/RF driver modified to work along-side xpad (akmod from | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/xone-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/xone-kmod) | +| [xone](https://github.com/BoukeHaarsma23/xonedo/) | common | xbox one controller USB wired/RF driver modified to work along-side xpad | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/xone-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/xone-kmod) | | [zenergy](https://github.com/BoukeHaarsma23/zenergy) | extra | Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely | [![badge](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/zenergy-kmod/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/zenergy-kmod) | ## Notes