diff --git a/Dockerfile b/Dockerfile index 1c944f4e..4406842e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,8 +10,17 @@ RUN \ if [ -z "${MOD_VERSION}" ]; then \ MOD_VERSION=$(curl -sX GET "https://api.github.com/repos/intel/compute-runtime/releases/latest" | jq -r '.tag_name'); \ fi && \ + COMP_RT_URLS_LEGACY1=$(curl -sX GET "https://api.github.com/repos/intel/compute-runtime/releases/tags/24.35.30872.22" | jq -r '.body' | grep wget | grep -v .sum | grep -v .ddeb | sed 's|wget ||g') && \ + echo "**** grab legacy1 debs ****" && \ + mkdir -p /root-layer/opencl-intel-legacy1 && \ + for i in $COMP_RT_URLS_LEGACY1; do \ + echo "**** downloading ${i%$'\r'} ****" && \ + curl -fS --retry 3 --retry-connrefused -o \ + /root-layer/opencl-intel-legacy1/$(basename "${i%$'\r'}") -L \ + "${i%$'\r'}" || exit 1; \ + done && \ COMP_RT_URLS=$(curl -sX GET "https://api.github.com/repos/intel/compute-runtime/releases/tags/${MOD_VERSION}" | jq -r '.body' | grep wget | grep -v .sum | grep -v .ddeb | sed 's|wget ||g') && \ - echo "**** grab debs ****" && \ + echo "**** grab latest debs ****" && \ mkdir -p /root-layer/opencl-intel && \ for i in $COMP_RT_URLS; do \ echo "**** downloading ${i%$'\r'} ****" && \ diff --git a/README.md b/README.md index 7c987794..c87f0070 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,3 @@ This mod adds opencl-intel to jellyfin, to be installed/updated during container In jellyfin docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel` If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel|linuxserver/mods:jellyfin-mod2` - -If your system is equipped with an older CPU, you will need to pin the Opencl-Intel mod to a specific version. Intel has deprecated support for "legacy" CPUs with pre-Tigerlake GPUs. This includes desktop CPUs prior to Rocketlake, laptop CPUs prior to Tigerlake, and low power CPUs prior to Alderlake-N. If you are unsure which CPU family you have, if your iGPU model number is in the 500 and 600 range, you have a "legacy" Intel CPU. - -For legacy CPUs, you must pin the Opencl-Intel mod to version 24.35.30872.22. Versions newer than this will cause tone mapping in Jellyfin to fail due to the openCL runtime not supporting your legacy CPU. Appending the environment variable with the version number will install that specific version. `DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel-24.35.30872.22` diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-jellyfin-opencl-intel-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-jellyfin-opencl-intel-add-package/run index 1519123a..84ef5139 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-jellyfin-opencl-intel-add-package/run +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-jellyfin-opencl-intel-add-package/run @@ -11,6 +11,15 @@ if [ $(uname -m) != "x86_64" ]; then exit 0 fi +if [ -d /opencl-intel-legacy1 ]; then + echo "**** Installing/updating opencl-intel legacy1 debs and adding clinfo to package install list ****" + dpkg -i /opencl-intel-legacy1/*.deb + rm -rf /opencl-intel-legacy1 + echo "clinfo" >> /mod-repo-packages-to-install.list +else + echo "**** Opencl-intel-legacy1 already installed ****" +fi + if [ -d /opencl-intel ]; then echo "**** Installing/updating opencl-intel debs and adding clinfo to package install list ****" dpkg -i /opencl-intel/*.deb