Skip to content

Instantly share code, notes, and snippets.

@hunzo
Created September 5, 2026 03:23
Show Gist options
  • Select an option

  • Save hunzo/8dfaccf9ca2c2d4fc4e8a8152089499e to your computer and use it in GitHub Desktop.

Select an option

Save hunzo/8dfaccf9ca2c2d4fc4e8a8152089499e to your computer and use it in GitHub Desktop.
NVIDIA DKMS Troubleshooting Runbook

Arch Linux — NVIDIA DKMS Troubleshooting Runbook

Runbook สำหรับแก้ปัญหา NVIDIA Driver บน Arch Linux เมื่อพบ:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.

Environment

OS      : Arch Linux
GPU     : NVIDIA GeForce MX330 (GP108M)
Driver  : NVIDIA 580.178.04
Package : nvidia-580xx-dkms
Kernel  : linux / linux-lts

1. ตรวจสอบ Kernel

uname -r

ตัวอย่าง:

6.18.49-2-lts

ตรวจสอบ package:

pacman -Q | grep -E '^(linux|nvidia)'

ตรวจสอบ kernel modules ที่มีอยู่:

ls /usr/lib/modules/

2. ตรวจสอบ GPU / Driver

lspci -k | grep -A 3 -E 'VGA|3D|Display'

ตรวจสอบ module:

lsmod | grep -E 'nvidia|nouveau'

ทดลองโหลด NVIDIA:

sudo modprobe nvidia

หากพบ:

modprobe: FATAL: Module nvidia not found in directory /lib/modules/<kernel>

ให้ตรวจสอบ DKMS และ Kernel Headers


3. ตรวจสอบ DKMS

dkms status

NVIDIA ควรมีสถานะ installed สำหรับ kernel ที่กำลังใช้งาน เช่น:

nvidia/580.178.04, 6.18.49-2-lts, x86_64: installed

ถ้าไม่มี แสดงว่า NVIDIA module ยังไม่ได้ build สำหรับ kernel ปัจจุบัน


4. ตรวจสอบ Kernel Headers

Kernel ปกติ

sudo pacman -S linux-headers

LTS Kernel

sudo pacman -S linux-lts-headers

Mapping:

linux      → linux-headers
linux-lts  → linux-lts-headers

ถ้าใช้ nvidia-*-dkms ต้องมี headers ของทุก kernel ที่ต้องการใช้งาน


5. Build NVIDIA DKMS

sudo dkms autoinstall

ตรวจสอบ:

dkms status

ควรได้ประมาณ:

nvidia/580.178.04, 6.18.49-2-lts, x86_64: installed
nvidia/580.178.04, 7.2.3-arch1-2, x86_64: installed

6. Rebuild Initramfs

sudo mkinitcpio -P

ถ้าพบ:

WARNING: consolefont: no font found in configuration

ไม่เกี่ยวข้องกับ NVIDIA Driver


7. โหลด NVIDIA Module

sudo modprobe nvidia

ตรวจสอบ:

lsmod | grep nvidia

ควรพบอย่างน้อย:

nvidia
nvidia_uvm

8. ทดสอบ

nvidia-smi

ตัวอย่างผลสำเร็จ:

NVIDIA-SMI 580.178.04
Driver Version: 580.178.04
CUDA Version: 13.0

GPU: NVIDIA GeForce MX330
VRAM: 2048 MiB

Quick Fix

กรณีใช้ linux-lts + NVIDIA DKMS:

sudo pacman -S linux-lts-headers
sudo dkms autoinstall
dkms status
sudo mkinitcpio -P
sudo modprobe nvidia
nvidia-smi

ถ้าทำงานแล้ว reboot:

sudo reboot

หลัง boot:

uname -r
nvidia-smi

Root Cause ของ Incident นี้

Boot: linux-lts 6.18.49-2-lts
              │
              ▼
     linux-lts-headers ไม่มี
              │
              ▼
  nvidia-580xx-dkms build ไม่ได้
              │
              ▼
   NVIDIA kernel module ไม่มี
              │
              ▼
     modprobe nvidia FAILED
              │
              ▼
       nvidia-smi FAILED

แก้โดยติดตั้ง:

sudo pacman -S linux-lts-headers

จากนั้น Pacman/DKMS สามารถสร้าง NVIDIA module:

nvidia/580.178.04, 6.18.49-2-lts, x86_64: installed

และ nvidia-smi กลับมาทำงานตามปกติ


Diagnostic Commands

หากยังแก้ไม่ได้ ให้เก็บ output ชุดนี้:

uname -r

pacman -Q | grep -E '^(linux|nvidia)'

ls /usr/lib/modules/

lspci -k | grep -A 3 -E 'VGA|3D|Display'

lsmod | grep -E 'nvidia|nouveau'

dkms status

sudo modprobe nvidia

sudo dmesg -T | grep -iE 'nvidia|nouveau|NVRM' | tail -n 100

หาก DKMS build fail ตรวจสอบ log:

find /var/lib/dkms/nvidia* -name make.log \
  -exec sh -c 'echo "===== $1 ====="; tail -n 100 "$1"' _ {} \;

Checklist

  • uname -r ตรงกับ kernel ที่ต้องการใช้
  • มี kernel headers ที่ตรงกัน
  • dkms status = installed
  • modprobe nvidia ไม่มี error
  • lsmod พบ nvidia
  • nvidia-smi พบ GPU
  • Reboot แล้ว nvidia-smi ใช้งานได้โดยไม่ต้อง modprobe เอง
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment