Refactored the NVIDIA GPU passthrough configuration to ensure device entries and related settings are only added when /dev/nvidia* devices are present. This prevents passthrough configuration attempts when no NVIDIA devices are detected, improving reliability and error messaging.
Eliminates the unnecessary 'uid=0' parameter from device configuration in GPU passthrough setup for privileged containers. Also updates the viseron install script to remove the target directory argument from the fetch_and_deploy_gh_release call, aligning with changes in its usage.
Reworked the configure_gpu_passthrough function for improved clarity and maintainability. Device entries and permissions are now handled more consistently for both privileged and unprivileged containers, with clearer GID assignment and device indexing. Added more robust verification and messaging for GPU setup and access.
Simplifies and improves GPU device detection for Intel, AMD, and NVIDIA, consolidates configuration functions, and enhances permission handling for both privileged and unprivileged containers. Removes redundant helper functions, adds user prompts for multiple GPU types, and improves driver installation and verification steps. Also refactors USB and additional device passthrough setup for clarity and maintainability.
Simplifies and streamlines GPU passthrough configuration for LXC containers, consolidating device detection, selection, and userland package installation. Reduces code duplication, improves readability, and adds direct verification steps for VAAPI and NVIDIA support after installation.
Adds checks to ensure the default.vars file exists before storage selection. Updates LXC container creation to skip storage selection if variables are already set, improving efficiency and reliability.
Replaces glob loops with compgen for detecting VAAPI and NVIDIA devices in /dev. This improves robustness and avoids issues when no matching devices are present.
The ssh_check function was moved from build.func to core.func and enhanced to allow an override and to skip warnings for localhost connections. The shell_check function was simplified to directly check for Bash and provide clearer messaging. These changes centralize environment checks and improve user experience.
Introduces automatic detection and configuration of GPU (VAAPI/NVIDIA) and USB passthrough for LXC containers, including userland package installation and verification. Refactors and expands hardware passthrough logic, adds support for Coral TPU, and improves network and gateway checks. Removes deprecated storage menu and diagnostics code.
Introduced a unified gpu_inside_setup function in build.func to handle VAAPI and NVIDIA userland installation inside containers. Replaced bracket conditionals with if statements in passthrough.func for improved readability and maintainability, and made minor logic clarifications for privileged container checks.
Refactored the build_container function to handle MAC, gateway, VLAN, and MTU parameters more robustly, allowing for both direct and preformatted input. This change ensures correct formatting and prevents duplicate parameter prefixes in the network string.
Replaces direct USB and GPU passthrough configuration in build.func with a unified select_hw_passthrough function. Refactors passthrough.func to add interactive selection for VAAPI and NVIDIA devices, streamlines device detection, and updates userland installation functions for both VAAPI and NVIDIA. Cleans up and simplifies device mapping and group ID logic.
The VAAPI and NVIDIA setup functions are now called directly in debian-install.sh instead of within the LXC container customization block in build.func. The related code in build.func has been commented out to avoid duplicate execution.
Consolidates and simplifies VAAPI and NVIDIA passthrough logic by introducing unified GPU app detection and moving userland package installation into dedicated *_inside_setup functions. Updates build.func to use new function names and ensures setup is only performed for relevant apps and non-Alpine containers. Improves maintainability and clarity of passthrough.func.
Added direct installation of VAAPI and NVIDIA drivers inside LXC containers during setup, removing reliance on custom in-container scripts. The process now ensures required packages are installed and user permissions are set, improving automation and compatibility for supported distributions.
Replaces the inlined VAAPI passthrough logic in misc/build.func with calls to an external passthrough.func script, streamlining and centralizing hardware passthrough handling. Adds a new misc/passthrough.func file and introduces a hwaccel_setup_in_ct helper in misc/tools.func for hardware acceleration setup inside containers.
Replaces legacy VAAPI device detection and selection with a modular, more robust approach. Adds helpers for group ID resolution, device deduplication, and dynamic whiptail dialog sizing. Improves user prompts, error handling, and fallback logic for both privileged and unprivileged containers. The new implementation is more maintainable and user-friendly.
Refactors the LXC container network initialization to simplify IP wait logic, reduce gateway ping attempts from 20 to 10, and provide clearer status messages. Now warns instead of failing if the gateway is unreachable but the container has an IP, improving robustness in network checks.