diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 79e667b..8689e91 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-10-08T16:19:09Z by kres 34e72ac. +# Generated on 2024-05-16T14:34:47Z by kres fe9bc66. name: default concurrency: @@ -25,9 +25,7 @@ jobs: issues: read packages: write pull-requests: read - runs-on: - - self-hosted - - pkgs + runs-on: ubuntu-latest if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/')) outputs: labels: ${{ steps.retrieve-pr-labels.outputs.result }} @@ -41,53 +39,17 @@ jobs: - /var/lib/buildkit/${{ github.repository }}:/var/lib/buildkit - /usr/etc/buildkit/buildkitd.toml:/etc/buildkit/buildkitd.toml steps: - - name: gather-system-info - id: system-info - uses: kenchan0130/actions-system-info@v1.3.0 - continue-on-error: true - - name: print-system-info - run: | - MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024)) - - OUTPUTS=( - "CPU Core: ${{ steps.system-info.outputs.cpu-core }}" - "CPU Model: ${{ steps.system-info.outputs.cpu-model }}" - "Hostname: ${{ steps.system-info.outputs.hostname }}" - "NodeName: ${NODE_NAME}" - "Kernel release: ${{ steps.system-info.outputs.kernel-release }}" - "Kernel version: ${{ steps.system-info.outputs.kernel-version }}" - "Name: ${{ steps.system-info.outputs.name }}" - "Platform: ${{ steps.system-info.outputs.platform }}" - "Release: ${{ steps.system-info.outputs.release }}" - "Total memory: ${MEMORY_GB} GB" - ) - - for OUTPUT in "${OUTPUTS[@]}";do - echo "${OUTPUT}" - done - continue-on-error: true - name: checkout uses: actions/checkout@v4 - - name: Unshallow - run: | - git fetch --prune --unshallow + with: + # need history for `git describe` to work for Talos `Makefile` + fetch-depth: 0 + fetch-tags: true - name: Set up Docker Buildx - id: setup-buildx uses: docker/setup-buildx-action@v3 - with: - append: | - - endpoint: tcp://buildkit-arm64.ci.svc.cluster.local:1234 - platforms: linux/arm64 - driver: remote - endpoint: tcp://127.0.0.1:1234 - name: Build - if: github.event_name == 'pull_request' run: | make - - name: Build nonfree - if: github.event_name == 'pull_request' - run: | - make nonfree - name: Login to registry if: github.event_name != 'pull_request' uses: docker/login-action@v3 @@ -97,12 +59,11 @@ jobs: username: ${{ github.repository_owner }} - name: Push to registry if: github.event_name != 'pull_request' + env: + USERNAME: ${{ github.repository_owner }} + CI_ARGS: --provenance=true run: | - make PUSH=true - - name: Push nonfree - if: github.event_name != 'pull_request' - run: | - make nonfree PUSH=true + make PUSH=true - name: Retrieve PR labels id: retrieve-pr-labels uses: actions/github-script@v7 @@ -121,8 +82,10 @@ jobs: - name: extensions if: github.event_name != 'pull_request' env: + USERNAME: ${{ github.repository_owner }} PUSH: "true" run: | + curl -sL "https://github.com/google/go-containerregistry/releases/download/v0.19.1/go-containerregistry_Linux_x86_64.tar.gz" | tar -zxv -C /usr/local/bin/ crane make extensions - name: release-notes if: startsWith(github.ref, 'refs/tags/') @@ -134,62 +97,3 @@ jobs: with: body_path: _out/RELEASE_NOTES.md draft: "true" - reproducibility: - runs-on: - - self-hosted - - pkgs - if: contains(fromJSON(needs.default.outputs.labels), 'integration/reproducibility') - needs: - - default - services: - buildkitd: - image: moby/buildkit:v0.16.0 - options: --privileged - ports: - - 1234:1234 - volumes: - - /var/lib/buildkit/${{ github.repository }}:/var/lib/buildkit - - /usr/etc/buildkit/buildkitd.toml:/etc/buildkit/buildkitd.toml - steps: - - name: gather-system-info - id: system-info - uses: kenchan0130/actions-system-info@v1.3.0 - continue-on-error: true - - name: print-system-info - run: | - MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024)) - - OUTPUTS=( - "CPU Core: ${{ steps.system-info.outputs.cpu-core }}" - "CPU Model: ${{ steps.system-info.outputs.cpu-model }}" - "Hostname: ${{ steps.system-info.outputs.hostname }}" - "NodeName: ${NODE_NAME}" - "Kernel release: ${{ steps.system-info.outputs.kernel-release }}" - "Kernel version: ${{ steps.system-info.outputs.kernel-version }}" - "Name: ${{ steps.system-info.outputs.name }}" - "Platform: ${{ steps.system-info.outputs.platform }}" - "Release: ${{ steps.system-info.outputs.release }}" - "Total memory: ${MEMORY_GB} GB" - ) - - for OUTPUT in "${OUTPUTS[@]}";do - echo "${OUTPUT}" - done - continue-on-error: true - - name: checkout - uses: actions/checkout@v4 - - name: Unshallow - run: | - git fetch --prune --unshallow - - name: Set up Docker Buildx - id: setup-buildx - uses: docker/setup-buildx-action@v3 - with: - append: | - - endpoint: tcp://buildkit-arm64.ci.svc.cluster.local:1234 - platforms: linux/arm64 - driver: remote - endpoint: tcp://127.0.0.1:1234 - - name: reproducibility-test - run: | - make reproducibility-test diff --git a/.github/workflows/slack-notify.yaml b/.github/workflows/slack-notify.yaml deleted file mode 100644 index 6d589d5..0000000 --- a/.github/workflows/slack-notify.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. -# -# Generated on 2023-11-13T17:09:48Z by kres latest. - -name: slack-notify -"on": - workflow_run: - workflows: - - default - - weekly - types: - - completed -jobs: - slack-notify: - runs-on: - - self-hosted - - generic - if: github.event.workflow_run.conclusion != 'skipped' - steps: - - name: Get PR number - id: get-pr-number - if: github.event.workflow_run.event == 'pull_request' - env: - GH_TOKEN: ${{ github.token }} - run: | - echo pull_request_number=$(gh pr view -R ${{ github.repository }} ${{ github.event.workflow_run.head_repository.owner.login }}:${{ github.event.workflow_run.head_branch }} --json number --jq .number) >> $GITHUB_OUTPUT - - name: Slack Notify - uses: slackapi/slack-github-action@v1 - with: - channel-id: proj-talos-maintainers - payload: | - { - "attachments": [ - { - "color": "${{ github.event.workflow_run.conclusion == 'success' && '#2EB886' || github.event.workflow_run.conclusion == 'failure' && '#A30002' || '#FFCC00' }}", - "fallback": "test", - "blocks": [ - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "${{ github.event.workflow_run.event == 'pull_request' && format('*Pull Request:* {0} (`{1}`)\n<{2}/pull/{3}|{4}>', github.repository, github.ref_name, github.event.repository.html_url, steps.get-pr-number.outputs.pull_request_number, github.event.workflow_run.display_title) || format('*Build:* {0} (`{1}`)\n<{2}/commit/{3}|{4}>', github.repository, github.ref_name, github.event.repository.html_url, github.sha, github.event.workflow_run.display_title) }}" - }, - { - "type": "mrkdwn", - "text": "*Status:*\n`${{ github.event.workflow_run.conclusion }}`" - } - ] - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Author:*\n`${{ github.actor }}`" - }, - { - "type": "mrkdwn", - "text": "*Event:*\n`${{ github.event.workflow_run.event }}`" - } - ] - }, - { - "type": "divider" - }, - { - "type": "actions", - "elements": [ - { - "type": "button", - "text": { - "type": "plain_text", - "text": "Logs" - }, - "url": "${{ github.event.workflow_run.html_url }}" - }, - { - "type": "button", - "text": { - "type": "plain_text", - "text": "Commit" - }, - "url": "${{ github.event.repository.html_url }}/commit/${{ github.sha }}" - } - ] - } - ] - } - ] - } - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} diff --git a/.github/workflows/weekly.yaml b/.github/workflows/weekly.yaml deleted file mode 100644 index 6e988ac..0000000 --- a/.github/workflows/weekly.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. -# -# Generated on 2024-10-08T16:19:09Z by kres 34e72ac. - -name: weekly -concurrency: - group: ${{ github.head_ref || github.run_id }} - cancel-in-progress: true -"on": - schedule: - - cron: 30 1 * * 1 -jobs: - reproducibility: - runs-on: - - self-hosted - - pkgs - services: - buildkitd: - image: moby/buildkit:v0.16.0 - options: --privileged - ports: - - 1234:1234 - volumes: - - /var/lib/buildkit/${{ github.repository }}:/var/lib/buildkit - - /usr/etc/buildkit/buildkitd.toml:/etc/buildkit/buildkitd.toml - steps: - - name: gather-system-info - id: system-info - uses: kenchan0130/actions-system-info@v1.3.0 - continue-on-error: true - - name: print-system-info - run: | - MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024)) - - OUTPUTS=( - "CPU Core: ${{ steps.system-info.outputs.cpu-core }}" - "CPU Model: ${{ steps.system-info.outputs.cpu-model }}" - "Hostname: ${{ steps.system-info.outputs.hostname }}" - "NodeName: ${NODE_NAME}" - "Kernel release: ${{ steps.system-info.outputs.kernel-release }}" - "Kernel version: ${{ steps.system-info.outputs.kernel-version }}" - "Name: ${{ steps.system-info.outputs.name }}" - "Platform: ${{ steps.system-info.outputs.platform }}" - "Release: ${{ steps.system-info.outputs.release }}" - "Total memory: ${MEMORY_GB} GB" - ) - - for OUTPUT in "${OUTPUTS[@]}";do - echo "${OUTPUT}" - done - continue-on-error: true - - name: checkout - uses: actions/checkout@v4 - - name: Unshallow - run: | - git fetch --prune --unshallow - - name: Set up Docker Buildx - id: setup-buildx - uses: docker/setup-buildx-action@v3 - with: - append: | - - endpoint: tcp://buildkit-arm64.ci.svc.cluster.local:1234 - platforms: linux/arm64 - driver: remote - endpoint: tcp://127.0.0.1:1234 - - name: reproducibility-test - run: | - make reproducibility-test diff --git a/Makefile b/Makefile index 37a95dd..62b5f2f 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ IMAGE_TAG ?= $(TAG) OPERATING_SYSTEM := $(shell uname -s | tr '[:upper:]' '[:lower:]') GOARCH := $(shell uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/') REGISTRY ?= ghcr.io -USERNAME ?= siderolabs +USERNAME ?= nberlee REGISTRY_AND_USERNAME ?= $(REGISTRY)/$(USERNAME) KRES_IMAGE ?= ghcr.io/siderolabs/kres:latest CONFORMANCE_IMAGE ?= ghcr.io/siderolabs/conform:latest @@ -32,7 +32,7 @@ BLDR := docker run --rm --user $(shell id -u):$(shell id -g) --volume $(PWD):/sr # docker build settings BUILD := docker buildx build -PLATFORM ?= linux/amd64,linux/arm64 +PLATFORM ?= linux/arm64 PROGRESS ?= auto PUSH ?= false CI_ARGS ?= @@ -44,61 +44,20 @@ COMMON_ARGS += --build-arg=SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) COMMON_ARGS += --build-arg=TAG="$(TAG)" COMMON_ARGS += --build-arg=PKGS="$(PKGS)" COMMON_ARGS += --build-arg=PKGS_PREFIX="$(PKGS_PREFIX)" +COMMON_ARGS += --build-arg=PKGS_KERNEL="$(PKGS_KERNEL)" # extra variables EXTENSIONS_IMAGE_REF ?= $(REGISTRY_AND_USERNAME)/extensions:$(TAG) PKGS ?= v1.8.0-16-g71d23b4 PKGS_PREFIX ?= ghcr.io/siderolabs +PKG_KERNEL ?= ghcr.io/nberlee/kernel:v1.8.1 # targets defines all the available targets -TARGETS = amdgpu-firmware -TARGETS += amd-ucode -TARGETS += binfmt-misc -TARGETS += bnx2-bnx2x -TARGETS += btrfs -TARGETS += chelsio-drivers -TARGETS += chelsio-firmware -TARGETS += crun -TARGETS += drbd -TARGETS += ecr-credential-provider -TARGETS += fuse3 -TARGETS += gasket-driver -TARGETS += gvisor -TARGETS += gvisor-debug -TARGETS += hello-world-service -TARGETS += i915-ucode -TARGETS += intel-ice-firmware -TARGETS += intel-ucode -TARGETS += iscsi-tools -TARGETS += kata-containers -TARGETS += mdadm -TARGETS += mei -TARGETS += nut-client -TARGETS += nvidia-container-toolkit-lts -TARGETS += nvidia-container-toolkit-production -TARGETS += nvidia-fabricmanager-lts -TARGETS += nvidia-fabricmanager-production -TARGETS += nvidia-open-gpu-kernel-modules-lts -TARGETS += nvidia-open-gpu-kernel-modules-production -TARGETS += qemu-guest-agent -TARGETS += qlogic-firmware -TARGETS += realtek-firmware -TARGETS += spin -TARGETS += stargz-snapshotter -TARGETS += tailscale -TARGETS += thunderbolt -TARGETS += uinput +TARGETS = binfmt-misc +TARGETS += rk3588 TARGETS += usb-modem-drivers -TARGETS += util-linux-tools -TARGETS += v4l-uvc-drivers -TARGETS += vmtoolsd-guest-agent -TARGETS += wasmedge -TARGETS += xen-guest-agent -TARGETS += zfs -NONFREE_TARGETS = nonfree-kmod-nvidia-lts -NONFREE_TARGETS += nonfree-kmod-nvidia-production # help menu diff --git a/README.md b/README.md index 3569005..f626fd0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +# Friendy fork +This is a friendly fork, only here as the Turing RK1 has a different kernel, therefor it needs different extensions for kernel module drivers. +Also please use the *rk3588* extension and make sure to add `rockchip-cpufreq` to the `machine.kernel.modules` in your machine config. +See: [rk3588](sbcs/rk3588) extension +You may continue to use extensions from the `siderolabs/extensions` repo as long as they are not build with kernel modules. + # Talos Linux System Extensions This repo serves as a central place for publishing supported extensions to Talos Linux. @@ -42,40 +48,17 @@ cosign verify --certificate-identity-regexp '@siderolabs\.com$' --certificate-oi | Name | Image | Description | Version Format | | -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------ | -| [crun](container-runtime/crun/) | [ghcr.io/siderolabs/crun](https://github.com/siderolabs/extensions/pkgs/container/crun) | [crun](https://github.com/containers/crun) container runtime | `upstream version` | -| [gvisor](container-runtime/gvisor/) | [ghcr.io/siderolabs/gvisor](https://github.com/siderolabs/extensions/pkgs/container/gvisor) | [gVisor](https://gvisor.dev/) container runtime | `upstream version` | -| [stargz-snapshotter](container-runtime/stargz-snapshotter/) | [ghcr.io/siderolabs/stargz-snapshotter](https://github.com/siderolabs/extensions/pkgs/container/stargz-snapshotter) | [Stargz Snapshotter](https://github.com/containerd/stargz-snapshotter) container runtime | `upstream version` | -| [ecr-credential-provider](container-runtime/ecr-credential-provider) | [ghcr.io/siderolabs/ecr-credential-provider](https://github.com/siderolabs/extensions/pkgs/container/ecr-credential-provider) | [ECR Credential Provider](https://github.com/kubernetes/cloud-provider-aws/tree/master/cmd/ecr-credential-provider) kubelet plugin | `upstream version` | -| [wasmedge](container-runtime/wasmedge) | [ghcr.io/siderolabs/wasmedge](https://github.com/siderolabs/extensions/pkgs/container/wasmedge) | [WasmEdge](https://github.com/containerd/runwasi) container runtime | `upstream_version` | -| [spin](container-runtime/spin) | [ghcr.io/siderolabs/spin](https://github.com/siderolabs/extensions/pkgs/container/spin) | [Spin](https://github.com/spinkube/containerd-shim-spin) container runtime | `upstream_version` | -| [kata-containers](container-runtime/kata-containers) | [ghcr.io/siderolabs/kata-containers](https://github.com/siderolabs/extensions/pkgs/container/kata-containers) | [Kata Containers](https://github.com/kata-containers/kata-containers) container runtime | `upstream version` | ### Firmware | Name | Image | Description | Version Format | | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------ | -| [amd-ucode](firmware/amd-ucode/) | [ghcr.io/siderolabs/amd-ucode](https://github.com/siderolabs/extensions/pkgs/container/amd-ucode) | AMD CPU microcode updates | `linux firmware version` | -| [amdgpu-firmware](firmware/amdgpu-firmware/) | [ghcr.io/siderolabs/amdgpu-firmware](https://github.com/siderolabs/extensions/pkgs/container/amdgpu-firmware) | AMD GPU firmware | `linux firmware version` | -| [bnx2-bnx2x](firmware/bnx2-bnx2x/) | [ghcr.io/siderolabs/bnx2-bnx2x](https://github.com/siderolabs/extensions/pkgs/container/bnx2-bnx2x) | Broadcom NetXtreme firmware | `linux firmware version` | -| [chelsio-firmware](firmware/chelsio-firmware/) | [ghcr.io/siderolabs/chelsio-firmware](https://github.com/siderolabs/extensions/pkgs/container/chelsio-firmware) | Chelsio NIC firmware | `linux firmware version` | -| [i915-ucode](firmware/i915-ucode/) | [ghcr.io/siderolabs/i915-ucode](https://github.com/siderolabs/extensions/pkgs/container/i915-ucode) | Intel GPU firmware | `linux firmware version` | -| [intel-ice-firmware](firmware/intel-ice-firmware/) | [ghcr.io/siderolabs/intel-ice-firmware](https://github.com/siderolabs/extensions/pkgs/container/intel-ice-firmware) | Intel ICE NIC firmware | `linux firmware version` | -| [intel-ucode](firmware/intel-ucode/) | [ghcr.io/siderolabs/intel-ucode](https://github.com/siderolabs/extensions/pkgs/container/intel-ucode) | Intel CPU microcode updates | `upstream version` | -| [qlogic-firmware](firmware/qlogic-firmware/) | [ghcr.io/siderolabs/qlogic-firmware](https://github.com/siderolabs/extensions/pkgs/container/qlogic-firmware) | Qlogic firmware | `linux firmware version` | -| [realtek-firmware](firmware/realtek-firmware/) | [ghcr.io/siderolabs/realtek-firmware](https://github.com/siderolabs/extensions/pkgs/container/realtek-firmware) | Realtek firmware | `linux firmware version` | ### Drivers | Name | Image | Description | Version Format | | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ----------------------------------------------------- | -| [chelsio](drivers/chelsio/) | [ghcr.io/siderolabs/chelsio-drivers](https://github.com/siderolabs/extensions/pkgs/container/chelsio-drivers) | Chelsio NIC drivers | `talos version` | -| [gasket](drivers/gasket/) | [ghcr.io/siderolabs/gasket-driver](https://github.com/siderolabs/extensions/pkgs/container/gasket-driver) | Driver for Google Coral PCIe devices | `gasket driver upstream short commit`-`talos version` | -| [mei](drivers/mei/) | [ghcr.io/siderolabs/mei](https://github.com/siderolabs/extensions/pkgs/container/mei) | Driver for Intel Management Engine | `talos version` | -| [nvidia](nvidia-gpu/nvidia-modules/) | [ghcr.io/siderolabs/nvidia-open-gpu-kernel-modules](https://github.com/siderolabs/extensions/pkgs/container/nvidia-open-gpu-kernel-modules) | NVIDIA OSS Driver | `nvidia driver upstream version`-`talos version` | -| [thunderbolt](drivers/thunderbolt/) | [ghcr.io/siderolabs/thunderbolt](https://github.com/siderolabs/extensions/pkgs/container/thunderbolt) | Thunderbolt drivers | `talos version` | -| [uinput](drivers/uinput/) | [ghcr.io/siderolabs/uinput](https://github.com/siderolabs/extensions/pkgs/container/uinput) | uinput drivers | `talos version` | | [usb-modem](drivers/usb-modem/) | [ghcr.io/siderolabs/usb-modem-drivers](https://github.com/siderolabs/extensions/pkgs/container/usb-modem-drivers) | USB Modem drivers | `talos version` | -| [v4l-uvc](drivers/v4l-uvc/) | [ghcr.io/siderolabs/v4l-uvc-drivers](https://github.com/siderolabs/extensions/pkgs/container/v4l-uvc-drivers) | USB Video Class (Webcam) drivers | `talos version` | ### Miscellaneous @@ -87,45 +70,36 @@ cosign verify --certificate-identity-regexp '@siderolabs\.com$' --certificate-oi | Name | Image | Description | Version Format | | ------------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------- | ------------------ | -| [tailscale](network/tailscale/) | [ghcr.io/siderolabs/tailscale](https://github.com/siderolabs/extensions/pkgs/container/tailscale) | [Tailscale](https://tailscale.com) | `upstream version` | + +### SBCs +| Name | Image | Description | Version Format | +| --------------------- | --------------------------------------------------------------- | --------------------------------- | ------------------ | +| [rk3588](sbcs/rk3588) | [ghcr.io/nberlee/rk3588](https://github.com/nberlee/extensions) | Support modules for RK3588 boards | `talos version` | ### Storage | Name | Image | Description | Version Format | | ----------------------------------- | ----------------------------------------------------------------------------------------------------- | ---------------------- | ---------------------------------- | -| [iscsi-tools](storage/iscsi-tools/) | [ghcr.io/siderolabs/iscsi-tools](https://github.com/siderolabs/extensions/pkgs/container/iscsi-tools) | Open iSCSI tools | `v0.1.0` | -| [mdadm](storage/mdadm/) | [ghcr.io/siderolabs/mdadm](https://github.com/siderolabs/extensions/pkgs/container/mdadm) | manage MD devices tool | `upstream version` | -| [drbd](storage/drbd/) | [ghcr.io/siderolabs/drbd](https://github.com/siderolabs/extensions/pkgs/container/drbd) | DRBD driver module | `upstream version`-`talos version` | -| [zfs](storage/zfs/) | [ghcr.io/siderolabs/zfs](https://github.com/siderolabs/extensions/pkgs/container/zfs) | ZFS driver module | `upstream version`-`talos version` | -| [btrfs](storage/btrfs/) | [ghcr.io/siderolabs/btrfs](https://github.com/siderolabs/extensions/pkgs/container/btrfs) | BTRFS driver module | `talos version` | ### Power | Name | Image | Description | Version Format | | ------------------------------- | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | ------------------ | -| [nut-client](power/nut-client/) | [ghcr.io/siderolabs/nut-client](https://github.com/siderolabs/talos-extensions/pkgs/container/nut-client) | [Network UPS Tools](https://networkupstools.org) upsmon client | `upstream version` | ### Guest Agents | Name | Image | Description | Version Format | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ------------------ | -| [qemu-guest-agent](guest-agents/qemu-guest-agent/) | [ghcr.io/siderolabs/qemu-guest-agent](https://github.com/siderolabs/talos-extensions/pkgs/container/qemu-guest-agent) | [QEMU Guest Agent](https://wiki.qemu.org/Features/GuestAgent) | `upstream version` | -| [xe-guest-utilities](guest-agents/xe-guest-utilities/) | [ghcr.io/siderolabs/xe-guest-utilities](https://github.com/siderolabs/talos-extensions/pkgs/container/xe-guest-utilities) | [xe-guest-utilities](https://github.com/xenserver/xe-guest-utilitiest) | `upstream version` | -| [vmtoolsd-guest-agent](guest-agents/vmtoolsd-guest-agent/) | [ghcr.io/siderolabs/vmtoolsd-guest-agent](https://github.com/siderolabs/talos-extensions/pkgs/container/vmtoolsd-guest-agent) | [talos-vmtoolsd](https://github.com/siderolabs/talos-vmtoolsd) | `upstream version` | ### NVIDIA GPU | Name | Description | Version Format | | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | -| [nvidia-container-toolkit](nvidia-gpu/nvidia-container-toolkit/) | Tools to run [NVIDIA GPU workloads](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html) in containers | `driver version`-`toolkit version` | -| [nvidia-fabricmanager](nvidia-gpu/nvidia-fabricmanager/) | [NVIDIA fabric manager](https://docs.nvidia.com/datacenter/tesla/pdf/fabric-manager-user-guide.pdf) support for GPU workloads | `driver version` | -| [nvidia-open-gpu-kernel-modules](nvidia-gpu/nvidia-modules/) | NVIDIA driver kernel modules | `driver version`-`talos version` | #### Tools | Name | Description | Version Format | | ------------------------------------- | ----------------------------------------- | ------------------ | -| [util-linux-tools](tools/util-linux/) | Util Linux tools (`fstrim` and `nsenter`) | `upstream version` | ## Building Extensions diff --git a/sbcs/rk3588/README.md b/sbcs/rk3588/README.md new file mode 100644 index 0000000..7c34f73 --- /dev/null +++ b/sbcs/rk3588/README.md @@ -0,0 +1,24 @@ +# RK3588 extension + +## Installation + +See [Installing Extensions](https://github.com/siderolabs/extensions#installing-extensions). + +## Usage + +The following modules to to loaded manually, so add this to the talos config: +```yaml +machine: + kernel: + modules: + - name: rockchip-cpufreq +``` + +The rest is automatically detected and loaded based on the device-tree. + +Provides: + +* `rockchip-cpufreq`: his module is responsible for CPU frequency scaling on Rockchip processors. It manages the CPU's operating frequency and voltage to balance performance and power consumption. +* `rk_crypto2`: A cryptographic driver module for Rockchip SoCs, providing hardware acceleration for cryptographic operations like encryption and decryption, enhancing performance in cryptographic tasks. Currently only hashes are supported. +* `sm3_generic`: A generic implementation of the SM3 cryptographic hash algorithm. This module provides functionality for generating secure hash values, commonly used in data integrity checks and digital signatures. Need for `rk_crypto2`. +* `rockchip-rng`: A hardware random number generator module for Rockchip SoCs. It provides high-quality random numbers, crucial for cryptographic applications and ensuring system security. diff --git a/sbcs/rk3588/files/modules.txt b/sbcs/rk3588/files/modules.txt new file mode 100644 index 0000000..cef770a --- /dev/null +++ b/sbcs/rk3588/files/modules.txt @@ -0,0 +1,7 @@ +modules.order +modules.builtin +modules.builtin.modinfo +kernel/drivers/cpufreq/rockchip-cpufreq.ko +kernel/drivers/crypto/rockchip/rk_crypto2.ko +kernel/crypto/sm3_generic.ko +kernel/drivers/char/hw_random/rockchip-rng.ko diff --git a/sbcs/rk3588/manifest.yaml b/sbcs/rk3588/manifest.yaml new file mode 100644 index 0000000..d9b7015 --- /dev/null +++ b/sbcs/rk3588/manifest.yaml @@ -0,0 +1,10 @@ +version: v1alpha1 +metadata: + name: rk3588-drivers + version: "$VERSION" + author: Nico Berlee + description: | + This system extension provides drivers needed for RK3588 boards. + compatibility: + talos: + version: ">= v1.7.0" diff --git a/sbcs/rk3588/pkg.yaml b/sbcs/rk3588/pkg.yaml new file mode 100644 index 0000000..6d68a57 --- /dev/null +++ b/sbcs/rk3588/pkg.yaml @@ -0,0 +1,29 @@ +name: rk3588 +variant: scratch +shell: /toolchain/bin/bash +dependencies: + - stage: base + # The pkgs version for a particular release of Talos as defined in + # https://github.com/siderolabs/talos/blob//pkg/machinery/gendata/data/pkgs + - image: "{{ .BUILD_ARG_PKG_KERNEL }}" +steps: + - prepare: + - | + sed -i 's#$VERSION#{{ .VERSION }}#' /pkg/manifest.yaml + - install: + - | + export KERNELRELEASE=$(find /lib/modules -type d -name "*-talos" -exec basename {} \+) + + mkdir -p /rootfs + + xargs -a /pkg/files/modules.txt -I {} install -D /lib/modules/${KERNELRELEASE}/{} /rootfs/lib/modules/${KERNELRELEASE}/{} + depmod -b /rootfs ${KERNELRELEASE} + - test: + - | + # https://www.kernel.org/doc/html/v4.15/admin-guide/module-signing.html#signed-modules-and-stripping + find /rootfs/lib/modules -name '*.ko' -exec grep -FL '~Module signature appended~' {} \+ +finalize: + - from: /rootfs + to: /rootfs + - from: /pkg/manifest.yaml + to: / diff --git a/sbcs/rk3588/vars.yaml b/sbcs/rk3588/vars.yaml new file mode 100644 index 0000000..f380ba7 --- /dev/null +++ b/sbcs/rk3588/vars.yaml @@ -0,0 +1 @@ +VERSION: "{{ .BUILD_ARG_TAG }}" diff --git a/sbcs/vars.yaml b/sbcs/vars.yaml new file mode 100644 index 0000000..e69de29