Fix NVIDIA Kepler Logic & Kernel Headers

- Normalized PCI ID case sensitivity in `_helpers.sh`. The `detect_nvidia_arch()` function now converts input to uppercase (`${1^^}`) to match legacy architecture map keys, resolving "unknown" detection for all NVIDIA GPUs.
- Removed silent fallback to standard drivers in `gpu.sh` Bookworm logic. Kepler and other architectures now invoke specific installation functions directly without defaulting to unsupported driver versions (e.g., 535).
- Corrected NVIDIA legacy package name in `nvidia.sh`. Updated `_install_nvidia_bookworm_kepler()` to use `nvidia-tesla-470-driver` instead of deprecated Bullseye naming conventions for Debian 12.
- Replaced specific kernel header references (`linux-headers-$(uname -r)`) with meta-package `linux-headers-amd64` in `firmware.sh`. Fixes DKMS installation failures for Broadcom/WiFi drivers across multiple Debian versions.
This commit is contained in:
stornic56
2026-07-31 00:38:30 -05:00
committed by GitHub
parent b423ccfc0b
commit 28bb52c87d
4 changed files with 8 additions and 12 deletions
+5 -5
View File
@@ -277,17 +277,17 @@ After the firmware is downloaded, reboot the system." 14 75
else else
local bcm_ver header_ver local bcm_ver header_ver
bcm_ver=$(apt-cache policy broadcom-sta-dkms 2>/dev/null | awk 'NR==3 {print $2; exit}') bcm_ver=$(apt-cache policy broadcom-sta-dkms 2>/dev/null | awk 'NR==3 {print $2; exit}')
header_ver=$(apt-cache policy linux-headers-$(uname -r) 2>/dev/null | awk 'NR==3 {print $2; exit}') header_ver=$(apt-cache policy linux-headers-amd64 2>/dev/null | awk 'NR==3 {print $2; exit}')
if ! apt-cache policy "linux-headers-$(uname -r)" 2>/dev/null | grep -q "Candidate: [^ (none)]"; then if ! apt-cache policy linux-headers-amd64 2>/dev/null | grep -q "Candidate: [^ (none)]"; then
_msg "Broadcom Error" \ _msg "Broadcom Error" \
"linux-headers-$(uname -r) not available.\n\nCannot compile broadcom-sta-dkms without kernel headers." 10 60 "linux-headers-amd64 not available.\n\nCannot compile broadcom-sta-dkms without kernel headers." 10 60
_pause _pause
continue continue
fi fi
if _confirm "Broadcom WiFi" "Install Broadcom driver?\n\nRequired for this chipset. Compiles a kernel module.\n\n broadcom-sta-dkms ${bcm_ver:-unknown}\n linux-headers-$(uname -r) ${header_ver:-unknown}\n\nProceed?"; then if _confirm "Broadcom WiFi" "Install Broadcom driver?\n\nRequired for this chipset. Compiles a kernel module.\n\n broadcom-sta-dkms ${bcm_ver:-unknown}\n linux-headers-amd64 ${header_ver:-unknown}\n\nProceed?"; then
_run_cmd "Broadcom" "sudo DEBIAN_FRONTEND=noninteractive apt install -y linux-headers-$(uname -r) broadcom-sta-dkms" \ _run_cmd "Broadcom" "sudo DEBIAN_FRONTEND=noninteractive apt install -y linux-headers-amd64 broadcom-sta-dkms" \
"Installing Broadcom driver..." "Installing Broadcom driver..."
local has_broadcom_bt=false local has_broadcom_bt=false
-4
View File
@@ -181,11 +181,7 @@ _install_nvidia_stack() {
elif [ "$DEBIAN_VERSION" = "12" ]; then elif [ "$DEBIAN_VERSION" = "12" ]; then
if [ "$(is_nvidia_kepler)" = "true" ]; then if [ "$(is_nvidia_kepler)" = "true" ]; then
if type _install_nvidia_bookworm_kepler &>/dev/null; then
_install_nvidia_bookworm_kepler _install_nvidia_bookworm_kepler
else
_install_nvidia_standard
fi
elif [ "$(is_nvidia_fermi)" = "true" ]; then elif [ "$(is_nvidia_fermi)" = "true" ]; then
_msg "NVIDIA Fermi — Bookworm" \ _msg "NVIDIA Fermi — Bookworm" \
"Fermi GPUs (GF1xx) are not supported\nin Debian 12 (Bookworm).\nThe nvidia-legacy-390xx driver is\nnot available in this version.\n\nNo NVIDIA driver will be installed." "Fermi GPUs (GF1xx) are not supported\nin Debian 12 (Bookworm).\nThe nvidia-legacy-390xx driver is\nnot available in this version.\n\nNo NVIDIA driver will be installed."
+1 -1
View File
@@ -23,7 +23,7 @@ declare -A NVIDIA_FAMILY_MAP=(
) )
detect_nvidia_arch() { detect_nvidia_arch() {
local pci_id="$1" local pci_id="${1^^}"
local prefix="${pci_id:0:2}" local prefix="${pci_id:0:2}"
echo "${NVIDIA_FAMILY_MAP[$prefix]:-unknown}" echo "${NVIDIA_FAMILY_MAP[$prefix]:-unknown}"
} }
+1 -1
View File
@@ -199,7 +199,7 @@ _install_nvidia_bookworm_bpo() {
# sin pasar por nvidia-detect (evita falsa recomendación rama 535) # sin pasar por nvidia-detect (evita falsa recomendación rama 535)
# ------------------------------------------------------------------- # -------------------------------------------------------------------
_install_nvidia_bookworm_kepler() { _install_nvidia_bookworm_kepler() {
local nv_pkg="nvidia-legacy-470xx-driver" local nv_pkg="nvidia-tesla-470-driver"
local nv_ver local nv_ver
nv_ver=$(apt-cache policy "$nv_pkg" 2>/dev/null | awk 'NR==3 {print $2; exit}') || true nv_ver=$(apt-cache policy "$nv_pkg" 2>/dev/null | awk 'NR==3 {print $2; exit}') || true