当前位置: 首页 > news >正文

学有所得-Deepin linux操作系统在安装nvidia显卡驱动后的问题修复

  • 目标:

装有deepin V20.9的移动硬盘在系统启动后无法进入图形化界面,修复系统。

  • 背景:

为了方便随时随地开发研究,又不破坏笔记本电脑原装的正版操作系统,在一个朗科(容量500G)的移动硬盘上安装了deepin V20.9 linux操作系统,并安装了java/python相关常用开发工具,这样不用每次出门都带电脑.为了防止移动硬盘丢失时数据无意间泄露,还对移动硬盘进行了全盘加密.

某日为了学习大模型的开发,需要安装nvidia驱动\cuda\cudnn, 在移动硬盘的系统上未作预先处理,直接安装了nvdia官网的驱动程序(版本570.124.04,导致无法进入移动硬盘里的系统,左上角光标闪动,就是没法进入图形化界面,但是通过ctrl+alt+f2 可以进入控制台界面.

  • 解决过程:

1.搜索网上安装nvidia 显卡驱动引起的问题相关资料,很多文章指出nouveau的禁用问题.

vi /etc/modprobe.d/blacklist.conf

输入以下内容

blacklist nouveau

options nouveau modeset=0

关闭程序,执行以下命令

sudo update-initramfs -u

通过实践发现,我的系统即便做了这个操作仍未解决问题.同时,在安装显卡驱动(版本570.124.04)的过程中,安装程序提示需要对nouveau做处理,经用户确认后,驱动安装程序自动做了处理.因此猜想,新版nvidia驱动已解决了nouveau这个问题.

可以通过以下命令确认是否已经关闭nouveau模块

lsmod | grep nouveau

如果没有任何输出,说明已经没有启用.

2.为了移动硬盘里的linux操作系统能够在安全模式下启动,需要导入密钥,认证一下启动程序.如果不导入密钥,在安全启动下,系统无法正常启动,还会提示找不到mmx64.efi 等文件的提示,连系统的console界面都无法进入.在进入console界面,第二次安装nvidia驱动后,出现了grub无法启动的情况,提示缺少mmx64.efi文件(吓了一跳,以为彻底蹦了,要重装系统).后经探索,解决过程如下:

显卡驱动安装过程中,程序提示生成非对称密钥,密钥的路径为: 

/usr/share/nvidia/

文件名类似:nvidia-modsign-crt-xxxx.der,以der结尾

要导入密钥

mokutil --import /usr/share/nvidia/nvidia-modsign-crt-xxxx.der

导入过程需要设置密码,需要记住密码,后续要用到.

然后在非安全模式下启动,如果提示找不到mmx64.efi文件,可以选择efi文件方式启动,进入移动硬盘的efi分区,手动指定文件.像deepin V20.9 版本里,boot 目录里没有mmx64.efi文件,但是在deepin 目录里有该文件,可以手动选择,然后正常启动grub程序.第一次启动时,会进入一个蓝色界面,是mok的管理程序,根据提示操作即可.如果提示输入证书的密码,即上文中自己设置的密码.只要输入一次即可.然后,在bios中,再把安全启动的功能打开,可以正常启动了.

3.经过第二步,虽然可以安全模式启动,但是仍然无法进入图形化界面.一直找不到解决办法,但是网上有高人提出了一个临时解决办法,即在双显卡的笔记本中,把默认的显卡输出修改为intel,修改后,系统修复完成,可以正常进入系统.执行nvidia-smi 正常显示.临时解决办法如下:

先查看当前的显卡列表

netac@netac-PC:~/Downloads$ lspci|grep VGA
00:02.0 VGA compatible controller: Intel Corporation Device a788 (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 28e0 (rev a1)

留意前面的几个数字 00:02.0,01:00.0 待会儿要用到

 vi /etc/X11/xorg.conf

打开文件,找到如下内容

Section "Device"

    Identifier     "Device0"

    Driver         "nvidia"

    VendorName     "NVIDIA Corporation"

    BusID          "PCI:1:0:0"

EndSection

把它修改为:

Section "Device"

    Identifier     "Device0"

    Driver         "intel"

    VendorName     "Intel Corporation"

    BusID          "PCI:0:2:0"

EndSection

其中,BusID是关键,后面的0:2:0,即前面lspci中获得的信息.要根据电脑的实际情况填写.

然后重启,问题解决.

  • 总结:

核心点是默认显卡的调整.

相关文章:

  • IT6636: 3-IN 1-OUT HDMI 2.1 (48 Gbps) Retiming Switch with Embedded MCU
  • mybatis_plus的乐观锁
  • C++《红黑树》
  • Python第五章05:银行ATM机程序
  • 蓝桥杯备考:DFS求最短路之字串变换
  • TCP协议的多线程应用、多线程下的网络编程
  • 数字孪生的建模师blender和maya你更喜欢用哪个?
  • 【图像处理基石】什么是动态范围?
  • 数据结构入门(1)——算法复杂度
  • 【Linux】Bash是什么?怎么使用?
  • 【力扣刷题实战】最大连续1的个数 III
  • QQ村旅游网站的设计基于SSM项目的【QQ村旅游网站的设计】
  • 若依分离版整合多数据源——Phoenix+HBase
  • 【初始C语言】转义字符
  • 图数据库Neo4j和JDK安装与配置教程(超详细)
  • 【C#高级编程】—表达式树详解
  • 深入理解Linux文件系统:从磁盘结构到inode与挂载
  • 【GPT入门】第25课 掌握 LangChain:链式调用的奥秘、特性与使用示例
  • javaEE————文件IO(1)
  • 供应链攻击:企业防护的最薄弱环节
  • “复旦源”一源六馆焕新启幕,设立文化发展基金首期1亿元
  • 以色列媒体:哈马斯愿意释放部分人员换取两个月停火
  • 上海老字号卖黄金,与动漫IP联名两周销售额近亿元
  • 淄博一酒店房间内被曝发现摄像头,当地警方已立案调查
  • 中国人民银行等四部门联合召开科技金融工作交流推进会
  • 商务部:长和集团出售港口交易各方不得规避审查