diff --git a/.kres.yaml b/.kres.yaml index 669113e8..9e31e714 100644 --- a/.kres.yaml +++ b/.kres.yaml @@ -35,6 +35,7 @@ spec: - nvidia-container-toolkit-production - nvidia-fabricmanager-lts - nvidia-fabricmanager-production + - nvidia-l4t - nvidia-open-gpu-kernel-modules-lts - nvidia-open-gpu-kernel-modules-production - nvme-cli diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 058c4c93..2a4e9ce2 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -42,6 +42,7 @@ If the field is marked as `Needs Maintainer`, it means that the package is curre | nivida-container-toolkit-production | Sidero Labs | NA | | nvidia-fabricmanager-lts | Sidero Labs | NA | | nvidia-fabricmanager-production | Sidero Labs | NA | +| nvidia-l4t | Michał Małyska | [mmalyska](https://github.com/mmalyska) | | nvidia-open-gpu-kernel-modules-lts | Sidero Labs | NA | | nvidia-open-gpu-kernel-modules-production | Sidero Labs | NA | | nvme-cli | Sidelo Labs | NA | diff --git a/Makefile b/Makefile index afbf23d1..b9a2cbbc 100644 --- a/Makefile +++ b/Makefile @@ -41,13 +41,13 @@ COMMON_ARGS += --provenance=false COMMON_ARGS += --progress=$(PROGRESS) COMMON_ARGS += --platform=$(PLATFORM) COMMON_ARGS += --build-arg=SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) -COMMON_ARGS += --build-arg=TAG="$(TAG)" +COMMON_ARGS += --build-arg=TAG="$(IMAGE_TAG)" COMMON_ARGS += --build-arg=PKGS="$(PKGS)" COMMON_ARGS += --build-arg=PKGS_PREFIX="$(PKGS_PREFIX)" # extra variables -EXTENSIONS_IMAGE_REF ?= $(REGISTRY_AND_USERNAME)/extensions:$(TAG) +EXTENSIONS_IMAGE_REF ?= $(REGISTRY_AND_USERNAME)/extensions:$(IMAGE_TAG) PKGS ?= v1.10.0-alpha.0-40-ge1f11f0 PKGS_PREFIX ?= ghcr.io/siderolabs @@ -86,6 +86,7 @@ TARGETS += nvidia-container-toolkit-lts TARGETS += nvidia-container-toolkit-production TARGETS += nvidia-fabricmanager-lts TARGETS += nvidia-fabricmanager-production +TARGETS += nvidia-l4t TARGETS += nvidia-open-gpu-kernel-modules-lts TARGETS += nvidia-open-gpu-kernel-modules-production TARGETS += nvme-cli @@ -190,7 +191,7 @@ nonfree: $(NONFREE_TARGETS) ## Builds all nonfree targets defined. .PHONY: $(TARGETS) $(NONFREE_TARGETS) $(TARGETS) $(NONFREE_TARGETS): $(ARTIFACTS)/bldr - @$(MAKE) docker-$@ TARGET_ARGS="--tag=$(REGISTRY)/$(USERNAME)/$@:$(shell $(ARTIFACTS)/bldr eval --target $@ --build-arg TAG=$(TAG) '{{.VERSION}}' 2>/dev/null) --push=$(PUSH)" + @$(MAKE) docker-$@ TARGET_ARGS="--tag=$(REGISTRY)/$(USERNAME)/$@:$(shell $(ARTIFACTS)/bldr eval --target $@ --build-arg TAG=$(IMAGE_TAG) '{{.VERSION}}' 2>/dev/null) --push=$(PUSH)" $(ARTIFACTS)/bldr: $(ARTIFACTS) ## Downloads bldr binary. @curl -sSL https://github.com/siderolabs/bldr/releases/download/$(BLDR_RELEASE)/bldr-$(OPERATING_SYSTEM)-$(GOARCH) -o $(ARTIFACTS)/bldr @@ -207,8 +208,8 @@ extensions: internal/extensions/descriptions.yaml .PHONY: extensions-metadata extensions-metadata: $(ARTIFACTS)/bldr @rm -f _out/extensions-metadata - @$(foreach target,$(TARGETS),echo $(REGISTRY)/$(USERNAME)/$(target):$(shell $(ARTIFACTS)/bldr eval --target $(target) --build-arg TAG=$(TAG) '{{.VERSION}}' 2>/dev/null) >> _out/extensions-metadata;) - @$(foreach target,$(NONFREE_TARGETS),echo $(REGISTRY)/$(USERNAME)/$(target):$(shell $(ARTIFACTS)/bldr eval --target $(target) --build-arg TAG=$(TAG) '{{.VERSION}}' 2>/dev/null) >> _out/extensions-metadata;) + @$(foreach target,$(TARGETS),echo $(REGISTRY)/$(USERNAME)/$(target):$(shell $(ARTIFACTS)/bldr eval --target $(target) --build-arg TAG=$(IMAGE_TAG) '{{.VERSION}}' 2>/dev/null) >> _out/extensions-metadata;) + @$(foreach target,$(NONFREE_TARGETS),echo $(REGISTRY)/$(USERNAME)/$(target):$(shell $(ARTIFACTS)/bldr eval --target $(target) --build-arg TAG=$(IMAGE_TAG) '{{.VERSION}}' 2>/dev/null) >> _out/extensions-metadata;) .PHONY: internal/extensions/image-digests internal/extensions/image-digests: extensions-metadata @@ -243,7 +244,7 @@ help: ## This help menu. .PHONY: release-notes release-notes: $(ARTIFACTS) - @ARTIFACTS=$(ARTIFACTS) ./hack/release.sh $@ $(ARTIFACTS)/RELEASE_NOTES.md $(TAG) + @ARTIFACTS=$(ARTIFACTS) ./hack/release.sh $@ $(ARTIFACTS)/RELEASE_NOTES.md $(IMAGE_TAG) .PHONY: conformance conformance: diff --git a/Pkgfile b/Pkgfile index 12df4f83..0d7f3846 100644 --- a/Pkgfile +++ b/Pkgfile @@ -7,6 +7,7 @@ vars: DRBD_DRIVER_VERSION: 9.2.12 # update this when updating PKGS_VERSION in Makefile ZFS_DRIVER_VERSION: 2.3.0 # update this when updating PKGS_VERSION in Makefile UTIL_LINUX_VERSION: 2.40.4 # update this when updating PKGS_VERSION in Makefile + L4T_NVIDIA_VERSION: 36.4.3 # update this when updating PKGS_VERSION in Makefile # renovate: datasource=git-tags extractVersion=^libtiprc-(?.*)$ depName=git://linux-nfs.org/~steved/libtirpc LIBTIRPC_VERSION: 1-3-3 diff --git a/nvidia-l4t/files/nvidia.conf b/nvidia-l4t/files/nvidia.conf new file mode 100644 index 00000000..4521834c --- /dev/null +++ b/nvidia-l4t/files/nvidia.conf @@ -0,0 +1,128 @@ +blacklist kfuse +blacklist tegra23x_perf_uncore +blacklist mc-utils +blacklist tegra-fsicom +blacklist tegra-cactmon-mc-all +blacklist tegra-dce +blacklist tegra-mce +blacklist tegra-bootloader-debug +blacklist ivc-bus +blacklist tegra-camera-rtcpu +blacklist camchar +blacklist camera-diagnostics +blacklist hsp-mailbox-client +blacklist rtcpu-debug +blacklist capture-ivc +blacklist tegra-uss-io-proxy +blacklist tegra-aon-ivc-echo +blacklist tegra234-aon +blacklist mc-hwpm +blacklist tegra23x_psc +blacklist cpuidle-tegra-auto +blacklist cpuidle-debugfs +blacklist tegra_vnet +blacklist nvethernet +blacklist oak_pci +blacklist nvidia-p2p +blacklist pcie-tegra-vf +blacklist tegra-pcie-edma +blacklist arm64-ras +blacklist tegra-se +blacklist tegra-se-nvrng +blacklist tegra-nvvse-cryptodev +blacklist tegra-hv-vse-safety +blacklist wch +blacklist max77851-regulator +blacklist max77851-poweroff +blacklist nvpps +blacklist nv-virtio-console-poc +blacklist tegra_bpmp +blacklist ivc_ext +blacklist pwm-tegra-tachometer +blacklist watchdog-tegra-t18x +blacklist max77851_wdt +blacklist softdog-platform +blacklist nvvrs-pseq-rtc +blacklist rtc-max77851 +blacklist pex9749-thermal +blacklist max77851_thermal +blacklist thermal-trip-event +blacklist tegra234-oc-event +blacklist tsecriscv +blacklist nvhost-vi5 +blacklist nvhost-nvdla +blacklist nvhost-nvcsi +blacklist nvhost-nvcsi-t194 +blacklist nvhost-pva +blacklist nvhost-capture +blacklist nvhost-isp5 +blacklist nvmap +blacklist tegra_gr_comm +blacklist maxim_gmsl_hdmi_serializer +blacklist ti_fpdlink_dp_serializer +blacklist maxim_gmsl_dp_serializer +blacklist tegra_camera_platform +blacklist i2c-nvvrs11 +blacklist nvpmodel-clk-cap +blacklist tegra_wmark +blacklist governor_pod_scaling +blacklist f75308 +blacklist cam_fsync +blacklist cam_cdi_tsc +blacklist cdi_gpio +blacklist cdi_dev +blacklist cdi_pwm +blacklist cdi_mgr +blacklist isc_pwm +blacklist isc_dev +blacklist isc_mgr +blacklist isc_gpio +blacklist nvhost-vi-tpg-t19x +blacklist tegra-camera +blacklist tegracam_log +blacklist sensor_kernel_tests +blacklist nv_imx274 +blacklist ar1335_common +blacklist max9295 +blacklist max929x +blacklist nv_ov5693 +blacklist max96712 +blacklist nv_imx219 +blacklist nv_ar0234 +blacklist max9296 +blacklist nv_hawk_owl +blacklist pca9570 +blacklist lt6911uxc +blacklist nv_imx390 +blacklist nv_imx318 +blacklist nv_imx477 +blacklist nv_imx185 +blacklist tegra_hv_vcpu_yield +blacklist tegra_hv_pm_ctl +blacklist hvc_sysfs +blacklist ivc-cdev +blacklist userspace_ivc_mempool +blacklist fusb301 +blacklist tegra_hv_vblk_oops +blacklist tegra_hv_mtd +blacklist pinctrl-max77851 +blacklist pinctrl-tegra194-pexclk-padctrl +blacklist pinctrl-tegra234-dpaux +blacklist nvidia-vrs-pseq +blacklist max77851 +blacklist spi-tegra210-quad +blacklist spi-tegra124-slave +blacklist spi-aurix-tegra +blacklist tegra-pcie-dma-test +blacklist ioctl_example +blacklist nvsciipc +blacklist bluedroid_pm +blacklist host1x-fence +blacklist host1x +blacklist tegra-drm +blacklist host1x-nvhost +blacklist nvgpu +blacklist nvidia-modeset +blacklist nvhwpm +blacklist nvidia +blacklist nvidia-drm diff --git a/nvidia-l4t/manifest.yaml b/nvidia-l4t/manifest.yaml new file mode 100644 index 00000000..b18a407b --- /dev/null +++ b/nvidia-l4t/manifest.yaml @@ -0,0 +1,10 @@ +version: v1alpha1 +metadata: + name: nvidia-l4t + version: "$VERSION" + author: Michał Małyska + description: | + This system extension provides nvidia open source driver kernel modules build for Jetson Orin platform + compatibility: + talos: + version: ">= v1.9.0" diff --git a/nvidia-l4t/pkg.yaml b/nvidia-l4t/pkg.yaml new file mode 100644 index 00000000..857a5ceb --- /dev/null +++ b/nvidia-l4t/pkg.yaml @@ -0,0 +1,31 @@ +name: nvidia-l4t +variant: scratch +shell: /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_PKGS_PREFIX }}/nvidia-l4t-pkg:{{ .BUILD_ARG_PKGS }}" +steps: + - prepare: + - | + sed -i 's#$VERSION#{{ .VERSION }}#' /pkg/manifest.yaml + - install: + - | + mkdir -p /rootfs/usr/lib/modules \ + /rootfs/usr/local/lib/modprobe.d + + cp /pkg/files/nvidia.conf /rootfs/usr/local/lib/modprobe.d/nvidia.conf + + cp -R /usr/lib/modules/* /rootfs/usr/lib/modules + test: + - | + mkdir -p /extensions-validator-rootfs + cp -r /rootfs/ /extensions-validator-rootfs/rootfs + cp /pkg/manifest.yaml /extensions-validator-rootfs/manifest.yaml + /extensions-validator validate --rootfs=/extensions-validator-rootfs --pkg-name="${PKG_NAME}" +finalize: + - from: /rootfs + to: /rootfs + - from: /pkg/manifest.yaml + to: / diff --git a/nvidia-l4t/vars.yaml b/nvidia-l4t/vars.yaml new file mode 100644 index 00000000..f622e9a1 --- /dev/null +++ b/nvidia-l4t/vars.yaml @@ -0,0 +1,2 @@ +# the first part is the driver version and the second the talos version for which the module is built against +VERSION: "{{ .L4T_NVIDIA_VERSION }}-{{ .BUILD_ARG_TAG }}"