禁用nouveau 驱动并安装nvidia驱动

参考:Ubuntu 安装 NVIDIA 显卡驱动详细步骤(ERROR: The Nouveau kernel driver is currently in use by your system)

1.移除nouveau驱动

Nouveau 是由第三方为 NVIDIA 显卡开发的一个开源 3D 驱动,也没能得到 NVIDIA 的认可与支持。很多 Linux 发行版默认集成了 Nouveau 驱动,在遇到 NVIDIA 显卡时默认安装。用户在安装 NVIDIA 官方私有驱动的时候 Nouveau 又成为了阻碍,不禁用 Nouveau 安装时总是报错。

# 编辑内容如下
$ cat /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0

# 使其生效
$ sudo update-initramfs -u

2. 去nvidia官网下载驱动

3. 安装驱动

$ sudo ./NVIDIA-Linux-x86_64-535.86.05.run
  • 一路点击YES

4. 检查驱动安装情况

nvidia-smi

双显卡切换配置

参考:archlinux 笔记本安装nvidia显卡驱动与intel显卡驱动

#生成nvidia独显的配置文件/etc/X11/xorg.conf
$ nvidia-xconfig

$ sudo apt install -y x11-xserver-utils libxrandr2 libxrandr-dev

1. 编辑/etc/X11/xorg.conf

编辑之前需要查询一些信息.用lspci | grep -E "VGA|3D"来查询 NVIDIA 显卡的 PCI 地址.PCI 地址是提到 NVIDIA 的输出行的前7个字符,看起来像 01:00.0. 在 xorg.conf 中,需转换为 #:#:# 格式;例如 01:00.0 应该写成 1:0:0.BusID 那里 N 卡一般是 BusID “PCI:1:0:0” 注意格式,00:02.0 这种形式需要转换成 0:2:0.编辑配置文件加入下面的内容:

Section "Device"
    Identifier     "nvidia"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:1:0:0"
    Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier     "intel"
    Driver         "modesetting"
    BusID          "PCI:0:2:0"
EndSection

对于xorg.conf的配置解释可以看 Linux学习-X Server 配置文件解析与设定

我将intel显卡设为默认显卡,所以我的配置如下:

  • 我加入了上面的Device内容
  • 我将"Device0" 改成了"intel"。 即“Screen”会受到影响。
$ cat /etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 535.86.05

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection


Section "Screen"
    Identifier     "Screen0"
    Device         "intel"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection


Section "Module"
        Load "modesetting"
EndSection

Section "Device"
    Identifier     "nvidia"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:1:0:0"
    Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier     "intel"
    Driver         "modesetting"
    BusID          "PCI:0:2:0"
EndSection

2. 设置窗口管理器

SDDM:

$ cat /usr/share/sddm/scripts/Xsetup
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

其他窗口管理器参考 archlinux 笔记本安装nvidia显卡驱动与intel显卡驱动

3.设置prime-run

# 安装环境
$ sudo apt install nvidia-prime
# 设置脚本
$ cat /usr/bin/prime-run
#!/bin/bash
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
exec "$@"

$ chmod +x /usr/bin/prime-run

后续使用时

prime-run xx-app

4. 重启

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐