双系统显卡冲突修复记录

关于双系统(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

相关推荐
bjxiaxueliang1 小时前
一文解决蓝牙连接难题:Ubuntu命令行蓝牙强制配对
linux·ubuntu·蓝牙连接命令
Will_Ye1 小时前
Ubuntu22.04 蓝牙设备快速自动连接
ubuntu·bluetoothctl
lihe7583 小时前
每天凌晨3点自动同步UBUNTU源
linux·运维·ubuntu·本地源
zbliquan4 小时前
SS928v100远程ubuntu交叉编译开发环境搭建
linux·运维·ubuntu
_叶小格_6 小时前
cp、scp、rsync命令详解
linux·运维·服务器·ubuntu·centos·运维开发
小天源7 小时前
CentOS 7介绍及其下载
linux·运维·ubuntu·centos·麒麟·windows11·windows10
CheungChunChiu7 小时前
V4L2 框架下 `v4l2-ctl --list-frameintervals` 调用链解析
linux·ubuntu·sensor·cam
YMWM_8 小时前
不同局域网下登录ubuntu主机
linux·运维·ubuntu
70asunflower12 小时前
Ubuntu Terminal 从零开始教程 - Windows用户转Linux指南
linux·windows·ubuntu
longxibo12 小时前
【Ubuntu datasophon1.2.1 二开之四:解决YARN安装问题】
linux·运维·ubuntu