diff --git a/iso/builder/config/hooks/normal/9001-amd-rocm.hook.chroot b/iso/builder/config/hooks/normal/9001-amd-rocm.hook.chroot index da16ced..de38de1 100755 --- a/iso/builder/config/hooks/normal/9001-amd-rocm.hook.chroot +++ b/iso/builder/config/hooks/normal/9001-amd-rocm.hook.chroot @@ -2,12 +2,21 @@ # 9001-amd-rocm.hook.chroot — install AMD ROCm SMI tool for Instinct GPU monitoring. # Runs inside the live-build chroot. Adds AMD's apt repository and installs # rocm-smi-lib which provides the `rocm-smi` CLI (analogous to nvidia-smi). +# +# AMD does NOT publish Debian Bookworm packages. The repo uses Ubuntu codenames +# (jammy/noble). We use jammy (Ubuntu 22.04) — its packages install cleanly on +# Debian 12 (Bookworm) due to compatible glibc/libstdc++. +# Tried versions newest-first; falls back if a point release is missing. set -e -# ROCm versions to try in order (newest first). Fall back if a version's -# Release file is missing from the repo (happens with brand-new releases). -ROCM_CANDIDATES="6.4 6.3 6.2" +# Ubuntu codename to use for the AMD repo (Debian has no AMD packages). +ROCM_UBUNTU_DIST="jammy" + +# ROCm point-releases to try newest-first. AMD drops old point releases +# from the repo, so we walk backwards until one responds 200. +ROCM_CANDIDATES="6.3.4 6.3.3 6.3.2 6.3.1 6.3 6.2.4 6.2.3 6.2.2 6.2.1 6.2" + ROCM_KEYRING="/etc/apt/keyrings/rocm.gpg" ROCM_LIST="/etc/apt/sources.list.d/rocm.list" APT_UPDATED=0 @@ -51,30 +60,31 @@ if ! wget -qO- "https://repo.radeon.com/rocm/rocm.gpg.key" \ exit 0 fi -# Try each ROCm version until apt-get update succeeds (repo has a Release file). +# Try each ROCm version until apt-get update succeeds. +# AMD repo uses Ubuntu codenames; bookworm is not published — use jammy. ROCM_VERSION="" for candidate in ${ROCM_CANDIDATES}; do cat > "${ROCM_LIST}" </dev/null; then ROCM_VERSION="${candidate}" - echo "=== AMD ROCm ${ROCM_VERSION}: repository available ===" + echo "=== AMD ROCm ${ROCM_VERSION} (${ROCM_UBUNTU_DIST}): repository available ===" break fi - echo "WARN: ROCm ${candidate} repository not available for bookworm, trying next..." + echo "WARN: ROCm ${candidate} not available, trying next..." rm -f "${ROCM_LIST}" done if [ -z "${ROCM_VERSION}" ]; then - echo "WARN: no ROCm apt repository available for bookworm — skipping ROCm install" + echo "WARN: no ROCm apt repository available — skipping ROCm install" rm -f "${ROCM_KEYRING}" exit 0 fi # rocm-smi-lib provides the rocm-smi CLI tool for GPU monitoring -if apt-get install -y --no-install-recommends rocm-smi-lib 2>/dev/null; then - echo "=== AMD ROCm: rocm-smi installed ===" +if DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends rocm-smi-lib; then + echo "=== AMD ROCm: rocm-smi-lib installed ===" if [ -x /opt/rocm/bin/rocm-smi ]; then ln -sf /opt/rocm/bin/rocm-smi /usr/local/bin/rocm-smi else @@ -85,7 +95,7 @@ if apt-get install -y --no-install-recommends rocm-smi-lib 2>/dev/null; then fi rocm-smi --version 2>/dev/null || true else - echo "WARN: rocm-smi-lib install failed — GPU monitoring unavailable" + echo "WARN: rocm-smi-lib install failed — AMD GPU monitoring unavailable" fi # Clean up apt lists to keep ISO size down