双系统显卡冲突修复记录

关于双系统(ubuntu+win)安装显卡驱动黑屏记录

电脑配置:机械革命蛟龙17ks amd核显 + 4060laptop独显
系统: win11 + ubuntu22.04
提示:先看一下你是不是和我类似的核显+独显的配置,如果不是可以先参考其他文章,以免浪费时间

目录

​ 最近由于学习isaaclab,安装双系统(wsl不支持显卡直接驱动,官方也没有针对wsl作优化),去nvidia的官网下载.run的驱动包安装

安装过程中要我同意它禁用nouveau,如下,否则编译会报错,经之后重新启动也能正常进入桌面,继续完成编译。

text 复制代码
  One or more modprobe configuration files to disable Nouveau have been written.  You will need to reboot your     
  system and possibly rebuild the initramfs before these changes can take effect.  Note if you later wish to       
  reenable Nouveau, you will need to delete these files:
  /usr/lib/modprobe.d/nvidia-installer-disable-nouveau.conf,
  /etc/modprobe.d/nvidia-installer-disable-nouveau.conf

​ 安装之后使用nvidia-smi也能显示显卡信息,我之后正常启动isacclab也没有问题,以为万事大吉了。结果搞完第二天打开电脑天塌了,直接卡在黑屏处无法正常进入桌面。

于是开启了漫长的一整个晚上+一整个上午的debug (ps: 你知道我这两天是怎么过的吗?!哈基驱动

下面我分几个步骤来讲解如何解决这个问题

一、如果直接启动黑屏,但是你可以使用ctrl + alt + f 1 or f 2 ... f8进入终端

这就说明你的系统其实已经启动了

step1:

检查你的显示管理系统是否启动

复制代码
sudo systemctl status gdm3
sudo systemctl status lightdm

如果显示dead就说明没有启动,这个稍后在说,也有一种是runing仍然没有桌面的

step2:

检查nvidia驱动是否加载

复制代码
nvidia-smi

正常显示显卡信息就说明加载成功,加载成功就可以进入step3,不行就先进入step2.1

step2.1:

卸载驱动

分两种

  1. 使用.run进行安装的

    复制代码
    sudo ./显卡驱动包名称 --uninstall
    # 比如 sudo ./NVIDIA-Linux-x86_64-430.26.run --uninstall
  2. 使用apt进行安装的

    复制代码
    sudo spt autoremove nvidia-driver-XXX  
    #xxx 由 tap自行补全

检查目录:

/usr/lib/modprobe.d/nvidia-installer-disable-nouveau.conf,

/etc/modprobe.d/nvidia-installer-disable-nouveau.conf

这两个文件是否存在,如果有就删除它

step2.2:

好,此时你可以再重启一下电脑,先进入引导页面

选择ubuntu advance(或者类似)

然后选择security安全模式进入

之后通过方向键选择root

输入密码

(这会是一个命令行界面)

然后

bash 复制代码
sudo vim /etc/default/grub

(ps:按i开始编辑,按esc,并且按住shift + : 再输入wq保存并退出)

找到这一行

复制代码
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

quiet splash表示不显示启动的那种刷屏的调试信息

在后面加一个空格 输入nomodeset

变成这样

复制代码
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

然后

bash 复制代码
sudo update-grub # 更新一下系统启动选项

之后重启

bash 复制代码
sudo reboot

step2.3:

应该就能进入桌面可视化了,如果不能,

你可以尝试一下

bash 复制代码
sudo systemctl status gdm3

如果是dead

你可以手动启动它

启动之前你需要先

bash 复制代码
sudo dpkg-reconfigure gdm3
#通过方向键选择gdm3为默认的显示管理器

然后

bash 复制代码
sudo systemctl enable gdm3
sudo systemctl stop lightdm#如果你在之前装了这lightdm玩意的话,我觉得这个很奇怪,启动它就进不去桌面,之前用户认证也通过了,因为用gdm3成功了就没有详细研究这个了
sudo systemctl disable lightdm 

然后reboot

step2.4:

如果还是进不去。。。。。。

也没关系,我们继续

1.如果你仍然是黑屏

ctrl + alt + f3

打开一个终端

2.如果你进入了桌面

ctrl + alt + t

bash 复制代码
sudo apt update
ubuntu-drivers devices
# 选择不带-open结尾的版本
# 如
== /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 ==
modalias : pci:v000010DEd000028A0sv00001D05sd0000128Abc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-570 - distro non-free
driver   : nvidia-driver-580-open - distro non-free recommended
driver   : nvidia-driver-580 - distro non-free
driver   : nvidia-driver-570-server - distro non-free
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-580-server-open - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-580-server - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-570-open - distro non-free
driver   : nvidia-driver-570-server-open - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

# 选择nvidia-driver-580

# 输入
sudo apt install nvidia-driver-580
# 安装完成之后应该输入
nvidia-smi # 可以看到显卡信息

step3:

检查你系统的显卡是否只有一张

bash 复制代码
lspci | grep VGA

如果你出现了两行信息

类似

复制代码
01:00.0 VGA compatible controller: NVIDIA Corporation AD107M [GeForce RTX 4060 Max-Q / Mobile] (rev a1)
07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 (rev c2)

07:00.0 就是busid 7:0:0

再打开一个终端

复制代码
sudo -i #进入超级管理员
vim /etc/X11/xorg.conf

把下面的配置放进去(你要修改的是VendorName和BusID,改成你的核显的信息,这一步的详细信息可以由lspci | grep VGA拿到)。

VendorName不需要写全,可以索引到唯一值就行。

复制代码
Section "Module"
        Load "modesetting"
EndSection
 
Section "Device"
        Identifier      "Device1"
        Driver          "modesetting"
        VendorName      "Intel Corporation"
        BusID           "PCI:0:2:0"
EndSection

其余细节参看:
https://blog.csdn.net/m0_63252914/article/details/134400519?sharetype=blog&shareId=134400519&sharerefer=APP&sharesource=mobkbk&sharefrom=link

(ps:这篇文章的作者用的是nano,我用的是vim,都是文本编辑器,自己觉得哪个好用就用哪个吧)

好,之后注意要把原来step2.2改过的那句话改回去:

text 复制代码
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

记得wq退出

复制代码
sudo update-grub # 更新一下系统启动选项

也可以再检查一下step2.3

之后重启应该就没问题啦!

二、如果一无法实现

进入 step2.2 ------》step2.1------》step2.3再继续往后走

参考链接

https://blog.csdn.net/m0_63252914/article/details/134400519?sharetype=blog&shareId=134400519&sharerefer=APP&sharesource=mobkbk&sharefrom=link

https://blog.csdn.net/gaoenyang760525/article/details/131219814

https://blog.csdn.net/xiaxl/article/details/146975458

https://zhuanlan.zhihu.com/p/671285335

相关推荐
oMcLin15 小时前
如何在 Ubuntu 22.04 LTS 上部署并优化 OpenStack 云计算平台,实现多租户虚拟化与弹性伸缩?
ubuntu·云计算·openstack
majingming12316 小时前
ubuntu下的交叉编译
linux·运维·ubuntu
shchojj16 小时前
ubuntu 因为写错pam.d文件引起的sudo权限丢失
linux·运维·ubuntu
一尘之中17 小时前
Ubuntu 22.04 上 FastAPI 的完整安装与问题解决指南
ubuntu·fastapi·ai写作
Stuomasi_xiaoxin20 小时前
ROS2介绍,及ubuntu22.04 安装ROS 2部署使用!
linux·人工智能·深度学习·ubuntu
MIXLLRED1 天前
Ubuntu 22.04/ROS2 Humble下使用Intel RealSense D435i相机
ubuntu·d435i·ros2·深度相机
马踏岛国赏樱花1 天前
Windows与Ubuntu双系统,挂载D/E盘到Ubuntu下时只能读的问题
linux·windows·ubuntu
Levin__NLP_CV_AIGC1 天前
Ubuntu部署Dufs
linux·运维·服务器·ubuntu·ssh
C_心欲无痕1 天前
ts - 模板字面量类型与 `keyof` 的魔法组合:`keyof T & `on${string}`使用
linux·运维·开发语言·前端·ubuntu·typescript