系统里有多套nvidia显卡驱动nvlddmkm.sys可能会有nvidia-smi.exe位置变化的困惑
这篇文档跟【如何更新GPU云服务器的NVIDIA驱动】这篇文档一脉相承。
系统里有2套驱动nvlddmkm.sys甚至3套nvidia-smi.exe会混乱不堪
安装了新版驱动后,C:\Program Files\NVIDIA Corporation\NVSMI目录过了一段时间消失了,未解之谜解开了
nvidia-smi.exe位置变化的逻辑在NVIDIA官网没找到直接文档,但通过测试纯净版系统单独安装旧版、单独安装新版驱动是能看到两版驱动差异的,旧版的nvidia-smi.exe在这个目录C:\Program Files\NVIDIA Corporation\NVSMI\,而新版的在C:\Windows\System32\目录并且C:\Program Files\NVIDIA Corporation\NVSMI目录不存在了。这不是windows操作系统决定的,而是nvidia驱动版本决定的。
对于存在多套驱动的情况,我请微软的朋友帮忙看了下,这种情况做的镜像买新机器,会自动安装新版驱动,在机器闲时会被系统自带的diskclean的计划任务清理掉C:\Windows\System32\DriverStore\FileRepository 目录下nv_打头的旧版驱动目录(1.5G左右,因为没用了还占空间,就被系统智能干掉了旧版,只留一个新版目录)
以其中一个版本举例,在更新过程中,会将c:\program files\nvidia corporation拷贝到临时目录C:\Users\ADMINI~1\AppData\Local\Temp下,然后再拷贝到C:\Windows\System32\DriverStore\Temp,最终拷贝到C:\Windows\System32\DriverStore\FileRepository目录。C:\Program Files\NVIDIA Corporation\NVSMI目录的一些文件会被强制删除,甚至NVSMI整个子目录被删除。
发现旧的版本突然消失,是由于系统触发了Device and Driver Disk Cleanup,会检测到系统中不需要的设备或驱动,oem7.inf(这个case中是oem7.inf,如C:\Windows\INF\setupapi.dev.log截图)为旧版本的驱动文件nv_dispsi.inf_amd64_db8d3f1ff9f89487\nv_dispsi.inf,被自动删除。
如果希望不执行disk cleanup的话,可以尝试将此任务禁用。
关于这个问题,“针对镜像里包含了3版nvidia-smi.exe和2版显卡驱动的情况,购买新机器后,显卡驱动和nvidia-smi.exe会如何去匹配,会不会存在重启下机器就变个状态的情况?”由于每个驱动都有自己的底层逻辑,Windows只能从C:\Windows\INF\setupapi.dev.log日志看到驱动的安装和卸载过程,关于显卡驱动和nvidia-smi.exe会如何去匹配,这种情况还是建议咨询下nvidia厂商,他们能提供更多的信息。
实际上咨询,nvidia回答得笼统,他们认为新版nvidia-smi.exe被他们安排在system32目录,连环境变量都无需用户配置了,岂不是很方便用户,他们不觉得这需要什么解释。在我看来,他们可能没考虑到客户业务在版本变化中的影响,应该前后保持路径的兼容性,你可以往system32目录放一份提升便利性,但原位置应该也保留一份呀,可nvidia目前没这个打算,未来说不定。因此,只能委屈有此需求的用户自己从system32目录拷贝一份到C:\Program Files\NVIDIA Corporation\NVSMI目录了,主要是这4个文件凑成NVSMI文件夹
关于更新nvidia驱动,从Windows层面,微软常规更新驱动的方式是在设备管理器中右击设备以更新驱动,或者直接双击运行驱动包。从系统稳定性角度来看,如果能将旧的版本完全删除,再安装新的版本,这样更保险些。
相关文章
- rsyslogd关闭_系统驱动丢失无法开机
- 驱动开发:内核LDE64引擎计算汇编长度
- 差动驱动机器人轨迹-CoCube
- 使用Linux MMAP驱动提高I/O处理性能(linuxmmap驱动)
- 深入Linux:SPI驱动的基本使用(linux驱动spi)
- Linux查看显卡驱动信息的方法(linux查看显卡)
- Linux 显卡驱动查看:一步搞定(linux显卡驱动查看)
- 查看Linux系统网卡驱动程序信息(查看网卡驱动linux)
- 深入理解Linux驱动开发技术(linux驱动开发详解)
- BeachBot:一款靠微软AI系统驱动的海滩自主清洁机器人
- 网卡Linux驱动:让您轻松获取网络连接(网卡linux驱动)
- 程序Linux系统如何获取高效的显示驱动程序(linux显示驱动)
- 7 个驱动开源发展的社区
- 如何在Linux系统中安装打印机驱动?(打印机linux驱动)
- 驱动Linux Hidraw驱动:深入了解如何利用它(linuxhidraw)
- Linux驱动LCD显示器的简易实施(linux驱动lcd)
- Linux系统下的串口驱动实践研究(linux系统串口驱动)
- 如何轻松安装Linux系统显卡驱动(linux装显卡驱动)
- Linux驱动框架:简单图示深入系统(linux驱动框架图)
- 探索Linux系统的驱动编程之旅(linux 驱动编程)
- 驱动Maven管理Oracle数据库驱动的安装与部署(maven的oracle)