From 9d8c18b489d71da99876ba68441eef2dda507fbd Mon Sep 17 00:00:00 2001 From: MickLesk Date: Sun, 21 Dec 2025 22:40:52 +0100 Subject: [PATCH] -Fix AMD GPU firmware installation by adding non-free-firmware repository - Add non-free-firmware repository for Debian before attempting to install firmware-amd-graphics - Support both Debian Bookworm (12) and Trixie (13)/Sid - Install firmware-amd-graphics for all AMD GPUs detected, not just APUs - Improve error handling with warning message if firmware installation fails Fixes #10177 --- misc/tools.func | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/misc/tools.func b/misc/tools.func index 44490fe17..dce6d8d73 100644 --- a/misc/tools.func +++ b/misc/tools.func @@ -2734,11 +2734,46 @@ EOF return 1 } - # AMD firmware for better GPU support + # For AMD GPUs, firmware-amd-graphics is needed but requires non-free repositories if [[ "$os_id" == "debian" ]]; then - $STD apt -y install firmware-amd-graphics 2>/dev/null || true + # Add non-free-firmware repository if not already present + if [[ ! -f /etc/apt/sources.list.d/non-free-firmware.sources ]]; then + if [[ "$os_codename" == "bookworm" ]]; then + cat </etc/apt/sources.list.d/non-free-firmware.sources +Types: deb +URIs: http://deb.debian.org/debian +Suites: bookworm bookworm-updates +Components: non-free-firmware + +Types: deb +URIs: http://deb.debian.org/debian-security +Suites: bookworm-security +Components: non-free-firmware +EOF + elif [[ "$os_codename" == "trixie" || "$os_codename" == "sid" ]]; then + cat </etc/apt/sources.list.d/non-free-firmware.sources +Types: deb +URIs: http://deb.debian.org/debian +Suites: trixie trixie-updates +Components: non-free-firmware + +Types: deb +URIs: http://deb.debian.org/debian-security +Suites: trixie-security +Components: non-free-firmware +EOF + fi + $STD apt update + fi + + # Now install AMD firmware and libdrm + $STD apt -y install libdrm-amdgpu1 firmware-amd-graphics 2>/dev/null || { + msg_warn "Failed to install AMD firmware - may need manual installation" + } + else + # For non-Debian (Ubuntu, etc), try to install without adding repos + $STD apt -y install libdrm-amdgpu1 firmware-amd-graphics 2>/dev/null || true fi - $STD apt -y install libdrm-amdgpu1 2>/dev/null || true ;; NVIDIA)