Update: OpenVINO 2026.4.0 + NEO 26.35.39758.10 + fixes de robustez y Mesa

- OpenVINO Runtime 2026.4.0.22959.99c81491cc3 (BASE_URL packages/2026.4)
- NEO 26.35.39758.10 + IGC 2.41.5+22716 (6 paquetes de produccion, sin dbgsym/-devel)
- Mesa >= 25.2 en Debian 13: mesa-libgallium sustituye mesa-va-drivers/mesa-vdpau-drivers (Rompe < 25.2.8-3)
- INSTALL_DIR derivado de la version (/opt/intel/openvino_2026.4.0) con politica replace y symlink estable
- rm -rf cubre symlink O directorio real en la limpieza previa
- deps/: set -euo pipefail + guard ${1:-} (sin abortos esporios)
- DRY flags/GPU: read -r con guard EOF, deteccion GPU sin SIGPIPE, trap EXIT en modulos, GPU_PRESENT como comparacion
- .gitignore: artefactos de instalacion fuera del repo
This commit is contained in:
stornic56
2026-09-28 22:41:41 -05:00
parent 3b0c2051f1
commit 9fa67d432c
8 changed files with 288 additions and 258 deletions
+6
View File
@@ -0,0 +1,6 @@
# Artefactos de instalacion (no versionar)
*.tgz
*.sha256
openvino_toolkit_*/
temp/
install.log
+18 -9
View File
@@ -5,6 +5,7 @@ This project repository provides a comprehensive automated installation and conf
## Supported Operating Systems
* Debian 13
* Ubuntu 22.04
* Ubuntu 24.04
* Ubuntu 26.04
* Fedora 43
@@ -16,7 +17,9 @@ This project repository provides a comprehensive automated installation and conf
The installer scripts are designed to be executed as a root user (`sudo`). Ensure all necessary system dependencies (such as `git`, `wget`, and the respective package managers like `dpkg`/`dnf`) exist before execution.
### Setup & Clone Repository
First, clone the repository from GitHub:
```bash
# 1. Clone the installer repository
git clone https://github.com/stornic56/openvino-runtime-simple-installer
@@ -27,7 +30,9 @@ chmod +x main.sh
```
### Execution
Execute the primary installation script using elevated privileges (root access is mandatory):
```bash
sudo ./main.sh
```
@@ -37,19 +42,21 @@ sudo ./main.sh
The execution of `main.sh` automatically handles OS detection and conditionally installs components based on hardware presence, ensuring a fully configured inference pipeline:
**Core Runtime & Libraries:**
* **OpenVINO Toolkit 2026.0:** The complete runtime package is downloaded from the official OpenVINO repository (`https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.0/linux`) and installed under `/opt/intel/openvino_2026`. It is the same version used in llama.cpp in its builds.
* **OpenVINO Toolkit 2026.4:** The complete runtime package is downloaded from the official OpenVINO repository (`https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.4/linux`) and installed under `/opt/intel/openvino_2026`. It is the same version used in llama.cpp in its builds.
* **System Dependencies:** Required libraries, including `cmake`, Python 3 (with version-specific dependencies like `libpython3.13` for Debian 13 or `libpython3.13` for Ubuntu 26.04), GCC compilers (`g++`), NumPy bindings, and standard development tools are installed via system package managers (`apt`/`dnf`).
**Hardware Acceleration & Drivers (NEO):**
* **Intel Compute Runtime NEO:** If an Intel GPU is detected, the respective module script installs critical proprietary drivers:
* `intel-igc-core`: Graphics Compiler core components.
* `intel-igc-opencl`: OpenCL interface libraries for graphics compilation.
* **Intel Compute Runtime NEO (26.35.39758.10):** If an Intel GPU is detected, the respective module script installs critical proprietary drivers:
* `intel-igc-core` (2.41.5): Graphics Compiler core components.
* `intel-igc-opencl` (2.41.5): OpenCL interface libraries for graphics compilation.
* `intel-ocloc`/`libze-intel-gpu1`: Compute Runtime interfaces and GPU acceleration layers (OpenCL/oneAPI).
* **Multimedia Support:** Installation of `mesa-va-drivers`, `vainfo`, and related packages to ensure Video Acceleration API support, crucial for media inference tasks.
**Environment Configuration:**
* User permissions are configured by adding the executing user (`$SUDO_USER`) to the system groups `render` and `video` to allow proper GPU access post-installation.
* User permissions are configured by adding the executing user (`$SUDO_USER`) to the system groups `render` and `video` to allow proper GPU access post-installation.
## After Installation
@@ -66,8 +73,10 @@ clinfo | grep -i "device name"
4. Check video acceleration
vainfo
```
## Note:
## Note
Users should reference the following official projects:
- Llamacpp: [Official Repository Link](https://github.com/ggml-org/llama.cpp) and [OpenvinoBackend](https://github.com/ggml-org/llama.cpp/blob/master/docs/backend/OPENVINO.md)
- OpenVino Toolkit: [Docs](https://docs.openvino.ai/2026/get-started/install-openvino/install-openvino-archive-linux.html) and [github](https://github.com/openvinotoolkit/openvino)
- Intel NEO Drivers: [Intel Compute Runtime](https://github.com/intel/compute-runtime)
* Llamacpp: [Official Repository Link](https://github.com/ggml-org/llama.cpp) and [OpenvinoBackend](https://github.com/ggml-org/llama.cpp/blob/master/docs/backend/OPENVINO.md)
* OpenVino Toolkit: [Docs](https://docs.openvino.ai/2026/get-started/install-openvino/install-openvino-archive-linux.html) and [github](https://github.com/openvinotoolkit/openvino)
* Intel NEO Drivers: [Intel Compute Runtime](https://github.com/intel/compute-runtime)
+30 -15
View File
@@ -17,30 +17,45 @@ if [ "$1" = "--install" ]; then
exit 1
fi
# Clean up any previous installation before proceeding
if [ -d "/opt/intel/openvino_2026.0" ]; then
print_warning "An existing OpenVINO installation was found. Removing it..."
rm -rf "/opt/intel/openvino_2026.0"
fi
if [ -L "/opt/intel/openvino_2026" ]; then
rm -f "/opt/intel/openvino_2026"
fi
# Derive destination from version (official doc pattern: year.patch)
# e.g. openvino_toolkit_ubuntu24_<VERSION>_x86_64.tgz -> /opt/intel/openvino_<YEAR.PATCH>
VERSION_FULL="$(echo "$FILENAME" | cut -d_ -f4)"
case "$VERSION_FULL" in
20[0-9][0-9].*) ;; # valid version format, continue
*)
print_error "Could not derive version from: $FILENAME"
exit 1
;;
esac
INSTALL_DIR="/opt/intel/openvino_$(echo "$VERSION_FULL" | cut -d. -f1-3)"
# Replace policy (updates): remove ANY previous 2026 install and the previous symlink.
# Known limitation: the previous install is deleted BEFORE extracting; if the tar
# failed afterwards, the system would be left without OpenVINO. Acceptable because
# the SHA256 was already verified during the download step.
if ls -d /opt/intel/openvino_2026.* >/dev/null 2>&1; then
print_warning "An existing OpenVINO installation was found. Replacing it..."
fi
rm -rf /opt/intel/openvino_2026 # remove previous symlink OR real directory (rm -rf does not follow symlinks)
rm -rf /opt/intel/openvino_2026.* # ANY previous 2026 install
mkdir -p /opt/intel
DIRNAME="${FILENAME%.tgz}" # known before tar (enables trap cleanup)
trap 'rm -rf "$DIRNAME"' EXIT
print_substep "Unzipping $FILENAME..."
tar -xf "$FILENAME"
# The name of the extracted folder matches the name of the tarball without the .tgz extension
DIRNAME="${FILENAME%.tgz}"
if [ ! -d "$DIRNAME" ]; then
# guess the real name
DIRNAME=$(tar -tf "$FILENAME" | head -1 | cut -d/ -f1)
TAR_LIST=$(tar -tf "$FILENAME")
DIRNAME="${TAR_LIST%%$'\n'*}" # first entry (no pipe, no SIGPIPE)
DIRNAME="${DIRNAME%%/*}"
fi
print_substep "Moving $DIRNAME a /opt/intel/openvino_2026.0..."
mkdir -p /opt/intel
mv "$DIRNAME" "/opt/intel/openvino_2026.0"
print_substep "Moving $DIRNAME a $INSTALL_DIR..."
mv "$DIRNAME" "$INSTALL_DIR"
print_substep "Create symbolic link /opt/intel/openvino_2026..."
ln -sf /opt/intel/openvino_2026.0 /opt/intel/openvino_2026
ln -s "$INSTALL_DIR" /opt/intel/openvino_2026
exit 0
fi
+58 -50
View File
@@ -6,7 +6,7 @@
# Modified by stornic56 (2026) to add support for Debian 13 (Trixie), Ubuntu 26.04,
# and Python 3.13 dependencies. Also ensures dnf is used on Fedora.
set -e
set -euo pipefail
#===================================================================================================
# Option parsing
@@ -26,8 +26,8 @@ keepcache=
selftest=
while :; do
case $1 in
-h|-\?|--help)
case "${1:-}" in
-h | -\? | --help)
echo "Options:"
echo " -y non-interactive run (off)"
echo " -n dry-run, assume no (off)"
@@ -56,7 +56,7 @@ fi
#===================================================================================================
# Selftest
if [ -n "$selftest" ] ; then
if [ -n "$selftest" ]; then
for image in centos:7 centos:8 rhel:8 rhel:9.1 \
almalinux:8.7 amazonlinux:2 \
fedora:34 fedora:35 fedora:36 fedora:37 fedora:38 \
@@ -65,11 +65,11 @@ if [ -n "$selftest" ] ; then
raspbian:10 debian:10 ubuntu:20.04 ubuntu:20.10 ubuntu:21.04 \
raspbian:11 debian:11 ubuntu:21.10 ubuntu:22.04 \
raspbian:12 debian:12 debian:13 ubuntu:22.10 ubuntu:23.04 ubuntu:24.04; do
for opt in "-h" "-p" "-e -p" "-n" "-n -e" "-y" "-y -e" ; do
for opt in "-h" "-p" "-e -p" "-n" "-n -e" "-y" "-y -e"; do
echo "||"
echo "|| Test $image / '$opt'"
echo "||"
SCRIPT_DIR="$( cd "$( dirname "$(realpath "${BASH_SOURCE:-$0}")" )" >/dev/null 2>&1 && pwd )"
SCRIPT_DIR="$(cd "$(dirname "$(realpath "${BASH_SOURCE:-$0}")")" >/dev/null 2>&1 && pwd)"
docker run -it --rm \
--volume "${SCRIPT_DIR}":/scripts:ro,Z \
--volume yum-cache:/var/cache/yum \
@@ -87,7 +87,7 @@ if [ -n "$selftest" ] ; then
echo "||"
echo "|| Test ubuntu:26.04 / '$opt'"
echo "||"
SCRIPT_DIR="$( cd "$( dirname "$(realpath "${BASH_SOURCE:-$0}")" )" >/dev/null 2>&1 && pwd )"
SCRIPT_DIR="$(cd "$(dirname "$(realpath "${BASH_SOURCE:-$0}")")" >/dev/null 2>&1 && pwd)"
docker run -it --rm \
--volume "${SCRIPT_DIR}":/scripts:ro,Z \
--volume yum-cache:/var/cache/yum \
@@ -108,32 +108,40 @@ fi
#===================================================================================================
# OS detection
if [ "$os" == "auto" ] ; then
# shellcheck source=/dev/null
os=$( . /etc/os-release ; echo "${ID}${VERSION_ID}" )
if [[ "$os" =~ "rhel8".* ]] ; then
if [ "$os" == "auto" ]; then
os=""
if [ -f /etc/os-release ]; then
os=$(
. /etc/os-release
echo "${ID:-}${VERSION_ID:-}"
)
fi
if [[ "$os" =~ "rhel8".* ]]; then
os="rhel8"
fi
case $os in
centos7|centos8|centos9|\
rhel8|rhel9.1|rhel9.2|rhel9.3|rhel9.4|\
opencloudos8.5|opencloudos8.6|opencloudos8.8|opencloudos9.0|opencloudos9.2|\
tencentos3.1|tencentos3.2|tencentos3.3|tencentos4.0|tencentos4.2|\
anolis8.6|anolis8.8|\
openEuler20.03|openEuler22.03|openEuler23.03|openEuler24.03|\
almalinux8.7|almalinux8.8|almalinux9.2|almalinux9.3|almalinux9.4|\
amzn2|amzn2022|amzn2023|\
ol8.7|ol8.8|ol9.2|ol9.3|ol9.4|\
rocky8.7|rocky8.8|rocky9.2|rocky9.3|rocky9.4|\
fedora29|fedora30|fedora31|fedora32|fedora33|fedora34|fedora35|fedora36|\
fedora37|fedora38|fedora39|fedora40|fedora41|\
fedora42|fedora43|fedora44|fedora*|\
opensuse-leap15.3|\
raspbian9|debian9|ubuntu18.04|\
raspbian10|debian10|ubuntu20.04|ubuntu20.10|ubuntu21.04|\
raspbian11|debian11|ubuntu21.10|ubuntu22.04|\
raspbian12|debian12|debian13|ubuntu22.10|ubuntu23.04|ubuntu23.10|ubuntu24.04|ubuntu26.04) [ -z "$print" ] && echo "Detected OS: ${os}" ;;
*) echo "Unsupported OS: ${os:-detection failed}" >&2 ; exit 1 ;;
centos7 | centos8 | centos9 | \
rhel8 | rhel9.1 | rhel9.2 | rhel9.3 | rhel9.4 | \
opencloudos8.5 | opencloudos8.6 | opencloudos8.8 | opencloudos9.0 | opencloudos9.2 | \
tencentos3.1 | tencentos3.2 | tencentos3.3 | tencentos4.0 | tencentos4.2 | \
anolis8.6 | anolis8.8 | \
openEuler20.03 | openEuler22.03 | openEuler23.03 | openEuler24.03 | \
almalinux8.7 | almalinux8.8 | almalinux9.2 | almalinux9.3 | almalinux9.4 | \
amzn2 | amzn2022 | amzn2023 | \
ol8.7 | ol8.8 | ol9.2 | ol9.3 | ol9.4 | \
rocky8.7 | rocky8.8 | rocky9.2 | rocky9.3 | rocky9.4 | \
fedora29 | fedora30 | fedora31 | fedora32 | fedora33 | fedora34 | fedora35 | fedora36 | \
fedora37 | fedora38 | fedora39 | fedora40 | fedora41 | \
fedora42 | fedora43 | fedora44 | fedora* | \
opensuse-leap15.3 | \
raspbian9 | debian9 | ubuntu18.04 | \
raspbian10 | debian10 | ubuntu20.04 | ubuntu20.10 | ubuntu21.04 | \
raspbian11 | debian11 | ubuntu21.10 | ubuntu22.04 | \
raspbian12 | debian12 | debian13 | ubuntu22.10 | ubuntu23.04 | ubuntu23.10 | ubuntu24.04 | ubuntu26.04) [ -z "$print" ] && echo "Detected OS: ${os}" ;;
*)
echo "Unsupported OS: ${os:-detection failed}" >&2
exit 1
;;
esac
fi
@@ -147,14 +155,14 @@ if [ "$os" == "raspbian9" ] || [ "$os" == "debian9" ]; then
pkgs_python=()
pkgs_dev=(pkg-config g++ gcc libc6-dev make sudo)
elif [ "$os" == "ubuntu18.04" ] ; then
elif [ "$os" == "ubuntu18.04" ]; then
pkgs_gpu=(ocl-icd-libopencl1)
pkgs_python=(python3.8 libpython3.8 python3.8-venv python3-pip)
pkgs_dev=(cmake pkg-config g++ gcc libc6-dev make sudo)
elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "debian10" ] || [ "$os" == "raspbian10" ] || \
[ "$os" == "ubuntu21.10" ] || [ "$os" == "ubuntu22.04" ] || [ "$os" == "debian11" ] || [ "$os" == "raspbian11" ] || \
[ "$os" == "ubuntu22.10" ] || [ "$os" == "ubuntu23.04" ] || [ "$os" == "ubuntu24.04" ] || [ "$os" == "debian12" ] || [ "$os" == "raspbian12" ] || \
elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "debian10" ] || [ "$os" == "raspbian10" ] ||
[ "$os" == "ubuntu21.10" ] || [ "$os" == "ubuntu22.04" ] || [ "$os" == "debian11" ] || [ "$os" == "raspbian11" ] ||
[ "$os" == "ubuntu22.10" ] || [ "$os" == "ubuntu23.04" ] || [ "$os" == "ubuntu24.04" ] || [ "$os" == "debian12" ] || [ "$os" == "raspbian12" ] ||
[ "$os" == "debian13" ] || [ "$os" == "ubuntu26.04" ]; then
pkgs_gpu=(ocl-icd-libopencl1)
@@ -165,10 +173,10 @@ elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "debian10" ] || [ "$os" == "raspbi
pkgs_python+=(libpython3.7)
elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "ubuntu20.10" ] || [ "$os" == "ubuntu21.04" ]; then
pkgs_python+=(libpython3.8)
elif [ "$os" == "ubuntu21.10" ] || \
elif [ "$os" == "ubuntu21.10" ] ||
[ "$os" == "debian11" ] || [ "$os" == "raspbian11" ]; then
pkgs_python+=(libpython3.9)
elif [ "$os" == "ubuntu22.04" ] || [ "$os" == "ubuntu22.10" ] || \
elif [ "$os" == "ubuntu22.04" ] || [ "$os" == "ubuntu22.10" ] ||
[ "$os" == "debian12" ] || [ "$os" == "raspbian12" ]; then
pkgs_python+=(libpython3.10)
elif [ "$os" == "ubuntu23.04" ]; then
@@ -200,11 +208,11 @@ elif [ "$os" == "centos7" ] || [ "$os" == "centos8" ] || [ "$os" == "centos9" ]
[ "$os" == "rocky9.2" ] || [ "$os" == "rocky9.3" ] || [ "$os" == "rocky9.4" ] ||
[ "$os" == "almalinux8.7" ] || [ "$os" == "almalinux8.8" ] ||
[ "$os" == "almalinux9.2" ] || [ "$os" == "almalinux9.3" ] || [ "$os" == "almalinux9.4" ] ||
[ "$os" == "amzn2" ] || [ "$os" == "amzn2022" ] || [ "$os" == "amzn2023" ] ; then
[ "$os" == "amzn2" ] || [ "$os" == "amzn2022" ] || [ "$os" == "amzn2023" ]; then
arch=$(uname -m)
if [ "$os" == "amzn2" ] ; then
if [ "$os" == "amzn2" ]; then
amazon-linux-extras install epel python3.8
fi
@@ -212,7 +220,7 @@ elif [ "$os" == "centos7" ] || [ "$os" == "centos8" ] || [ "$os" == "centos9" ]
pkgs_python=()
pkgs_dev=(gcc gcc-c++ make glibc libstdc++ libgcc cmake3 sudo)
if [ "$os" == "centos7" ] || [ "$os" == "amzn2" ] ; then
if [ "$os" == "centos7" ] || [ "$os" == "amzn2" ]; then
pkgs_dev+=(pkgconfig)
else
pkgs_dev+=(pkgconf-pkg-config)
@@ -231,23 +239,23 @@ elif [ "$os" == "centos7" ] || [ "$os" == "centos8" ] || [ "$os" == "centos9" ]
[ "$os" == "centos8" ] || [ "$os" == "centos9" ] ||
[ "$os" == "amzn2022" ] || [ "$os" == "amzn2023" ] ||
[ "$os" == "anolis8.6" ] || [ "$os" == "anolis8.8" ] ||
[ "$os" == "openEuler20.03" ] || [ "$os" == "openEuler22.03" ] || [ "$os" == "openEuler23.03" ] || [ "$os" == "openEuler24.03" ] ; then
[ "$os" == "openEuler20.03" ] || [ "$os" == "openEuler22.03" ] || [ "$os" == "openEuler23.03" ] || [ "$os" == "openEuler24.03" ]; then
pkgs_python+=(python3 python3-pip)
fi
if [ "$os" == "centos7" ] || [ "$os" == "amzn2" ] ; then
if [ "$os" == "centos7" ] || [ "$os" == "amzn2" ]; then
pkgs_gpu+=("ocl-icd.$arch")
extra_repos+=("https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm")
elif [ "$os" == "rhel8" ] ; then
elif [ "$os" == "rhel8" ]; then
pkgs_gpu+=("http://vault.centos.org/centos/8-stream/AppStream/$arch/os/Packages/ocl-icd-2.2.12-1.el8.$arch.rpm")
pkgs_python+=(python38 python38-pip)
extra_repos+=("https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm")
elif [ "$os" == "rhel9.1" ] || [ "$os" == "rhel9.2" ] || [ "$os" == "rhel9.3" ] || [ "$os" == "rhel9.4" ] ; then
elif [ "$os" == "rhel9.1" ] || [ "$os" == "rhel9.2" ] || [ "$os" == "rhel9.3" ] || [ "$os" == "rhel9.4" ]; then
pkgs_gpu+=("https://mirror.stream.centos.org/9-stream/AppStream/$arch/os/Packages/ocl-icd-2.2.13-4.el9.$arch.rpm")
pkgs_python+=(python3 python3-pip)
extra_repos+=("https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm")
fi
elif [ "$os" == "opensuse-leap15.3" ] ; then
elif [ "$os" == "opensuse-leap15.3" ]; then
pkgs_gpu=(libOpenCL1)
pkgs_python=(python39-base python39 python39-venv python39-pip)
pkgs_dev=(cmake pkg-config gcc-c++ gcc make sudo)
@@ -260,13 +268,13 @@ fi
# Gather packages and print list
pkgs=()
for comp in "${comp[@]}" ; do
for comp in "${comp[@]}"; do
var="pkgs_${comp}[@]"
pkgs+=("${!var}")
done
if [ ${#pkgs[@]} -eq 0 ]; then
if [ -n "$print" ] ; then
if [ -n "$print" ]; then
echo "No packages to install" >&2
exit 1
else
@@ -275,7 +283,7 @@ if [ ${#pkgs[@]} -eq 0 ]; then
fi
fi
if [ -n "$print" ] ; then
if [ -n "$print" ]; then
echo "${pkgs[*]}"
exit 0
fi
@@ -294,7 +302,7 @@ iopt=
if [ "$os" == "debian9" ] || [ "$os" == "raspbian9" ] || [ "$os" == "ubuntu18.04" ] ||
[ "$os" == "debian10" ] || [ "$os" == "raspbian10" ] || [ "$os" == "ubuntu20.04" ] || [ "$os" == "ubuntu20.10" ] || [ "$os" == "ubuntu21.04" ] ||
[ "$os" == "debian11" ] || [ "$os" == "raspbian11" ] || [ "$os" == "ubuntu21.10" ] || [ "$os" == "ubuntu22.04" ] ||
[ "$os" == "debian12" ] || [ "$os" == "raspbian12" ] || [ "$os" == "debian13" ] || [ "$os" == "ubuntu22.10" ] || [ "$os" == "ubuntu23.04" ] || [ "$os" == "ubuntu23.10" ] || [ "$os" == "ubuntu24.04" ] || [ "$os" == "ubuntu26.04" ] ; then
[ "$os" == "debian12" ] || [ "$os" == "raspbian12" ] || [ "$os" == "debian13" ] || [ "$os" == "ubuntu22.10" ] || [ "$os" == "ubuntu23.04" ] || [ "$os" == "ubuntu23.10" ] || [ "$os" == "ubuntu24.04" ] || [ "$os" == "ubuntu26.04" ]; then
[ -z "$interactive" ] && iopt="-y"
[ -n "$dry" ] && iopt="--dry-run"
@@ -317,7 +325,7 @@ elif [ "$os" == "centos7" ] || [ "$os" == "centos8" ] || [ "$os" == "centos9" ]
[ "$os" == "rocky9.2" ] || [ "$os" == "rocky9.3" ] || [ "$os" == "rocky9.4" ] ||
[ "$os" == "almalinux8.7" ] || [ "$os" == "almalinux8.8" ] ||
[ "$os" == "almalinux9.2" ] || [ "$os" == "almalinux9.3" ] || [ "$os" == "almalinux9.4" ] ||
[ "$os" == "amzn2" ] || [ "$os" == "amzn2022" ] || [ "$os" == "amzn2023" ] ; then
[ "$os" == "amzn2" ] || [ "$os" == "amzn2022" ] || [ "$os" == "amzn2023" ]; then
# Usar dnf en Fedora moderna, yum en el resto
if [[ "$os" == fedora* ]]; then
@@ -333,7 +341,7 @@ elif [ "$os" == "centos7" ] || [ "$os" == "centos8" ] || [ "$os" == "centos9" ]
$PKGCMD install ${iopt:+$iopt} "${pkgs[@]}"
elif [ "$os" == "opensuse-leap15.3" ] ; then
elif [ "$os" == "opensuse-leap15.3" ]; then
[ -z "$interactive" ] && iopt="-y"
[ -n "$dry" ] && iopt="--dry-run"
Regular → Executable
+19 -13
View File
@@ -45,23 +45,24 @@ print_substep "System detected: $OS_ID $VERSION_ID"
# Prefix mapping
case "$OS_ID" in
debian)
debian)
PREFIX="ubuntu24" # Tested and working on Debian 13
;;
ubuntu)
ubuntu)
case "$VERSION_ID" in
22.04) PREFIX="ubuntu22" ;;
24.04|26.04) PREFIX="ubuntu24" ;;
24.04) PREFIX="ubuntu24" ;;
26.04) PREFIX="ubuntu26" ;;
*)
print_error "Unsupported Ubuntu version: $VERSION_ID"
exit 1
;;
esac
;;
fedora)
fedora)
PREFIX="rhel8"
;;
*)
*)
print_error "Unsupported distribution: $OS_ID"
exit 1
;;
@@ -72,14 +73,19 @@ esac
# ------------------------------------------------------------------------------
print_step "2. Detecting Intel GPU..."
if GPU_LINE=$(lspci -nn | grep -i "vga\|3d\|display" | grep -i "intel" | head -1); then
LSPCI_INTEL=$(lspci -nn 2>/dev/null | grep -i "vga\|3d\|display" | grep -i "intel" || true) # lspci missing -> empty -> prompt (documented degradation)
GPU_LINE="${LSPCI_INTEL%%$'\n'*}"
if [ -n "$GPU_LINE" ]; then
GPU_NAME=$(echo "$GPU_LINE" | awk -F': ' '{print $2}')
print_substep "Intel GPU detected: $GPU_NAME"
GPU_PRESENT=true
else
print_warning "No Intel GPU was detected."
GPU_PRESENT=false
read -p "Do you want to continue the installation WITHOUT GPU support? [y/n]: " response
read -r -p "Do you want to continue the installation WITHOUT GPU support? [y/n]: " response || {
print_error "No interactive input available (stdin closed). Installation cancelled."
exit 1
}
case "$response" in
[yY]*) ;;
*)
@@ -92,7 +98,7 @@ fi
# ------------------------------------------------------------------------------
# 3. Install NEO (only if there is a GPU)
# ------------------------------------------------------------------------------
if $GPU_PRESENT; then
if [ "$GPU_PRESENT" = true ]; then
print_step "3. Installing GPU drivers (Intel Compute Runtime NEO)..."
case "$OS_ID" in
debian)
@@ -113,8 +119,8 @@ fi
# 4. Download OpenVINO Runtime
# ------------------------------------------------------------------------------
print_step "4. Downloading OpenVINO Runtime package..."
BASE_URL="https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.0/linux"
VERSION="2026.0.0.20965.c6d6a13a886"
BASE_URL="https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.4/linux"
VERSION="2026.4.0.22959.99c81491cc3"
FILENAME="openvino_toolkit_${PREFIX}_${VERSION}_x86_64.tgz"
URL="$BASE_URL/$FILENAME"
@@ -143,8 +149,8 @@ bash "$CORE_DIR/openvino_logic.sh" --install "$FILENAME"
print_step "Installation completed successfully!"
# installed version
if [ -f "/opt/intel/openvino_2026.0/runtime/version.txt" ]; then
echo "Version: $(cat /opt/intel/openvino_2026.0/runtime/version.txt)"
if [ -f "/opt/intel/openvino_2026/runtime/version.txt" ]; then
echo "Version: $(cat /opt/intel/openvino_2026/runtime/version.txt)"
else
echo "Version: could not be determined"
fi
@@ -155,7 +161,7 @@ echo " source /opt/intel/openvino_2026/setupvars.sh"
echo ""
echo "----------------------------------------------------------------------"
if $GPU_PRESENT; then
if [ "$GPU_PRESENT" = true ]; then
echo "IMPORTANT NOTES:"
echo "1. Restart your session (or system) for the group changes (render, video) to take effect and for you to be able to use the GPU."
echo "2. Check the OpenCL status with: clinfo"
+23 -33
View File
@@ -11,9 +11,9 @@ print_step "Debian Module – Drivers and Multimedia"
print_substep "Ensuring non-free components in sources.list..."
SOURCES_FILE="/etc/apt/sources.list"
if [ -f "$SOURCES_FILE" ]; then
sudo sed -i 's/^\(deb.*trixie.*main\)[^#]*/\1 contrib non-free non-free-firmware/' "$SOURCES_FILE"
sudo sed -i 's/^\(deb.*trixie-security.*main\)[^#]*/\1 contrib non-free non-free-firmware/' "$SOURCES_FILE"
sudo sed -i 's/^\(deb.*trixie-updates.*main\)[^#]*/\1 contrib non-free non-free-firmware/' "$SOURCES_FILE"
sed -i 's/^\(deb.*trixie.*main\)[^#]*/\1 contrib non-free non-free-firmware/' "$SOURCES_FILE"
sed -i 's/^\(deb.*trixie-security.*main\)[^#]*/\1 contrib non-free non-free-firmware/' "$SOURCES_FILE"
sed -i 's/^\(deb.*trixie-updates.*main\)[^#]*/\1 contrib non-free non-free-firmware/' "$SOURCES_FILE"
fi
if [ -f /etc/apt/sources.list.d/debian.sources ]; then
@@ -27,7 +27,7 @@ print_substep "Installing graphics and diagnostic packages..."
apt-get install -y \
python3-numpy libmfx-gen1.2 libvpl2 libegl-mesa0 libegl1-mesa-dev libgbm1 \
libgl1-mesa-dri libglapi-mesa libgles2-mesa-dev libglx-mesa0 libxatracker2 \
mesa-va-drivers mesa-vdpau-drivers vainfo clinfo nvtop ocl-icd-libopencl1
mesa-libgallium vainfo clinfo nvtop ocl-icd-libopencl1
print_substep "Installing Intel video driver..."
if apt-get install -y intel-media-va-driver-non-free; then
@@ -41,15 +41,16 @@ fi
print_substep "Downloading and installing NEO…"
TEMP_DIR=$(mktemp -d)
cd "$TEMP_DIR"
trap 'rm -rf "$TEMP_DIR"' EXIT
# Hashes SHA256
declare -A NEO_HASHES=(
["intel-igc-core-2_2.34.4+21428_amd64.deb"]="1150de9f1b8c06aab0bf6e619a6c02ed4cd0c7b4135752ae74c82c8f8fb7acb2"
["intel-igc-opencl-2_2.34.4+21428_amd64.deb"]="f36cb8a6899353c61cc7261b650f287f4a652acadaad859103bdfc51f93b6e8a"
["intel-ocloc_26.18.38308.1-0_amd64.deb"]="74b98d91a92d59c487e4938175284e57d5a84ec35d9997a9d65fa4db3f51b96b"
["intel-opencl-icd_26.18.38308.1-0_amd64.deb"]="b2d0c924e56b3f9e5837774d68b0c67461b8633035d93ca18b1a8e3e5ead15fa"
["intel-igc-core-2_2.41.5+22716_amd64.deb"]="0a6e64a663ae65a0fa02d6912ae3b6b37cf85b90c21cc423fd9fef70aaf4f628"
["intel-igc-opencl-2_2.41.5+22716_amd64.deb"]="779e1b9e88098eb25711e9a8f67c2752665bad22f134aa40ed5649f6e1b87058"
["intel-ocloc_26.35.39758.10-0_amd64.deb"]="c64bff586edf2bd9b49f3e4c9c2be25e05c43466e4dafa2a2c3948d498c736b7"
["intel-opencl-icd_26.35.39758.10-0_amd64.deb"]="61712caaddeba3d38e4f79e2a0fb23fea25596ca2d72c3144c6eea2331ec4301"
["libigdgmm12_22.10.0_amd64.deb"]="6031a63d6e8a12ce61c14efc15f2c8e727061286e3820b8594e6d00615e04d54"
["libze-intel-gpu1_26.18.38308.1-0_amd64.deb"]="12b8254e6d3415c32cee9cd13943030b991d91212445c79fe1cc27176a72eca4"
["libze-intel-gpu1_26.35.39758.10-0_amd64.deb"]="c19a641b953d55aebbf1d51bec364a84bf629f985e02fbbe6dc70224c0e88470"
)
download_and_verify() {
@@ -64,32 +65,21 @@ download_and_verify() {
fi
}
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.34.4/intel-igc-core-2_2.34.4+21428_amd64.deb" \
"intel-igc-core-2_2.34.4+21428_amd64.deb" "${NEO_HASHES["intel-igc-core-2_2.34.4+21428_amd64.deb"]}"
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.34.4/intel-igc-opencl-2_2.34.4+21428_amd64.deb" \
"intel-igc-opencl-2_2.34.4+21428_amd64.deb" "${NEO_HASHES["intel-igc-opencl-2_2.34.4+21428_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.18.38308.1/intel-ocloc_26.18.38308.1-0_amd64.deb" \
"intel-ocloc_26.18.38308.1-0_amd64.deb" "${NEO_HASHES["intel-ocloc_26.18.38308.1-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.18.38308.1/intel-opencl-icd_26.18.38308.1-0_amd64.deb" \
"intel-opencl-icd_26.18.38308.1-0_amd64.deb" "${NEO_HASHES["intel-opencl-icd_26.18.38308.1-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.18.38308.1/libigdgmm12_22.10.0_amd64.deb" \
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.41.5/intel-igc-core-2_2.41.5+22716_amd64.deb" \
"intel-igc-core-2_2.41.5+22716_amd64.deb" "${NEO_HASHES["intel-igc-core-2_2.41.5+22716_amd64.deb"]}"
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.41.5/intel-igc-opencl-2_2.41.5+22716_amd64.deb" \
"intel-igc-opencl-2_2.41.5+22716_amd64.deb" "${NEO_HASHES["intel-igc-opencl-2_2.41.5+22716_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.35.39758.10/intel-ocloc_26.35.39758.10-0_amd64.deb" \
"intel-ocloc_26.35.39758.10-0_amd64.deb" "${NEO_HASHES["intel-ocloc_26.35.39758.10-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.35.39758.10/intel-opencl-icd_26.35.39758.10-0_amd64.deb" \
"intel-opencl-icd_26.35.39758.10-0_amd64.deb" "${NEO_HASHES["intel-opencl-icd_26.35.39758.10-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.35.39758.10/libigdgmm12_22.10.0_amd64.deb" \
"libigdgmm12_22.10.0_amd64.deb" "${NEO_HASHES["libigdgmm12_22.10.0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.18.38308.1/libze-intel-gpu1_26.18.38308.1-0_amd64.deb" \
"libze-intel-gpu1_26.18.38308.1-0_amd64.deb" "${NEO_HASHES["libze-intel-gpu1_26.18.38308.1-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.35.39758.10/libze-intel-gpu1_26.35.39758.10-0_amd64.deb" \
"libze-intel-gpu1_26.35.39758.10-0_amd64.deb" "${NEO_HASHES["libze-intel-gpu1_26.35.39758.10-0_amd64.deb"]}"
print_substep "Instalando paquetes deb..."
dpkg -i libigdgmm12_22.10.0_amd64.deb
dpkg -i intel-igc-core-2_2.34.4+21428_amd64.deb
dpkg -i intel-igc-opencl-2_2.34.4+21428_amd64.deb
dpkg -i intel-ocloc_26.18.38308.1-0_amd64.deb
dpkg -i libze-intel-gpu1_26.18.38308.1-0_amd64.deb
dpkg -i intel-opencl-icd_26.18.38308.1-0_amd64.deb
apt-get install -f -y
apt-get install -y ./*.deb
cd /
rm -rf "$TEMP_DIR"
@@ -100,6 +90,6 @@ if [ -n "${SUDO_USER:-}" ]; then
usermod -a -G render,video "$SUDO_USER"
else
# root
current_user=$(logname 2>/dev/null || echo "$USER")
current_user="${SUDO_USER:-$(logname 2>/dev/null || id -un)}"
usermod -a -G render,video "$current_user"
fi
+1 -1
View File
@@ -23,6 +23,6 @@ print_substep "Adding user to render and video groups (if they exist)..."
if [ -n "${SUDO_USER:-}" ]; then
usermod -a -G render,video "$SUDO_USER"
else
current_user=$(logname 2>/dev/null || echo "$USER")
current_user="${SUDO_USER:-$(logname 2>/dev/null || id -un)}"
usermod -a -G render,video "$current_user"
fi
+25 -29
View File
@@ -12,6 +12,12 @@ apt-get update
# ---- 2. Paquetes multimedia y diagnóstico ----
print_substep "Installing graphics and diagnostic packages..."
# TODO (H0 watch-out): Debian 13 required dropping mesa-va-drivers AND mesa-vdpau-drivers
# in favor of mesa-libgallium (Mesa >= 25.2 moved the gallium VA-API and VDPAU drivers into
# mesa-libgallium, which Breaks both old names < 25.2.8-3; no amd64 version >= 25.2.8-3
# exists in trixie nor backports -- see setup_debian.sh). Ubuntu 24.04 is not affected
# (mesa 24.x, real packages). Ubuntu 26.04 may be affected if it ships Mesa >= 25.2 (same
# transition) -- change only with evidence.
apt-get install -y \
python3-numpy libmfx-gen1.2 libvpl2 libegl-mesa0 libegl1-mesa-dev libgbm1 \
libgl1-mesa-dri libglapi-mesa libgles2-mesa-dev libglx-mesa0 libxatracker2 \
@@ -24,14 +30,15 @@ apt-get install -y intel-media-va-driver-non-free
print_substep "Downloading and installing NEO…"
TEMP_DIR=$(mktemp -d)
cd "$TEMP_DIR"
trap 'rm -rf "$TEMP_DIR"' EXIT
declare -A NEO_HASHES=(
["intel-igc-core-2_2.34.4+21428_amd64.deb"]="1150de9f1b8c06aab0bf6e619a6c02ed4cd0c7b4135752ae74c82c8f8fb7acb2"
["intel-igc-opencl-2_2.34.4+21428_amd64.deb"]="f36cb8a6899353c61cc7261b650f287f4a652acadaad859103bdfc51f93b6e8a"
["intel-ocloc_26.18.38308.1-0_amd64.deb"]="74b98d91a92d59c487e4938175284e57d5a84ec35d9997a9d65fa4db3f51b96b"
["intel-opencl-icd_26.18.38308.1-0_amd64.deb"]="b2d0c924e56b3f9e5837774d68b0c67461b8633035d93ca18b1a8e3e5ead15fa"
["intel-igc-core-2_2.41.5+22716_amd64.deb"]="0a6e64a663ae65a0fa02d6912ae3b6b37cf85b90c21cc423fd9fef70aaf4f628"
["intel-igc-opencl-2_2.41.5+22716_amd64.deb"]="779e1b9e88098eb25711e9a8f67c2752665bad22f134aa40ed5649f6e1b87058"
["intel-ocloc_26.35.39758.10-0_amd64.deb"]="c64bff586edf2bd9b49f3e4c9c2be25e05c43466e4dafa2a2c3948d498c736b7"
["intel-opencl-icd_26.35.39758.10-0_amd64.deb"]="61712caaddeba3d38e4f79e2a0fb23fea25596ca2d72c3144c6eea2331ec4301"
["libigdgmm12_22.10.0_amd64.deb"]="6031a63d6e8a12ce61c14efc15f2c8e727061286e3820b8594e6d00615e04d54"
["libze-intel-gpu1_26.18.38308.1-0_amd64.deb"]="12b8254e6d3415c32cee9cd13943030b991d91212445c79fe1cc27176a72eca4"
["libze-intel-gpu1_26.35.39758.10-0_amd64.deb"]="c19a641b953d55aebbf1d51bec364a84bf629f985e02fbbe6dc70224c0e88470"
)
download_and_verify() {
@@ -46,31 +53,20 @@ download_and_verify() {
fi
}
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.34.4/intel-igc-core-2_2.34.4+21428_amd64.deb" \
"intel-igc-core-2_2.34.4+21428_amd64.deb" "${NEO_HASHES["intel-igc-core-2_2.34.4+21428_amd64.deb"]}"
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.34.4/intel-igc-opencl-2_2.34.4+21428_amd64.deb" \
"intel-igc-opencl-2_2.34.4+21428_amd64.deb" "${NEO_HASHES["intel-igc-opencl-2_2.34.4+21428_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.18.38308.1/intel-ocloc_26.18.38308.1-0_amd64.deb" \
"intel-ocloc_26.18.38308.1-0_amd64.deb" "${NEO_HASHES["intel-ocloc_26.18.38308.1-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.18.38308.1/intel-opencl-icd_26.18.38308.1-0_amd64.deb" \
"intel-opencl-icd_26.18.38308.1-0_amd64.deb" "${NEO_HASHES["intel-opencl-icd_26.18.38308.1-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.18.38308.1/libigdgmm12_22.10.0_amd64.deb" \
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.41.5/intel-igc-core-2_2.41.5+22716_amd64.deb" \
"intel-igc-core-2_2.41.5+22716_amd64.deb" "${NEO_HASHES["intel-igc-core-2_2.41.5+22716_amd64.deb"]}"
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.41.5/intel-igc-opencl-2_2.41.5+22716_amd64.deb" \
"intel-igc-opencl-2_2.41.5+22716_amd64.deb" "${NEO_HASHES["intel-igc-opencl-2_2.41.5+22716_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.35.39758.10/intel-ocloc_26.35.39758.10-0_amd64.deb" \
"intel-ocloc_26.35.39758.10-0_amd64.deb" "${NEO_HASHES["intel-ocloc_26.35.39758.10-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.35.39758.10/intel-opencl-icd_26.35.39758.10-0_amd64.deb" \
"intel-opencl-icd_26.35.39758.10-0_amd64.deb" "${NEO_HASHES["intel-opencl-icd_26.35.39758.10-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.35.39758.10/libigdgmm12_22.10.0_amd64.deb" \
"libigdgmm12_22.10.0_amd64.deb" "${NEO_HASHES["libigdgmm12_22.10.0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.18.38308.1/libze-intel-gpu1_26.18.38308.1-0_amd64.deb" \
"libze-intel-gpu1_26.18.38308.1-0_amd64.deb" "${NEO_HASHES["libze-intel-gpu1_26.18.38308.1-0_amd64.deb"]}"
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.35.39758.10/libze-intel-gpu1_26.35.39758.10-0_amd64.deb" \
"libze-intel-gpu1_26.35.39758.10-0_amd64.deb" "${NEO_HASHES["libze-intel-gpu1_26.35.39758.10-0_amd64.deb"]}"
dpkg -i libigdgmm12_22.10.0_amd64.deb
dpkg -i intel-igc-core-2_2.34.4+21428_amd64.deb
dpkg -i intel-igc-opencl-2_2.34.4+21428_amd64.deb
dpkg -i intel-ocloc_26.18.38308.1-0_amd64.deb
dpkg -i libze-intel-gpu1_26.18.38308.1-0_amd64.deb
dpkg -i intel-opencl-icd_26.18.38308.1-0_amd64.deb
apt-get install -f -y
apt-get install -y ./*.deb
cd /
rm -rf "$TEMP_DIR"
@@ -80,6 +76,6 @@ print_substep "Añadiendo usuario a grupos render y video..."
if [ -n "${SUDO_USER:-}" ]; then
usermod -a -G render,video "$SUDO_USER"
else
current_user=$(logname 2>/dev/null || echo "$USER")
current_user="${SUDO_USER:-$(logname 2>/dev/null || id -un)}"
usermod -a -G render,video "$current_user"
fi