Tại sao driver mặc định của Ubuntu là chưa đủ?
Vừa cài xong Ubuntu, hệ thống sẽ dùng ngay driver mã nguồn mở Nouveau. Driver này ổn cho việc lướt web hay gõ văn bản. Tuy nhiên, nếu bạn định train model PyTorch hoặc leo rank Steam, Nouveau là một nỗi ác mộng. Nó không hỗ trợ tăng tốc phần cứng, khiến FPS tụt thảm hại và máy thường xuyên giật lag.
Sau 6 tháng quản lý dàn workstation chạy Ubuntu 22.04 cho team AI, mình rút ra một bài học xương máu. Đừng bao giờ cài driver bằng file .run từ website NVIDIA trừ khi bạn là chuyên gia. Cách này rất dễ gây xung đột mỗi khi apt upgrade, dẫn đến lỗi màn hình đen huyền thoại. Sử dụng PPA là giải pháp bền vững nhất cho môi trường làm việc thực tế.
Bước 1: Kiểm tra phần cứng và dọn dẹp hệ thống
Trước tiên, hãy xác định model card đồ họa để tránh cài nhầm phiên bản không hỗ trợ. Gõ lệnh sau vào terminal:
lspci | grep -i nvidia
Nếu máy đang gặp lỗi driver cũ, bạn cần dọn dẹp sạch sẽ để tránh xung đột “ma” sau này:
sudo apt-get purge nvidia* -y
sudo apt-get autoremove -y
Bước 2: Cài đặt Driver qua PPA (Khuyên dùng)
Kho lưu trữ mặc định của Ubuntu thường cập nhật driver rất chậm. Để có hiệu năng tốt nhất cho các dòng RTX 3090 hay 4000 series, mình luôn ưu tiên dùng PPA của team graphics-drivers. Kho này thường cập nhật bản vá mới chỉ sau 24-48 giờ NVIDIA phát hành.
Thêm repository và cập nhật danh sách gói tin:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
Tiếp theo, hãy để công cụ ubuntu-drivers tự động đề xuất phiên bản tối ưu nhất:
ubuntu-drivers devices
Hệ thống sẽ trả về kết quả tương tự như sau:
vendor : NVIDIA Corporation
model : GA102 [GeForce RTX 3090]
driver : nvidia-driver-535 - third-party free recommended
Để cài bản ổn định nhất (có chữ recommended), bạn chỉ cần chạy:
sudo ubuntu-drivers autoinstall
Nếu bạn cần phiên bản cụ thể (như bản 535 để khớp với CUDA 12.x), hãy chỉ định rõ tên gói. Đừng quên khởi động lại máy để Kernel nạp driver mới:
sudo reboot
Bước 3: Cấu hình NVIDIA Prime cho Laptop
Dành riêng cho các bạn dùng Laptop có card rời: việc quản lý điện năng là sống còn. Nhiều người than phiền máy nóng và pin tụt như tụt huyết áp sau khi cài driver. Nguyên nhân thường do card NVIDIA luôn chạy ngầm dù chỉ làm việc nhẹ.
Bạn có thể chủ động chuyển đổi chế độ để tiết kiệm pin:
- Chế độ Performance: Luôn dùng NVIDIA cho mọi tác vụ.
- Chế độ Intel: Tắt hẳn card rời để tiết kiệm pin tối đa.
- Chế độ On-demand: Chỉ kích hoạt NVIDIA khi chạy ứng dụng nặng.
Lệnh chuyển đổi cực đơn giản: sudo prime-select on-demand. Sau đó, hãy log out và log in lại để thay đổi có hiệu lực.
Bước 4: Kiểm tra và Monitoring hiệu năng
Sau khi máy khởi động lại, hãy kiểm tra xem driver đã “sống” chưa bằng lệnh:
nvidia-smi
Nếu bảng thông số hiện ra đầy đủ phiên bản Driver và dung lượng VRAM, bạn đã thành công. Tuy nhiên, nvidia-smi chỉ là ảnh chụp tĩnh. Để theo dõi tải của GPU theo thời gian thực khi train AI, mình khuyên dùng nvtop.
sudo apt install nvtop
Với nvtop, bạn sẽ thấy biểu đồ xung nhịp và nhiệt độ trực quan. Nó giúp bạn phát hiện ngay nếu có tiến trình nào đang “ngốn” sạch VRAM một cách bất thường.
Xử lý sự cố: Những ca “khó đẻ” thường gặp
1. Rào cản Secure Boot
Đây là lý do phổ biến nhất khiến driver cài xong nhưng không chạy. Nếu BIOS bật Secure Boot, Ubuntu sẽ yêu cầu bạn tạo mật khẩu MOK (Machine Owner Key). Khi reboot, hãy chọn Enroll MOK và nhập mật khẩu đó. Nếu lỡ tay bỏ qua, driver sẽ bị chặn hoàn toàn vì chưa được xác thực.
2. Cứu nguy khi bị màn hình đen
Đừng hoảng loạn nếu máy kẹt ở màn hình đen. Hãy nhấn tổ hợp Ctrl + Alt + F3 để vào terminal thô. Đăng nhập và gỡ sạch driver vừa cài bằng lệnh sudo apt-get purge nvidia*. Sau khi reboot, máy sẽ quay lại driver mặc định để bạn tìm nguyên nhân khác.
Kinh nghiệm thực tế từ Production
Trong vận hành hệ thống, tính ổn định luôn quan trọng hơn phiên bản mới nhất. Với server AI, mình thường giữ driver ở các bản LTS (Long Term Support) như 525 hoặc 535. Chạy theo các bản beta chỉ khiến hệ thống dễ crash hơn mà thôi.
Một lưu ý cuối: Nếu bạn dùng Docker, hãy cài thêm NVIDIA Container Toolkit. Thiếu công cụ này, Docker sẽ không thể kết nối với GPU. Khi đó, dù driver máy host có mạnh đến đâu, container của bạn vẫn sẽ phải chạy bằng CPU chậm chạp.

