Fix lỗi NVIDIA lúc 2 giờ sáng: Khi Wayland không ‘chiều’ lòng người
Đêm qua, mình suýt đập máy vì dòng chữ quen thuộc: NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Vừa nâng cấp lên Fedora 40 để trải nghiệm Kernel 6.8 mượt mà, nhưng đời không như mơ. Cài xong Driver thì màn hình đen xì. Chuyển sang Wayland thì lag đến mức con trỏ chuột nhảy lò cò, còn PyTorch thì tuyệt vọng tìm GPU.
Mình dùng Fedora làm máy dev chính hơn 2 năm nay. Tốc độ cập nhật package của nó rất nhanh, thường chỉ sau Arch Linux vài ngày. Tuy nhiên, biến Fedora thành cỗ máy Deep Learning ổn định trên Wayland là một thử thách thực sự. Sau hàng chục lần cài lại OS (reinstall), mình đã rút ra một quy trình chuẩn để bạn không phải thức trắng đêm như mình.
Tại sao chọn Fedora thay vì Ubuntu?
Dân AI thường mặc định dùng Ubuntu. Nhưng Fedora có lợi thế cực lớn là Kernel mới nhất, giúp khai thác tối đa sức mạnh của RTX 40-series hoặc các dòng CPU Intel thế hệ 14. Vấn đề duy nhất là Fedora ưu tiên Wayland. Đây là giao thức hiển thị hiện đại nhưng lại có lịch sử “cơm chẳng lành canh chẳng ngọt” với Driver NVIDIA đóng.
Để làm ML ổn định, chúng ta cần ba trụ cột chính:
- NVIDIA Driver (RPM Fusion): Tuyệt đối không dùng file .run từ trang chủ NVIDIA. Nó sẽ phá nát hệ thống của bạn sau mỗi lần cập nhật Kernel.
- CUDA Toolkit: Thư viện tính toán song song bắt buộc phải có.
- Miniconda/Mamba: Giúp cô lập môi trường, tránh làm hỏng Python hệ thống.
Bước 1: Kích hoạt Repo RPM Fusion
Đừng bắt đầu khi hệ thống chưa sạch. Fedora cập nhật package liên tục. Nếu version giữa Kernel và Header lệch nhau, Driver sẽ lỗi ngay lập tức.
sudo dnf update -y
sudo dnf install dnf-plugins-core -y
Tiếp theo, hãy kích hoạt RPM Fusion. Đây là nguồn cài Driver NVIDIA an toàn và chính thống nhất cho Fedora:
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/non-free/fedora/rpmfusion-non-free-release-$(rpm -E %fedora).noarch.rpm
Bước 2: Cài NVIDIA Driver theo cách của Pro
Nhiều người cài xong rồi reboot ngay. Đó là sai lầm. Fedora cần thời gian để build kernel module thông qua akmods. Hãy cài đặt bộ driver và thư viện CUDA hỗ trợ:
sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda -y
Lưu ý cực quan trọng: Sau khi lệnh chạy xong, hãy pha một tách cà phê. Đợi khoảng 3-5 phút để hệ thống build ngầm. Kiểm tra trạng thái bằng lệnh:
modinfo -F version nvidia
Nếu terminal trả về version (ví dụ 555.xx), bạn mới được phép khởi động lại. Nếu dùng Secure Boot, bạn phải sign module này, nhưng cách nhanh nhất là tạm tắt nó trong BIOS.
Bước 3: Cài CUDA Toolkit mà không gây xung đột
Mình không bao giờ dùng dnf install cuda. Lệnh này từ repo NVIDIA thường đè lên driver hiện có và gây lỗi màn hình đen. Cách sạch nhất là chỉ lấy bộ Toolkit.
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/fedora40/x86_64/cuda-fedora40.repo
sudo dnf install cuda-toolkit -y
Cấu hình biến môi trường trong ~/.bashrc:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Gõ source ~/.bashrc để áp dụng thay đổi ngay lập tức.
Bước 4: Quản lý môi trường với Miniconda
Dùng pip install trực tiếp ngoài global là tự sát. Một ngày nào đó dnf sẽ crash vì xung đột thư viện hệ thống. Hãy dùng Miniconda để giữ mọi thứ ngăn nắp.
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Tạo môi trường riêng cho dự án AI:
conda create -n ai_lab python=3.10
conda activate ai_lab
Bước 5: Cài PyTorch và xử lý lag trên Wayland
PyTorch hiện đã hỗ trợ CUDA rất tốt trên Linux. Cài đặt bản stable:
pip3 install torch torchvision torchaudio
Kiểm tra xem GPU đã “thông” chưa:
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}'); print(f'Card: {torch.cuda.get_device_name(0)}')"
Nếu bạn thấy tên card RTX hiện lên, bạn đã thành công 99%.
Mẹo nhỏ cho Jupyter Notebook trên Wayland
Khi chạy Jupyter trên Wayland, browser thường bị nháy hình (flickering). Nguyên nhân do XWayland. Hãy ép Chrome/Edge chạy native Wayland bằng cách bật flag Preferred Ozone platform thành Wayland trong chrome://flags.
Đừng quên cài thêm kernel cho Jupyter:
pip install jupyterlab ipywidgets
python -m ipykernel install --user --name ai_lab --display-name "Python 3.10 (AI)"
Khi mọi thứ đổ vỡ: Tuyệt chiêu cứu hộ
Sau khi update Fedora bằng dnf upgrade, đôi khi nvidia-smi sẽ biến mất. Đừng hoảng. Thường là do Kernel mới chưa kịp build lại module. Bạn chỉ cần cưỡng ép nó build lại:
sudo akmods --force
sudo dracut -f
Reboot lại máy, mọi thứ sẽ trở về quỹ đạo. Fedora thực sự rất mạnh mẽ cho ML nếu bạn nắm vững cách nó quản lý package.
Kết luận
Thiết lập môi trường làm việc trên Linux không bao giờ là dễ dàng, nhất là với combo NVIDIA và Wayland. Tuy nhiên, khi đã cấu hình đúng, bạn sẽ sở hữu một hệ thống cực nhanh và luôn được cập nhật những công nghệ AI mới nhất. Hy vọng hướng dẫn này giúp bạn giữ được sự tỉnh táo và tiết kiệm thời gian debug vô ích.

