如何在不破坏 X 的情况下从英特尔集成显卡切换到 nvidia GeForce 940mx?

Eth*_*gue 6 nvidia graphics intel-graphics drivers 16.10

昨天我买了一台包含 Nvidia 940mx 显卡和英特尔集成显卡的笔记本电脑。我发现它默认使用 Intel 集成显卡,但我希望它使用 Nvidia 卡。

我已经尝试在使用 Arch Linux 时切换,并切换到 Ubuntu,希望它可以在这里工作,因为我在 Arch Linux 上尝试时,导致 X Server 完全无法启动,报告无法启动找到显示,或沿着这些线的东西。因为我已经在切换时遇到了这个问题,所以我很犹豫要不要再试一次,而不先确保一切都能正常工作。

切换到 nvidia 卡似乎有几个相互冲突(和过时)的指南。使用vga_switcheroo不起作用,因为它/sys/kernel/debug/vgaswitcheroo/switch甚至不存在。任何描述使用 nvidia 卡的堆栈交换的现有问题要么已经过时,与所有其他问题不一致,要么与我的情况不一致。

一些硬件信息:

$ lspci -nnk | grep -i vga -A3 | grep 'in use'
Kernel driver in use: i915

$ lshw -short | grep display
/0/100/2                     display        Intel Corporation
/0/100/1c/0                  display        NVIDIA Corporation

$ lshw | grep -A10 "VGA\|3D"
         description: VGA compatible controller
         product: Intel Corporation
         vendor: Intel Corporation
         physical id: 2
         bus info: pci@0000:00:02.0
         version: 02
         width: 64 bits
         clock: 33MHz
         capabilities: vga_controller bus_master cap_list rom
         configuration: driver=i915 latency=0
         resources: irq:131 memory:b2000000-b2ffffff memory:c0000000-cfffffff ioport:5000(size=64) memory:c0000-dffff
--
            description: 3D controller
            product: NVIDIA Corporation
            vendor: NVIDIA Corporation
            physical id: 0
            bus info: pci@0000:01:00.0
            version: a2
            width: 64 bits
            clock: 33MHz
            capabilities: cap_list
            configuration: latency=0
            resources: memory:b3000000-b3ffffff memory:a0000000-afffffff memory:b0000000-b1ffffff ioport:4000(size=128) memory:b4000000-b407ffff

$ lspci -nnk | grep -i "VGA\|3D" -A3
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:5916] (rev 02)
    Subsystem: Acer Incorporated [ALI] Device [1025:111a]
    Kernel driver in use: i915
    Kernel modules: i915
--
01:00.0 3D controller [0302]: NVIDIA Corporation Device [10de:179c] (rev a2)
    Subsystem: Acer Incorporated [ALI] Device [1025:111a]
    Kernel modules: nvidiafb, nouveau
03:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)

$ sudo ubuntu-drivers devices                             
== cpu-microcode.py ==
driver   : intel-microcode - distro non-free

== /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0 ==
vendor   : NVIDIA Corporation
modalias : pci:v000010DEd0000179Csv00001025sd0000111Abc03sc02i00
driver   : xserver-xorg-video-nouveau - distro free builtin
driver   : nvidia-367 - distro non-free recommended

$ arch
x86_64
Run Code Online (Sandbox Code Playgroud)

鉴于这些信息,我从英特尔设备切换到 nvidia 显卡而不会有破坏 X 服务器的风险的最安全方法是什么?该系统运行的是 Ubuntu 16.10 Yakkety。

Pil*_*ot6 6

首先,您需要通过以下方式安装驱动程序

sudo apt install nvidia-367
Run Code Online (Sandbox Code Playgroud)

并重新启动。

您可以在Nvidia X Server Settings应用程序(PRIME 配置文件)中检查状态并切换适配器。

您也可以通过以下方式检查终端中的状态

prime-select query
Run Code Online (Sandbox Code Playgroud)

切换到英伟达

sudo prime-select nvidia
Run Code Online (Sandbox Code Playgroud)

通过以下方式切换到英特尔

sudo prime-select intel
Run Code Online (Sandbox Code Playgroud)

您需要注销并应用设置。