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 cab410c..da16ced 100755 --- a/iso/builder/config/hooks/normal/9001-amd-rocm.hook.chroot +++ b/iso/builder/config/hooks/normal/9001-amd-rocm.hook.chroot @@ -5,13 +5,13 @@ set -e -ROCM_VERSION="6.4" +# 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" ROCM_KEYRING="/etc/apt/keyrings/rocm.gpg" ROCM_LIST="/etc/apt/sources.list.d/rocm.list" APT_UPDATED=0 -echo "=== AMD ROCm ${ROCM_VERSION}: adding repository ===" - mkdir -p /etc/apt/keyrings ensure_tool() { @@ -51,11 +51,26 @@ if ! wget -qO- "https://repo.radeon.com/rocm/rocm.gpg.key" \ exit 0 fi -cat > "${ROCM_LIST}" < "${ROCM_LIST}" </dev/null; then + ROCM_VERSION="${candidate}" + echo "=== AMD ROCm ${ROCM_VERSION}: repository available ===" + break + fi + echo "WARN: ROCm ${candidate} repository not available for bookworm, trying next..." + rm -f "${ROCM_LIST}" +done -apt-get update -qq +if [ -z "${ROCM_VERSION}" ]; then + echo "WARN: no ROCm apt repository available for bookworm — 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 @@ -63,9 +78,9 @@ if apt-get install -y --no-install-recommends rocm-smi-lib 2>/dev/null; then if [ -x /opt/rocm/bin/rocm-smi ]; then ln -sf /opt/rocm/bin/rocm-smi /usr/local/bin/rocm-smi else - candidate="$(find /opt -path '*/bin/rocm-smi' -type f 2>/dev/null | sort | tail -1)" - if [ -n "${candidate}" ]; then - ln -sf "${candidate}" /usr/local/bin/rocm-smi + smi_path="$(find /opt -path '*/bin/rocm-smi' -type f 2>/dev/null | sort | tail -1)" + if [ -n "${smi_path}" ]; then + ln -sf "${smi_path}" /usr/local/bin/rocm-smi fi fi rocm-smi --version 2>/dev/null || true