Ubuntu 18.04.5 LTS 安装 NVIDIA 显卡驱动时报错:An NVIDIA kernel module ‘nvidia-drm‘ appears to already be load

本文介绍了解决Ubuntu系统中NVIDIA显卡驱动安装失败的问题。提供了详细的步骤来禁用图形界面、卸载旧驱动、阻止Nouveau内核驱动,并成功安装新的NVIDIA驱动。

问题描述

  • 更换显卡后,系统只识别了原来的那块亮机卡,不是别新安装的计算卡,所以从 NVIDIA 官网下载对应的显卡驱动
  • 安装时报错如下:
ERROR: An NVIDIA kernel module 'nvidia-drm' appears to already be loaded in  
         your kernel.  This may be because it is in use (for example, by an X  
         server, a CUDA program, or the NVIDIA Persistence Daemon), but this   
         may also happen if your kernel was configured without support for     
         module unloading.  Please be sure to exit any programs that may be    
         using the GPU(s) before attempting to upgrade your driver.  If no     
         GPU-based programs are running, you know that your kernel supports    
         module unloading, and you still receive this message, then an error   
         may have occured that has corrupted an NVIDIA kernel module's usage   
         count, for which the simplest remedy is to reboot your computer.      

                                       OK 

原因分析

  • 因为安装的是 Ubuntu 18.04.5 Desktop (64-bit) 图形化版本,之前也安装了 NVIDIA 驱动和 CUDA
  • 系统加在图形化界面后,就会自动加载运行 NVIDIA 相关模块(如:nvidia-drm、nvidia-modeset 等)

解决方法

  • 启动 Ubuntu 系统时不让系统加载图形化界面
  • 在终端命令模式下卸载 NVIDIA 驱动,再重装新的驱动

具体方法步骤

  1. 通过另一台主机的终端工具 ssh 登录 Ubuntu 系统,依次执行如下两条命令(设置系统默认进入终端命令模式,然后重启系统)
sudo systemctl set-default multi-user.target
sudo reboot 0
  1. 待系统重启后,通过其他主机的终端工具 ssh 登录 Ubuntu 系统,依次执行如下三条命令,卸载已安装的 NVIDIA 驱动后重启
sudo apt-get purge nvidia*
sudo apt-get autoremove
sudo reboot
  1. 待系统重启后,通过其他主机的终端工具 ssh 登录 Ubuntu 系统,执行如下两条命令(先进入 NVIDIA 驱动安装文件所在的目录,再安装驱动)
cd NVIDIA驱动安装文件所在的目录
sudo sh ./NVIDIA驱动安装文件.run
  1. 等待 NVIDIA 驱动安装完成并测试显卡正常识别和运行后,再在终端执行如下两条命令(设置系统默认进入图形化界面模式,重启系统)
sudo systemctl set-default graphical.target
sudo reboot 0

其他错误及解决方法

  • 在安装 NVIDIA 驱动过程中可能会遇到如下错误
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the NVIDIA driver README and your Linux distribution’s documentation for details on how to correctly disable the Nouveau kernel driver.
  • 解决方法
# 1. 在终端中通过 nano 创建 blacklist-nouveau.conf 文件,终端命令如下:
nano /etc/modprobe.d/blacklist-nouveau.conf
# 2. 在该文件中添加如下内容:
blacklist nouveau
options nouveau modeset=0
# 3. 按 Ctrl + X,再按 Y,回车保存该文件
# 4. 重新生成 kernel initramfs,终端命令如下:
update-initramfs -u
# 5. 等待 kernel initramfs 重新生成完毕后,重启系统,终端命令如下:
reboot
# 6. 进入系统中即可正常安装 NVIDIA 驱动

注意事项

  • 注意要在 bash 下操作,不要在 zsh 下操作(除非自己的 zsh 已经配置完美)
  • NVIDIA 驱动安装过程可能也会提示多种问题(如:不匹配、不兼容之类的),都不要担心,根据提示选择正常的选项执行安装即可
  • 以上操作推荐通过其他终端 ssh 连接 Ubuntu 系统进行操作,尽量不要在 ubuntu 本机操作,以免不弹出部分提示,影响正常配置、卸载或安装过程

其他更更简洁的方法

  • 以下方法对部分用户可能无效
  • 推荐前面介绍的方法,彻底卸载 NVIDIA 驱动后再重装
1. 获得超级用户权限
sudo -i
2. 关闭所有使用 GPU 的进程
systemctl isolate multi-user.target
modprobe -r nvidia-drm
3. 重装 NVIDIA 驱动

参考

  • https://forums.developer.nvidia.com/t/cant-install-new-driver-cannot-unload-module/63639/14
  • https://arstech.net/how-to-disable-nouveau-nvidia-driver-on-ubuntu-18-04/
  • https://clay-atlas.com/us/blog/2020/03/04/linux-english-note-how-to-disable-nvidia-drm/
<think>好的,我现在需要帮助用户解决在Ubuntu 22.04安装nvidia-docker2出现的“Unable to locate package nvidia-docker2”错误。首先,我得回忆一下用户提供的引用内容。根据引用[^1],他们在Ubuntu 18.04和20.04上使用了特定的安装步骤,但到了22.04可能发生了变化。而用户现在的问题是同样的步骤在22.04上找不到包,所以需要调整配置源。 首先,我需要确认nvidia-docker2的官方安装步骤是否有变化。根据NVIDIA的文档,安装步骤通常包括添加仓库的GPG密钥,配置正确的源列表,然后更新和安装。但Ubuntu 22.04对应的发行版名称可能不同,例如,之前的版本可能使用ubuntu18.04ubuntu20.04,而22.04的代号是Jammy Jellyfish,对应的VERSION_ID应该是22.04。 用户之前的命令中,distribution变量是通过/etc/os-release获取的,这应该没问题。但可能NVIDIA的仓库中还没有为22.04准备好对应的包列表,或者用户需要手动指定正确的发行版名称。例如,尝试将distribution变量显式设置为ubuntu22.04,而不是自动获取,或者检查NVIDIA的仓库URL是否有变化。 另外,检查用户是否正确添加了仓库源。根据引用[^1],他们使用了https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list,但可能对于22.04,这个路径下的文件是否存在?比如访问https://nvidia.github.io/nvidia-docker/ubuntu22.04/nvidia-docker.list,看看是否返回有效的列表内容。如果不存在,可能需要使用不同的路径,比如ubuntu20.04或者更通用的版本。 另一个可能性是,用户没有正确更新apt缓存,或者在添加源后没有运行sudo apt-get update,导致无法找到包。需要确保用户在执行安装前确实运行了更新命令。 此外,还要考虑用户是否使用了正确的包名称。nvidia-docker2可能在某些版本中被重命名或拆分,但根据官方文档,应该还是这个名称。可以建议用户检查是否有拼写错误,或者尝试安装其他相关包如nvidia-container-toolkit作为依赖。 最后,可能需要参考NVIDIA官方的最新安装指南,看看是否有针对Ubuntu 22.04的特殊说明。如果有,用户需要按照最新的步骤操作。例如,某些情况下可能需要添加额外的仓库或安装前置软件包。 总结下来,解决方案的步骤可能包括:确认distribution变量是否正确,手动设置distribution为ubuntu22.04,检查仓库URL是否有效,更新apt缓存,安装依赖项,最后安装nvidia-docker2。如果仍然失败,可能需要查看NVIDIA的GitHub仓库或社区讨论,看看是否有已知的问题或解决方案。</think>### 分步解决方案 1. **确认系统版本与仓库兼容性** Ubuntu 22.04(Jammy Jellyfish)的官方仓库可能尚未被NVIDIA Docker仓库完全支持,需手动调整仓库配置。 2. **手动设置仓库路径** 将`distribution`变量显式指定为`ubuntu22.04`,避免自动检测失效: ```bash distribution=ubuntu22.04 ``` 3. **添加NVIDIA Docker仓库** 执行以下命令添加正确的仓库源: ```bash curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list ``` 4. **更新APT缓存并安装** ```bash sudo apt-get update sudo apt-get install -y nvidia-docker2 ``` 5. **重启Docker服务** ```bash sudo systemctl restart docker ``` 6. **验证安装** ```bash docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi ``` 若仍报错,尝试以下替代方案: - **使用通用仓库路径** 将仓库路径改为`ubuntu20.04`(部分兼容): ```bash distribution=ubuntu20.04 ``` - **安装前置依赖** 确保已安装`software-properties-common`: ```bash sudo apt-get install software-properties-common ``` --- ### 引用说明 NVIDIA Docker仓库对Ubuntu 22.04的官方支持可能滞后,需手动调整仓库路径[^1]。类似问题在Ubuntu系统中安装其他软件(如vim)也因仓库未更新导致[^2]。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn-WJW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值