Feat: latest aws-neuron-driver, nvidia-gpu alpha support

This commit is contained in:
Stefan Reimer 2022-08-31 15:51:59 +02:00
parent 7e2bfb308e
commit 41db265f93
10 changed files with 199 additions and 48 deletions

View File

@ -1,4 +1,4 @@
BUILDER ?= v3.16.0 BUILDER := v3.16.0
RELEASE := v3.16 RELEASE := v3.16
PKG := '*' PKG := '*'

View File

@ -1,8 +1,8 @@
# Contributor: Stefan Reimer <stefan@zero-downtime.net> # Contributor: Stefan Reimer <stefan@zero-downtime.net>
# Maintainer: Stefan Reimer <stefan@zero-downtime.net> # Maintainer: Stefan Reimer <stefan@zero-downtime.net>
pkgname=aws-neuron-driver pkgname=aws-neuron-driver
pkgver=2.3.11.0 pkgver=2.3.26.0
pkgrel=2 pkgrel=0
pkgdesc="Linux Kernel module for AWS Neuron INF instances" pkgdesc="Linux Kernel module for AWS Neuron INF instances"
url="https://awsdocs-neuron.readthedocs-hosted.com/en/latest/release-notes/index.html#" url="https://awsdocs-neuron.readthedocs-hosted.com/en/latest/release-notes/index.html#"
arch="x86_64" arch="x86_64"
@ -10,6 +10,7 @@ license="GPL-2.0"
makedepends="bash xz linux-headers linux-virt-dev" makedepends="bash xz linux-headers linux-virt-dev"
options="!check" options="!check"
# https://awsdocs-neuron.readthedocs-hosted.com/en/latest/release-notes/neuron-driver.html#neuron-driver-release-notes
# apt-get download --print-uris aws-neuron-dkms | cut -d' ' -f1 # apt-get download --print-uris aws-neuron-dkms | cut -d' ' -f1
source="$pkgname-$pkgver.deb::https://apt.repos.neuron.amazonaws.com/pool/main/a/aws-neuron-dkms/aws-neuron-dkms_"$pkgver"_amd64.deb" source="$pkgname-$pkgver.deb::https://apt.repos.neuron.amazonaws.com/pool/main/a/aws-neuron-dkms/aws-neuron-dkms_"$pkgver"_amd64.deb"
@ -32,15 +33,14 @@ build() {
package() { package() {
KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt)) KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt))
depends="linux-virt=~$(echo $KERNEL_VERSION | sed -e 's/-.*$//')"
mkdir -p "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel "$pkgdir"/lib/udev/rules.d mkdir -p "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel "$pkgdir"/lib/udev/rules.d
gzip -9 -c neuron.ko > "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel/neuron.ko.gz gzip -9 -c neuron.ko > "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel/neuron.ko.gz
echo 'KERNEL=="neuron*", MODE="0666"' > "$pkgdir"/lib/udev/rules.d/90-neuron-udev.rules echo 'KERNEL=="neuron*", MODE="0666"' > "$pkgdir"/lib/udev/rules.d/90-neuron-udev.rules
depends="linux-virt=$(apk info linux-virt -d | grep description: | awk '{print $1}' | sed -e 's/linux-virt-//')"
} }
sha512sums=' sha512sums='
b0a67a72eb210e37aff77fa6ec62e2affbdc6792071ae1bf4a9c772f0bc5d8c8df64b527ca015fbefe0480c15c8e310d6ea066c5a7ced24e484d1dad5e86499f aws-neuron-driver-2.3.11.0.deb 81a233daf540b7ea3f334e8934ca1a89dd2cdedd8d0a448ae080ea5f7e28ef4b0aaa00e09644b69c29b759098ce82c1cef0a57ee68380f1fe0835883b8d33ab7 aws-neuron-driver-2.3.26.0.deb
' '

53
v3.16/glibc/APKBUILD Normal file
View File

@ -0,0 +1,53 @@
# Maintainer: Sasha Gerrand <alpine-pkgs@sgerrand.com>
pkgname="glibc"
pkgver="2.34"
_pkgrel="0"
pkgrel="0"
pkgdesc="GNU C Library compatibility layer"
arch="x86_64"
url="https://github.com/sgerrand/alpine-pkg-glibc"
license="LGPL"
source="https://github.com/sgerrand/docker-glibc-builder/releases/download/$pkgver-$_pkgrel/glibc-bin-$pkgver-$_pkgrel-x86_64.tar.gz
nsswitch.conf
ld.so.conf"
subpackages="$pkgname-bin $pkgname-dev $pkgname-i18n"
triggers="$pkgname-bin.trigger=/lib:/usr/lib:/usr/glibc-compat/lib"
options="!check lib64"
package() {
mkdir -p "$pkgdir/lib" "$pkgdir/lib64" "$pkgdir/usr/glibc-compat/lib/locale" "$pkgdir"/usr/glibc-compat/lib64 "$pkgdir"/etc
cp -a "$srcdir"/usr "$pkgdir"
cp "$srcdir"/ld.so.conf "$pkgdir"/usr/glibc-compat/etc/ld.so.conf
cp "$srcdir"/nsswitch.conf "$pkgdir"/etc/nsswitch.conf
rm "$pkgdir"/usr/glibc-compat/etc/rpc
rm -rf "$pkgdir"/usr/glibc-compat/bin
rm -rf "$pkgdir"/usr/glibc-compat/sbin
rm -rf "$pkgdir"/usr/glibc-compat/lib/gconv
rm -rf "$pkgdir"/usr/glibc-compat/lib/getconf
rm -rf "$pkgdir"/usr/glibc-compat/lib/audit
rm -rf "$pkgdir"/usr/glibc-compat/share
rm -rf "$pkgdir"/usr/glibc-compat/var
ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/lib/ld-linux-x86-64.so.2
ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/lib64/ld-linux-x86-64.so.2
ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/usr/glibc-compat/lib64/ld-linux-x86-64.so.2
ln -s /usr/glibc-compat/etc/ld.so.cache ${pkgdir}/etc/ld.so.cache
}
bin() {
depends="$pkgname libgcc"
mkdir -p "$subpkgdir"/usr/glibc-compat
cp -a "$srcdir"/usr/glibc-compat/bin "$subpkgdir"/usr/glibc-compat
cp -a "$srcdir"/usr/glibc-compat/sbin "$subpkgdir"/usr/glibc-compat
}
i18n() {
depends="$pkgname-bin"
arch="noarch"
mkdir -p "$subpkgdir"/usr/glibc-compat
cp -a "$srcdir"/usr/glibc-compat/share "$subpkgdir"/usr/glibc-compat
}
sha512sums="77e772a8edd55812e94f99087ea2a2307ac48b09d58fe0bbcb41f9b9861ef3a15b177699e2e1fb7e49fdeb42c64c33b81c0fdf4d44e043cd9f54c72b93f40d98 glibc-bin-2.34-0-x86_64.tar.gz
478bdd9f7da9e6453cca91ce0bd20eec031e7424e967696eb3947e3f21aa86067aaf614784b89a117279d8a939174498210eaaa2f277d3942d1ca7b4809d4b7e nsswitch.conf
2912f254f8eceed1f384a1035ad0f42f5506c609ec08c361e2c0093506724a6114732db1c67171c8561f25893c0dd5c0c1d62e8a726712216d9b45973585c9f7 ld.so.conf"

32
v3.16/glibc/README.md Normal file
View File

@ -0,0 +1,32 @@
# alpine-pkg-glibc
[![CircleCI](https://circleci.com/gh/sgerrand/alpine-pkg-glibc/tree/master.svg?style=svg)](https://circleci.com/gh/sgerrand/alpine-pkg-glibc/tree/master) ![x86_64](https://img.shields.io/badge/x86__64-supported-brightgreen.svg)
This is the [GNU C Library](https://gnu.org/software/libc/) as a Alpine Linux package to run binaries linked against `glibc`. This package utilizes a custom built glibc binary based on the vanilla glibc source. Built binary artifacts come from https://github.com/sgerrand/docker-glibc-builder.
## Releases
See the [releases page](https://github.com/sgerrand/alpine-pkg-glibc/releases) for the latest download links. If you are using tools like `localedef` you will need the `glibc-bin` and `glibc-i18n` packages in addition to the `glibc` package.
## Installing
The current installation method for these packages is to pull them in using `wget` or `curl` and install the local file with `apk`:
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-2.34-r0.apk
apk add glibc-2.34-r0.apk
### Please Note
:warning: The URL of the public signing key has changed! :warning:
Any previous reference to `https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub` should be updated with immediate effect to `https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub`.
## Locales
You will need to generate your locale if you would like to use a specific one for your glibc application. You can do this by installing the `glibc-i18n` package and generating a locale using the `localedef` binary. An example for en_US.UTF-8 would be:
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-bin-2.34-r0.apk
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-i18n-2.34-r0.apk
apk add glibc-bin-2.34-r0.apk glibc-i18n-2.34-r0.apk
/usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8

2
v3.16/glibc/glibc-bin.trigger Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
/usr/glibc-compat/sbin/ldconfig

6
v3.16/glibc/ld.so.conf Normal file
View File

@ -0,0 +1,6 @@
# libc default configuration
/usr/local/lib
/usr/glibc-compat/lib
/usr/lib
/lib

View File

@ -0,0 +1 @@
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

View File

@ -0,0 +1,47 @@
# Contributor: Stefan Reimer <stefan@zero-downtime.net>
# Maintainer: Stefan Reimer <stefan@zero-downtime.net>
pkgname=nvidia-container-toolkit
pkgver=1.10.0
pkgrel=1
pkgdesc="NVIDIA Container toolkit incl. cri hooks"
url="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html"
arch="x86_64"
license="Apache"
makedepends="xz"
options="!check !tracedeps"
source="https://nvidia.github.io/libnvidia-container/stable/debian10/amd64/libnvidia-container1_"$pkgver"-"$pkgrel"_amd64.deb
https://nvidia.github.io/libnvidia-container/stable/debian10/amd64/libnvidia-container-tools_"$pkgver"-"$pkgrel"_amd64.deb
https://nvidia.github.io/libnvidia-container/stable/debian10/amd64/nvidia-container-toolkit_"$pkgver"-"$pkgrel"_amd64.deb"
build() {
return 0
}
package() {
depends="glibc=2.34-r0 libcap nvidia-gpu-driver"
mkdir -p "$pkgdir"/usr/lib "$pkgdir"/usr/bin "$pkgdir"/etc/nvidia-container-runtime
# libnvidia-container1
ar -x "$srcdir"/libnvidia-container1_"$pkgver"-"$pkgrel"_amd64.deb && tar xfJ data.tar.xz
mv usr/lib/x86_64-linux-gnu/* "$pkgdir"/usr/lib
rm -rf control.tar.xz data.tar.xz debian-binary usr
# libnvidia-container-tools
ar -x "$srcdir"/libnvidia-container-tools_"$pkgver"-"$pkgrel"_amd64.deb && tar xfJ data.tar.xz
mv usr/bin/nvidia-container-cli "$pkgdir"/usr/bin
rm -rf control.tar.xz data.tar.xz debian-binary usr
# nvidia-container-toolkit
ar -x "$srcdir"/nvidia-container-toolkit_"$pkgver"-"$pkgrel"_amd64.deb && tar xfJ data.tar.xz
mv usr/bin/nvidia* "$pkgdir"/usr/bin
mv etc/nvidia-container-runtime/config.toml "$pkgdir"/etc/nvidia-container-runtime
rm -rf control.tar.xz data.tar.xz debian-binary usr
}
sha512sums='
23ba2aec28f01c0037bbb4812ea542589e96f6527cf49468a4a7c54ca05808cf0984a8dfe13ee3455b8c6ae8468c58590f9e1e6996927c710bcf3e545772a356 libnvidia-container1_1.10.0-1_amd64.deb
c5369c832bd91703e6e6e86a4431c2eebb2ddeaadff126174b41ed11e969dc8cc49dcab26b3ac18abb43b466a86ce76908eaa2f5e4109c689a0c3a4fa47548b5 libnvidia-container-tools_1.10.0-1_amd64.deb
3043729bd96dd153db1dc317685167f34da6b9d202134335212fb7d861532a265a59e002c86fff2664c67687f4c8bcc75913c74018930a6c68c0f2044eceacf0 nvidia-container-toolkit_1.10.0-1_amd64.deb
'

View File

@ -0,0 +1,52 @@
# Contributor: Stefan Reimer <stefan@zero-downtime.net>
# Maintainer: Stefan Reimer <stefan@zero-downtime.net>
pkgname=nvidia-gpu-driver
pkgver=515.65.01
pkgrel=0
pkgdesc="NVIDIA Linux open GPU kernel modules incl. GSP firmware"
url="https://github.com/NVIDIA/open-gpu-kernel-modules"
arch="x86_64"
license="MIT OR GPL-2.0"
makedepends="bash linux-headers linux-virt-dev xz"
options="!check !strip !tracedeps"
source="nvidia-$pkgver.tar.gz::https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/$pkgver.tar.gz
NVIDIA-Linux-x86_64-$pkgver.run::https://download.nvidia.com/XFree86/Linux-x86_64/$pkgver/NVIDIA-Linux-x86_64-$pkgver.run"
builddir="$srcdir/open-gpu-kernel-modules-$pkgver"
build() {
# Hack running the build inside a container other uname -r returns host kernel
KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt))
make KERNEL_UNAME=$KERNEL_VERSION
}
package() {
KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt))
depends="glibc<2.35 linux-virt=~$(echo $KERNEL_VERSION | sed -e 's/-.*$//')"
modules="nvidia.ko \
nvidia-drm.ko \
nvidia-modeset.ko \
nvidia-uvm.ko \
nvidia-peermem.ko"
mkdir -p "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel
for m in $modules; do
gzip -9 -c kernel-open/$m > "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel/$m.gz
done
# Add gsp firmware see: https://download.nvidia.com/XFree86/Linux-x86_64/$pkgver/README/gsp.html
mkdir -p "$pkgdir"/lib/firmware/nvidia/"$pkgver"
sh "$srcdir"/NVIDIA-Linux-x86_64-$pkgver.run -x -s && cp NVIDIA-Linux-x86_64-$pkgver/firmware/gsp.bin "$pkgdir"/lib/firmware/nvidia/"$pkgver"/gsp.bin
# Install basic nvidia-smi inck. libnvidia-ml
mkdir -p "$pkgdir"/usr/lib "$pkgdir"/usr/sbin
cp NVIDIA-Linux-x86_64-$pkgver/libnvidia-ml.so."$pkgver" "$pkgdir"/usr/lib/libnvidia-ml.so.1
cp NVIDIA-Linux-x86_64-$pkgver/nvidia-smi "$pkgdir"/usr/sbin/nvidia-smi
}
sha512sums='
c2ff6fd02272b6981a65e7e14c6b636f0113e21da910898c27682f58e60fa8e6deea3670081c57e4961fb5e7794eef8eddb90d134ba1892536a8468c5dc9d669 nvidia-515.65.01.tar.gz
5221a4ac071eb39a37a841f19cfe4983286dc35e918956b40604404ef36c122612475df7b9a391a9a70bd60f44e598c8a0e5ec54ccc3e90d51f01e1b2fbe5e33 NVIDIA-Linux-x86_64-515.65.01.run
'

View File

@ -1,42 +0,0 @@
# Contributor: Stefan Reimer <stefan@zero-downtime.net>
# Maintainer: Stefan Reimer <stefan@zero-downtime.net>
pkgname=nvidia-open-gpu
pkgver=515.65.01
pkgrel=1
pkgdesc="NVIDIA Linux open GPU kernel modules"
url="https://github.com/NVIDIA/open-gpu-kernel-modules"
arch="x86_64"
license="MIT OR GPL-2.0"
makedepends="bash linux-headers linux-virt-dev"
options="!check"
source="nvidia-$pkgver.tar.gz::https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/$pkgver.tar.gz"
builddir="$srcdir/open-gpu-kernel-modules-$pkgver"
build() {
# Hack running the build inside a container other uname -r returns host kernel
KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt))
make KERNEL_UNAME=$KERNEL_VERSION
}
package() {
KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt))
modules="nvidia.ko \
nvidia-drm.ko \
nvidia-modeset.ko \
nvidia-uvm.ko \
nvidia-peermem.ko"
mkdir -p "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel
for m in $modules; do
gzip -9 -c kernel-open/$m > "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel/$m.gz
done
depends="linux-virt=$(apk info linux-virt -d | grep description: | awk '{print $1}' | sed -e 's/linux-virt-//')"
}
sha512sums='
c2ff6fd02272b6981a65e7e14c6b636f0113e21da910898c27682f58e60fa8e6deea3670081c57e4961fb5e7794eef8eddb90d134ba1892536a8468c5dc9d669 nvidia-515.65.01.tar.gz
'