98 lines
3.3 KiB
Bash
98 lines
3.3 KiB
Bash
#!/usr/bin/env bash
|
|
# Install monitoring tools for Strix Halo
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/../../lib/common.sh"
|
|
|
|
log_header "Monitoring Tools Installer"
|
|
|
|
# ── amdgpu_top (most important) ─────────────────────────
|
|
if is_cmd amdgpu_top; then
|
|
log_success "amdgpu_top already installed: $(amdgpu_top --version 2>&1 | head -1)"
|
|
else
|
|
log_info "Installing amdgpu_top (best AMD GPU monitor)..."
|
|
installed=false
|
|
|
|
# Method 1: Install RPM from GitHub releases (fastest, works on Fedora)
|
|
if ! $installed; then
|
|
log_info "Downloading pre-built RPM from GitHub releases..."
|
|
AMDGPU_TOP_VERSION="0.11.2"
|
|
RPM_URL="https://github.com/Umio-Yasuno/amdgpu_top/releases/download/v${AMDGPU_TOP_VERSION}/amdgpu_top-${AMDGPU_TOP_VERSION}-1.x86_64.rpm"
|
|
RPM_FILE="/tmp/amdgpu_top-${AMDGPU_TOP_VERSION}.rpm"
|
|
|
|
if curl -fsSL -o "$RPM_FILE" "$RPM_URL" 2>/dev/null; then
|
|
if sudo dnf install -y "$RPM_FILE" 2>&1; then
|
|
installed=true
|
|
log_success "amdgpu_top installed from RPM"
|
|
rm -f "$RPM_FILE"
|
|
else
|
|
log_warn "RPM install failed"
|
|
fi
|
|
else
|
|
log_warn "RPM download failed"
|
|
fi
|
|
fi
|
|
|
|
# Method 2: Try dnf repos
|
|
if ! $installed; then
|
|
log_info "Trying dnf repos..."
|
|
if sudo dnf install -y amdgpu_top 2>/dev/null; then
|
|
installed=true
|
|
log_success "amdgpu_top installed via dnf"
|
|
fi
|
|
fi
|
|
|
|
# Method 3: cargo (if available)
|
|
if ! $installed && is_cmd cargo; then
|
|
log_info "Building from source via cargo..."
|
|
if cargo install amdgpu_top 2>&1; then
|
|
installed=true
|
|
log_success "amdgpu_top installed via cargo"
|
|
else
|
|
log_warn "cargo install failed"
|
|
fi
|
|
fi
|
|
|
|
if ! $installed; then
|
|
log_warn "Could not install amdgpu_top automatically."
|
|
log_info "Manual options:"
|
|
log_info " 1. Download RPM: curl -LO $RPM_URL && sudo dnf install ./amdgpu_top-*.rpm"
|
|
log_info " 2. Download AppImage: https://github.com/Umio-Yasuno/amdgpu_top/releases/latest"
|
|
fi
|
|
fi
|
|
|
|
# ── btop ─────────────────────────────────────────────────
|
|
if is_cmd btop; then
|
|
log_success "btop already installed"
|
|
else
|
|
log_info "Installing btop..."
|
|
if sudo dnf install -y btop 2>&1; then
|
|
log_success "btop installed"
|
|
else
|
|
log_warn "Could not install btop via dnf"
|
|
fi
|
|
fi
|
|
|
|
# ── tmux (needed for dashboard) ──────────────────────────
|
|
if is_cmd tmux; then
|
|
log_success "tmux already installed"
|
|
else
|
|
log_info "Installing tmux..."
|
|
if sudo dnf install -y tmux 2>&1; then
|
|
log_success "tmux installed"
|
|
else
|
|
log_warn "Could not install tmux via dnf"
|
|
fi
|
|
fi
|
|
|
|
# ── Verify existing tools ───────────────────────────────
|
|
log_header "Monitoring Tools Status"
|
|
for tool in amdgpu_top nvtop btop amd-smi rocm-smi tmux; do
|
|
if is_cmd "$tool"; then
|
|
log_success "$tool"
|
|
else
|
|
log_warn "$tool — not installed"
|
|
fi
|
|
done
|