自用方法,亲测有效,但可能不大众
首先检查一下自己的显卡驱动状态
lsmod | grep -i nvidia
lsmod | grep -i nouveau
输出结果:
:~$ lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Device 9a60 (rev 01)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 2560 (rev a1)
:~$ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation Device 2560 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 228e (rev a1)
可见我有双显卡配置(Intel集成显卡 + NVIDIA独立显卡),但是NVIDIA驱动没有完全加载。以下我们解决这个问题:NVIDIA驱动没有安装,系统只在使用Intel集成显卡
1查看推荐的驱动版本
ubuntu-drivers devices
找到具有recommended的一行,我的这一行如下:
driver : nvidia-driver-570-server-open - distro non-free recommended
2安装NVIDIA驱动
sudo apt install nvidia-driver-570-server-open
大家根据1中输出的结果选择合适的驱动
3注意这时候不要执行重启操作,会因为显卡驱动冲突无法进入图形化界面。
首先要禁用nouweau驱动
echo 'blacklist nouveau' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
echo 'options nouveau modeset=0' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
4安装NVIDIA Prime(用于双显卡切换)
sudo apt install nvidia-prime
5这时候大部分教程建议重启,通常建议重启以确保所有模块正确加载。我个人是使用了不重启的方法
手动加载NVIDIA模块
sudo modprobe nvidia
sudo modprobe nvidia_drm
sudo modprobe nvidia_modeset
sudo modprobe nvidia_uvm
检测模块是否加载成功
lsmod | grep nvidia
尝试运行nvidia-smi
nvidia-smi
此时我的输出一切正常,显示屏也能够正常使用,输出如下(大家可参考):
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.133.20 Driver Version: 570.133.20 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3060 ... Off | 00000000:01:00.0 On | N/A |
| N/A 49C P8 11W / 115W | 91MiB / 6144MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 47964 G /usr/lib/xorg/Xorg 22MiB |
| 0 N/A N/A 48256 G /usr/lib/xorg/Xorg 53MiB |
+-----------------------------------------------------------------------------------------+
重启显示管理器(不是整个系统)
sudo systemctl restart display-manager
最后检查显示输出
xrandr
如果手动加载模块后 nvidia-smi 能正常工作,并且 xrandr 显示了新的显示端口(如HDMI-1-1, DP-1-1等),那就不需要重启。