mirror of
https://github.com/stornic56/openvino-runtime-simple-installer.git
synced 2026-10-31 21:18:08 +00:00
update openvino + neo + igc
- Real update capability (derived INSTALL_DIR, replace policy, stable symlink) - Mesa >= 25.2 transition fix on Debian 13 (mesa-va-drivers/vdpau) - Robustness: SIGPIPE fixes, dead repair code, EOF stdin, unbound vars, trap cleanup (modules + --install), strict booleans, set -euo pipefail in deps/ - Ubuntu 22.04 doc alignment - Validated end-to-end on Debian 13 + Arc B580 (clinfo 26.31, vainfo iHD OK)"
This commit is contained in:
@@ -5,6 +5,7 @@ This project repository provides a comprehensive automated installation and conf
|
|||||||
## Supported Operating Systems
|
## Supported Operating Systems
|
||||||
|
|
||||||
* Debian 13
|
* Debian 13
|
||||||
|
* Ubuntu 22.04
|
||||||
* Ubuntu 24.04
|
* Ubuntu 24.04
|
||||||
* Ubuntu 26.04
|
* Ubuntu 26.04
|
||||||
* Fedora 43
|
* 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.
|
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
|
### Setup & Clone Repository
|
||||||
|
|
||||||
First, clone the repository from GitHub:
|
First, clone the repository from GitHub:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Clone the installer repository
|
# 1. Clone the installer repository
|
||||||
git clone https://github.com/stornic56/openvino-runtime-simple-installer
|
git clone https://github.com/stornic56/openvino-runtime-simple-installer
|
||||||
@@ -27,7 +30,9 @@ chmod +x main.sh
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Execution
|
### Execution
|
||||||
|
|
||||||
Execute the primary installation script using elevated privileges (root access is mandatory):
|
Execute the primary installation script using elevated privileges (root access is mandatory):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo ./main.sh
|
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:
|
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:**
|
**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.3.1:** The complete runtime package is downloaded from the official OpenVINO repository (`https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.3.1/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`).
|
* **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):**
|
**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 Compute Runtime NEO (26.31.39395.13):** If an Intel GPU is detected, the respective module script installs critical proprietary drivers:
|
||||||
* `intel-igc-opencl`: OpenCL interface libraries for graphics compilation.
|
* `intel-igc-core` (2.40.13): Graphics Compiler core components.
|
||||||
|
* `intel-igc-opencl` (2.40.13): OpenCL interface libraries for graphics compilation.
|
||||||
* `intel-ocloc`/`libze-intel-gpu1`: Compute Runtime interfaces and GPU acceleration layers (OpenCL/oneAPI).
|
* `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.
|
* **Multimedia Support:** Installation of `mesa-va-drivers`, `vainfo`, and related packages to ensure Video Acceleration API support, crucial for media inference tasks.
|
||||||
|
|
||||||
**Environment Configuration:**
|
**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
|
## After Installation
|
||||||
|
|
||||||
@@ -66,8 +73,10 @@ clinfo | grep -i "device name"
|
|||||||
4. Check video acceleration
|
4. Check video acceleration
|
||||||
vainfo
|
vainfo
|
||||||
```
|
```
|
||||||
## Note:
|
|
||||||
|
## Note
|
||||||
|
|
||||||
Users should reference the following official projects:
|
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)
|
* 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)
|
* 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)
|
* Intel NEO Drivers: [Intel Compute Runtime](https://github.com/intel/compute-runtime)
|
||||||
|
|||||||
+30
-15
@@ -17,30 +17,45 @@ if [ "$1" = "--install" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Clean up any previous installation before proceeding
|
# Derive destination from version (official doc pattern: year.patch)
|
||||||
if [ -d "/opt/intel/openvino_2026.0" ]; then
|
# e.g. openvino_toolkit_ubuntu24_<VERSION>_x86_64.tgz -> /opt/intel/openvino_<YEAR.PATCH>
|
||||||
print_warning "An existing OpenVINO installation was found. Removing it..."
|
VERSION_FULL="$(echo "$FILENAME" | cut -d_ -f4)"
|
||||||
rm -rf "/opt/intel/openvino_2026.0"
|
case "$VERSION_FULL" in
|
||||||
fi
|
20[0-9][0-9].*) ;; # valid version format, continue
|
||||||
if [ -L "/opt/intel/openvino_2026" ]; then
|
*)
|
||||||
rm -f "/opt/intel/openvino_2026"
|
print_error "Could not derive version from: $FILENAME"
|
||||||
fi
|
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..."
|
print_substep "Unzipping $FILENAME..."
|
||||||
tar -xf "$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
|
if [ ! -d "$DIRNAME" ]; then
|
||||||
# guess the real name
|
# 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
|
fi
|
||||||
print_substep "Moving $DIRNAME a /opt/intel/openvino_2026.0..."
|
print_substep "Moving $DIRNAME a $INSTALL_DIR..."
|
||||||
mkdir -p /opt/intel
|
mv "$DIRNAME" "$INSTALL_DIR"
|
||||||
mv "$DIRNAME" "/opt/intel/openvino_2026.0"
|
|
||||||
|
|
||||||
print_substep "Create symbolic link /opt/intel/openvino_2026..."
|
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
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
+18
-10
@@ -6,7 +6,7 @@
|
|||||||
# Modified by stornic56 (2026) to add support for Debian 13 (Trixie), Ubuntu 26.04,
|
# 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.
|
# and Python 3.13 dependencies. Also ensures dnf is used on Fedora.
|
||||||
|
|
||||||
set -e
|
set -euo pipefail
|
||||||
|
|
||||||
#===================================================================================================
|
#===================================================================================================
|
||||||
# Option parsing
|
# Option parsing
|
||||||
@@ -26,7 +26,7 @@ keepcache=
|
|||||||
selftest=
|
selftest=
|
||||||
|
|
||||||
while :; do
|
while :; do
|
||||||
case $1 in
|
case "${1:-}" in
|
||||||
-h | -\? | --help)
|
-h | -\? | --help)
|
||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -y non-interactive run (off)"
|
echo " -y non-interactive run (off)"
|
||||||
@@ -109,8 +109,13 @@ fi
|
|||||||
# OS detection
|
# OS detection
|
||||||
|
|
||||||
if [ "$os" == "auto" ]; then
|
if [ "$os" == "auto" ]; then
|
||||||
# shellcheck source=/dev/null
|
os=""
|
||||||
os=$( . /etc/os-release ; echo "${ID}${VERSION_ID}" )
|
if [ -f /etc/os-release ]; then
|
||||||
|
os=$(
|
||||||
|
. /etc/os-release
|
||||||
|
echo "${ID:-}${VERSION_ID:-}"
|
||||||
|
)
|
||||||
|
fi
|
||||||
if [[ "$os" =~ "rhel8".* ]]; then
|
if [[ "$os" =~ "rhel8".* ]]; then
|
||||||
os="rhel8"
|
os="rhel8"
|
||||||
fi
|
fi
|
||||||
@@ -133,7 +138,10 @@ if [ "$os" == "auto" ] ; then
|
|||||||
raspbian10 | debian10 | ubuntu20.04 | ubuntu20.10 | ubuntu21.04 | \
|
raspbian10 | debian10 | ubuntu20.04 | ubuntu20.10 | ubuntu21.04 | \
|
||||||
raspbian11 | debian11 | ubuntu21.10 | ubuntu22.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}" ;;
|
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 ;;
|
*)
|
||||||
|
echo "Unsupported OS: ${os:-detection failed}" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -152,9 +160,9 @@ elif [ "$os" == "ubuntu18.04" ] ; then
|
|||||||
pkgs_python=(python3.8 libpython3.8 python3.8-venv python3-pip)
|
pkgs_python=(python3.8 libpython3.8 python3.8-venv python3-pip)
|
||||||
pkgs_dev=(cmake pkg-config g++ gcc libc6-dev make sudo)
|
pkgs_dev=(cmake pkg-config g++ gcc libc6-dev make sudo)
|
||||||
|
|
||||||
elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "debian10" ] || [ "$os" == "raspbian10" ] || \
|
elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "debian10" ] || [ "$os" == "raspbian10" ] ||
|
||||||
[ "$os" == "ubuntu21.10" ] || [ "$os" == "ubuntu22.04" ] || [ "$os" == "debian11" ] || [ "$os" == "raspbian11" ] || \
|
[ "$os" == "ubuntu21.10" ] || [ "$os" == "ubuntu22.04" ] || [ "$os" == "debian11" ] || [ "$os" == "raspbian11" ] ||
|
||||||
[ "$os" == "ubuntu22.10" ] || [ "$os" == "ubuntu23.04" ] || [ "$os" == "ubuntu24.04" ] || [ "$os" == "debian12" ] || [ "$os" == "raspbian12" ] || \
|
[ "$os" == "ubuntu22.10" ] || [ "$os" == "ubuntu23.04" ] || [ "$os" == "ubuntu24.04" ] || [ "$os" == "debian12" ] || [ "$os" == "raspbian12" ] ||
|
||||||
[ "$os" == "debian13" ] || [ "$os" == "ubuntu26.04" ]; then
|
[ "$os" == "debian13" ] || [ "$os" == "ubuntu26.04" ]; then
|
||||||
|
|
||||||
pkgs_gpu=(ocl-icd-libopencl1)
|
pkgs_gpu=(ocl-icd-libopencl1)
|
||||||
@@ -165,10 +173,10 @@ elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "debian10" ] || [ "$os" == "raspbi
|
|||||||
pkgs_python+=(libpython3.7)
|
pkgs_python+=(libpython3.7)
|
||||||
elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "ubuntu20.10" ] || [ "$os" == "ubuntu21.04" ]; then
|
elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "ubuntu20.10" ] || [ "$os" == "ubuntu21.04" ]; then
|
||||||
pkgs_python+=(libpython3.8)
|
pkgs_python+=(libpython3.8)
|
||||||
elif [ "$os" == "ubuntu21.10" ] || \
|
elif [ "$os" == "ubuntu21.10" ] ||
|
||||||
[ "$os" == "debian11" ] || [ "$os" == "raspbian11" ]; then
|
[ "$os" == "debian11" ] || [ "$os" == "raspbian11" ]; then
|
||||||
pkgs_python+=(libpython3.9)
|
pkgs_python+=(libpython3.9)
|
||||||
elif [ "$os" == "ubuntu22.04" ] || [ "$os" == "ubuntu22.10" ] || \
|
elif [ "$os" == "ubuntu22.04" ] || [ "$os" == "ubuntu22.10" ] ||
|
||||||
[ "$os" == "debian12" ] || [ "$os" == "raspbian12" ]; then
|
[ "$os" == "debian12" ] || [ "$os" == "raspbian12" ]; then
|
||||||
pkgs_python+=(libpython3.10)
|
pkgs_python+=(libpython3.10)
|
||||||
elif [ "$os" == "ubuntu23.04" ]; then
|
elif [ "$os" == "ubuntu23.04" ]; then
|
||||||
|
|||||||
@@ -51,7 +51,8 @@ case "$OS_ID" in
|
|||||||
ubuntu)
|
ubuntu)
|
||||||
case "$VERSION_ID" in
|
case "$VERSION_ID" in
|
||||||
22.04) PREFIX="ubuntu22" ;;
|
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"
|
print_error "Unsupported Ubuntu version: $VERSION_ID"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -72,14 +73,19 @@ esac
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
print_step "2. Detecting Intel GPU..."
|
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}')
|
GPU_NAME=$(echo "$GPU_LINE" | awk -F': ' '{print $2}')
|
||||||
print_substep "Intel GPU detected: $GPU_NAME"
|
print_substep "Intel GPU detected: $GPU_NAME"
|
||||||
GPU_PRESENT=true
|
GPU_PRESENT=true
|
||||||
else
|
else
|
||||||
print_warning "No Intel GPU was detected."
|
print_warning "No Intel GPU was detected."
|
||||||
GPU_PRESENT=false
|
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
|
case "$response" in
|
||||||
[yY]*) ;;
|
[yY]*) ;;
|
||||||
*)
|
*)
|
||||||
@@ -92,7 +98,7 @@ fi
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# 3. Install NEO (only if there is a GPU)
|
# 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)..."
|
print_step "3. Installing GPU drivers (Intel Compute Runtime NEO)..."
|
||||||
case "$OS_ID" in
|
case "$OS_ID" in
|
||||||
debian)
|
debian)
|
||||||
@@ -113,8 +119,8 @@ fi
|
|||||||
# 4. Download OpenVINO Runtime
|
# 4. Download OpenVINO Runtime
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
print_step "4. Downloading OpenVINO Runtime package..."
|
print_step "4. Downloading OpenVINO Runtime package..."
|
||||||
BASE_URL="https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.0/linux"
|
BASE_URL="https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.3.1/linux"
|
||||||
VERSION="2026.0.0.20965.c6d6a13a886"
|
VERSION="2026.3.1.22476.56d9685302d"
|
||||||
FILENAME="openvino_toolkit_${PREFIX}_${VERSION}_x86_64.tgz"
|
FILENAME="openvino_toolkit_${PREFIX}_${VERSION}_x86_64.tgz"
|
||||||
URL="$BASE_URL/$FILENAME"
|
URL="$BASE_URL/$FILENAME"
|
||||||
|
|
||||||
@@ -143,8 +149,8 @@ bash "$CORE_DIR/openvino_logic.sh" --install "$FILENAME"
|
|||||||
print_step "Installation completed successfully!"
|
print_step "Installation completed successfully!"
|
||||||
|
|
||||||
# installed version
|
# installed version
|
||||||
if [ -f "/opt/intel/openvino_2026.0/runtime/version.txt" ]; then
|
if [ -f "/opt/intel/openvino_2026/runtime/version.txt" ]; then
|
||||||
echo "Version: $(cat /opt/intel/openvino_2026.0/runtime/version.txt)"
|
echo "Version: $(cat /opt/intel/openvino_2026/runtime/version.txt)"
|
||||||
else
|
else
|
||||||
echo "Version: could not be determined"
|
echo "Version: could not be determined"
|
||||||
fi
|
fi
|
||||||
@@ -155,7 +161,7 @@ echo " source /opt/intel/openvino_2026/setupvars.sh"
|
|||||||
echo ""
|
echo ""
|
||||||
echo "----------------------------------------------------------------------"
|
echo "----------------------------------------------------------------------"
|
||||||
|
|
||||||
if $GPU_PRESENT; then
|
if [ "$GPU_PRESENT" = true ]; then
|
||||||
echo "IMPORTANT NOTES:"
|
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 "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"
|
echo "2. Check the OpenCL status with: clinfo"
|
||||||
|
|||||||
+23
-33
@@ -11,9 +11,9 @@ print_step "Debian Module – Drivers and Multimedia"
|
|||||||
print_substep "Ensuring non-free components in sources.list..."
|
print_substep "Ensuring non-free components in sources.list..."
|
||||||
SOURCES_FILE="/etc/apt/sources.list"
|
SOURCES_FILE="/etc/apt/sources.list"
|
||||||
if [ -f "$SOURCES_FILE" ]; then
|
if [ -f "$SOURCES_FILE" ]; then
|
||||||
sudo sed -i 's/^\(deb.*trixie.*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"
|
||||||
sudo sed -i 's/^\(deb.*trixie-security.*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"
|
||||||
sudo sed -i 's/^\(deb.*trixie-updates.*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
|
fi
|
||||||
|
|
||||||
if [ -f /etc/apt/sources.list.d/debian.sources ]; then
|
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 \
|
apt-get install -y \
|
||||||
python3-numpy libmfx-gen1.2 libvpl2 libegl-mesa0 libegl1-mesa-dev libgbm1 \
|
python3-numpy libmfx-gen1.2 libvpl2 libegl-mesa0 libegl1-mesa-dev libgbm1 \
|
||||||
libgl1-mesa-dri libglapi-mesa libgles2-mesa-dev libglx-mesa0 libxatracker2 \
|
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..."
|
print_substep "Installing Intel video driver..."
|
||||||
if apt-get install -y intel-media-va-driver-non-free; then
|
if apt-get install -y intel-media-va-driver-non-free; then
|
||||||
@@ -41,15 +41,16 @@ fi
|
|||||||
print_substep "Downloading and installing NEO…"
|
print_substep "Downloading and installing NEO…"
|
||||||
TEMP_DIR=$(mktemp -d)
|
TEMP_DIR=$(mktemp -d)
|
||||||
cd "$TEMP_DIR"
|
cd "$TEMP_DIR"
|
||||||
|
trap 'rm -rf "$TEMP_DIR"' EXIT
|
||||||
|
|
||||||
# Hashes SHA256
|
# Hashes SHA256
|
||||||
declare -A NEO_HASHES=(
|
declare -A NEO_HASHES=(
|
||||||
["intel-igc-core-2_2.34.4+21428_amd64.deb"]="1150de9f1b8c06aab0bf6e619a6c02ed4cd0c7b4135752ae74c82c8f8fb7acb2"
|
["intel-igc-core-2_2.40.13+22418_amd64.deb"]="ebd795e9fddf303a9b24b7f04545d8ddd9ad1f85b3d0cb1166476fab24da6d44"
|
||||||
["intel-igc-opencl-2_2.34.4+21428_amd64.deb"]="f36cb8a6899353c61cc7261b650f287f4a652acadaad859103bdfc51f93b6e8a"
|
["intel-igc-opencl-2_2.40.13+22418_amd64.deb"]="4f990874efc11c3f6091a663b08aef576c4af592dcd8f12e116f8c2fc92d34d9"
|
||||||
["intel-ocloc_26.18.38308.1-0_amd64.deb"]="74b98d91a92d59c487e4938175284e57d5a84ec35d9997a9d65fa4db3f51b96b"
|
["intel-ocloc_26.31.39395.13-0_amd64.deb"]="12c5e61ed1dca5cbf38494e280abf88100a451580d57c44f601a17d9727e465e"
|
||||||
["intel-opencl-icd_26.18.38308.1-0_amd64.deb"]="b2d0c924e56b3f9e5837774d68b0c67461b8633035d93ca18b1a8e3e5ead15fa"
|
["intel-opencl-icd_26.31.39395.13-0_amd64.deb"]="5a9c9e8fdca8a2f9e22754b1a4618c7babf21d7c3ab3503c680005007c7a8c44"
|
||||||
["libigdgmm12_22.10.0_amd64.deb"]="6031a63d6e8a12ce61c14efc15f2c8e727061286e3820b8594e6d00615e04d54"
|
["libigdgmm12_22.10.0_amd64.deb"]="6031a63d6e8a12ce61c14efc15f2c8e727061286e3820b8594e6d00615e04d54"
|
||||||
["libze-intel-gpu1_26.18.38308.1-0_amd64.deb"]="12b8254e6d3415c32cee9cd13943030b991d91212445c79fe1cc27176a72eca4"
|
["libze-intel-gpu1_26.31.39395.13-0_amd64.deb"]="1722943f81b576b9bb8d61016464208f48ce533dc3bf24ad39605293115cc289"
|
||||||
)
|
)
|
||||||
|
|
||||||
download_and_verify() {
|
download_and_verify() {
|
||||||
@@ -64,32 +65,21 @@ download_and_verify() {
|
|||||||
fi
|
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" \
|
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.40.13/intel-igc-core-2_2.40.13+22418_amd64.deb" \
|
||||||
"intel-igc-core-2_2.34.4+21428_amd64.deb" "${NEO_HASHES["intel-igc-core-2_2.34.4+21428_amd64.deb"]}"
|
"intel-igc-core-2_2.40.13+22418_amd64.deb" "${NEO_HASHES["intel-igc-core-2_2.40.13+22418_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" \
|
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.40.13/intel-igc-opencl-2_2.40.13+22418_amd64.deb" \
|
||||||
"intel-igc-opencl-2_2.34.4+21428_amd64.deb" "${NEO_HASHES["intel-igc-opencl-2_2.34.4+21428_amd64.deb"]}"
|
"intel-igc-opencl-2_2.40.13+22418_amd64.deb" "${NEO_HASHES["intel-igc-opencl-2_2.40.13+22418_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" \
|
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.31.39395.13/intel-ocloc_26.31.39395.13-0_amd64.deb" \
|
||||||
"intel-ocloc_26.18.38308.1-0_amd64.deb" "${NEO_HASHES["intel-ocloc_26.18.38308.1-0_amd64.deb"]}"
|
"intel-ocloc_26.31.39395.13-0_amd64.deb" "${NEO_HASHES["intel-ocloc_26.31.39395.13-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" \
|
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.31.39395.13/intel-opencl-icd_26.31.39395.13-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"]}"
|
"intel-opencl-icd_26.31.39395.13-0_amd64.deb" "${NEO_HASHES["intel-opencl-icd_26.31.39395.13-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/compute-runtime/releases/download/26.31.39395.13/libigdgmm12_22.10.0_amd64.deb" \
|
||||||
"libigdgmm12_22.10.0_amd64.deb" "${NEO_HASHES["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" \
|
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.31.39395.13/libze-intel-gpu1_26.31.39395.13-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"]}"
|
"libze-intel-gpu1_26.31.39395.13-0_amd64.deb" "${NEO_HASHES["libze-intel-gpu1_26.31.39395.13-0_amd64.deb"]}"
|
||||||
|
|
||||||
print_substep "Instalando paquetes deb..."
|
print_substep "Instalando paquetes deb..."
|
||||||
dpkg -i libigdgmm12_22.10.0_amd64.deb
|
apt-get install -y ./*.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
|
|
||||||
|
|
||||||
cd /
|
cd /
|
||||||
rm -rf "$TEMP_DIR"
|
rm -rf "$TEMP_DIR"
|
||||||
@@ -100,6 +90,6 @@ if [ -n "${SUDO_USER:-}" ]; then
|
|||||||
usermod -a -G render,video "$SUDO_USER"
|
usermod -a -G render,video "$SUDO_USER"
|
||||||
else
|
else
|
||||||
# root
|
# 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"
|
usermod -a -G render,video "$current_user"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -23,6 +23,6 @@ print_substep "Adding user to render and video groups (if they exist)..."
|
|||||||
if [ -n "${SUDO_USER:-}" ]; then
|
if [ -n "${SUDO_USER:-}" ]; then
|
||||||
usermod -a -G render,video "$SUDO_USER"
|
usermod -a -G render,video "$SUDO_USER"
|
||||||
else
|
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"
|
usermod -a -G render,video "$current_user"
|
||||||
fi
|
fi
|
||||||
|
|||||||
+25
-29
@@ -12,6 +12,12 @@ apt-get update
|
|||||||
|
|
||||||
# ---- 2. Paquetes multimedia y diagnóstico ----
|
# ---- 2. Paquetes multimedia y diagnóstico ----
|
||||||
print_substep "Installing graphics and diagnostic packages..."
|
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 \
|
apt-get install -y \
|
||||||
python3-numpy libmfx-gen1.2 libvpl2 libegl-mesa0 libegl1-mesa-dev libgbm1 \
|
python3-numpy libmfx-gen1.2 libvpl2 libegl-mesa0 libegl1-mesa-dev libgbm1 \
|
||||||
libgl1-mesa-dri libglapi-mesa libgles2-mesa-dev libglx-mesa0 libxatracker2 \
|
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…"
|
print_substep "Downloading and installing NEO…"
|
||||||
TEMP_DIR=$(mktemp -d)
|
TEMP_DIR=$(mktemp -d)
|
||||||
cd "$TEMP_DIR"
|
cd "$TEMP_DIR"
|
||||||
|
trap 'rm -rf "$TEMP_DIR"' EXIT
|
||||||
|
|
||||||
declare -A NEO_HASHES=(
|
declare -A NEO_HASHES=(
|
||||||
["intel-igc-core-2_2.34.4+21428_amd64.deb"]="1150de9f1b8c06aab0bf6e619a6c02ed4cd0c7b4135752ae74c82c8f8fb7acb2"
|
["intel-igc-core-2_2.40.13+22418_amd64.deb"]="ebd795e9fddf303a9b24b7f04545d8ddd9ad1f85b3d0cb1166476fab24da6d44"
|
||||||
["intel-igc-opencl-2_2.34.4+21428_amd64.deb"]="f36cb8a6899353c61cc7261b650f287f4a652acadaad859103bdfc51f93b6e8a"
|
["intel-igc-opencl-2_2.40.13+22418_amd64.deb"]="4f990874efc11c3f6091a663b08aef576c4af592dcd8f12e116f8c2fc92d34d9"
|
||||||
["intel-ocloc_26.18.38308.1-0_amd64.deb"]="74b98d91a92d59c487e4938175284e57d5a84ec35d9997a9d65fa4db3f51b96b"
|
["intel-ocloc_26.31.39395.13-0_amd64.deb"]="12c5e61ed1dca5cbf38494e280abf88100a451580d57c44f601a17d9727e465e"
|
||||||
["intel-opencl-icd_26.18.38308.1-0_amd64.deb"]="b2d0c924e56b3f9e5837774d68b0c67461b8633035d93ca18b1a8e3e5ead15fa"
|
["intel-opencl-icd_26.31.39395.13-0_amd64.deb"]="5a9c9e8fdca8a2f9e22754b1a4618c7babf21d7c3ab3503c680005007c7a8c44"
|
||||||
["libigdgmm12_22.10.0_amd64.deb"]="6031a63d6e8a12ce61c14efc15f2c8e727061286e3820b8594e6d00615e04d54"
|
["libigdgmm12_22.10.0_amd64.deb"]="6031a63d6e8a12ce61c14efc15f2c8e727061286e3820b8594e6d00615e04d54"
|
||||||
["libze-intel-gpu1_26.18.38308.1-0_amd64.deb"]="12b8254e6d3415c32cee9cd13943030b991d91212445c79fe1cc27176a72eca4"
|
["libze-intel-gpu1_26.31.39395.13-0_amd64.deb"]="1722943f81b576b9bb8d61016464208f48ce533dc3bf24ad39605293115cc289"
|
||||||
)
|
)
|
||||||
|
|
||||||
download_and_verify() {
|
download_and_verify() {
|
||||||
@@ -46,31 +53,20 @@ download_and_verify() {
|
|||||||
fi
|
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" \
|
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.40.13/intel-igc-core-2_2.40.13+22418_amd64.deb" \
|
||||||
"intel-igc-core-2_2.34.4+21428_amd64.deb" "${NEO_HASHES["intel-igc-core-2_2.34.4+21428_amd64.deb"]}"
|
"intel-igc-core-2_2.40.13+22418_amd64.deb" "${NEO_HASHES["intel-igc-core-2_2.40.13+22418_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" \
|
download_and_verify "https://github.com/intel/intel-graphics-compiler/releases/download/v2.40.13/intel-igc-opencl-2_2.40.13+22418_amd64.deb" \
|
||||||
"intel-igc-opencl-2_2.34.4+21428_amd64.deb" "${NEO_HASHES["intel-igc-opencl-2_2.34.4+21428_amd64.deb"]}"
|
"intel-igc-opencl-2_2.40.13+22418_amd64.deb" "${NEO_HASHES["intel-igc-opencl-2_2.40.13+22418_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" \
|
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.31.39395.13/intel-ocloc_26.31.39395.13-0_amd64.deb" \
|
||||||
"intel-ocloc_26.18.38308.1-0_amd64.deb" "${NEO_HASHES["intel-ocloc_26.18.38308.1-0_amd64.deb"]}"
|
"intel-ocloc_26.31.39395.13-0_amd64.deb" "${NEO_HASHES["intel-ocloc_26.31.39395.13-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" \
|
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.31.39395.13/intel-opencl-icd_26.31.39395.13-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"]}"
|
"intel-opencl-icd_26.31.39395.13-0_amd64.deb" "${NEO_HASHES["intel-opencl-icd_26.31.39395.13-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/compute-runtime/releases/download/26.31.39395.13/libigdgmm12_22.10.0_amd64.deb" \
|
||||||
"libigdgmm12_22.10.0_amd64.deb" "${NEO_HASHES["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" \
|
download_and_verify "https://github.com/intel/compute-runtime/releases/download/26.31.39395.13/libze-intel-gpu1_26.31.39395.13-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"]}"
|
"libze-intel-gpu1_26.31.39395.13-0_amd64.deb" "${NEO_HASHES["libze-intel-gpu1_26.31.39395.13-0_amd64.deb"]}"
|
||||||
|
|
||||||
dpkg -i libigdgmm12_22.10.0_amd64.deb
|
apt-get install -y ./*.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
|
|
||||||
|
|
||||||
cd /
|
cd /
|
||||||
rm -rf "$TEMP_DIR"
|
rm -rf "$TEMP_DIR"
|
||||||
@@ -80,6 +76,6 @@ print_substep "Añadiendo usuario a grupos render y video..."
|
|||||||
if [ -n "${SUDO_USER:-}" ]; then
|
if [ -n "${SUDO_USER:-}" ]; then
|
||||||
usermod -a -G render,video "$SUDO_USER"
|
usermod -a -G render,video "$SUDO_USER"
|
||||||
else
|
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"
|
usermod -a -G render,video "$current_user"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user