Nvidia Optimus 笔记本电脑:startX 和 xinit 不起作用 (Arch)

Nvidia Optimus 笔记本电脑:startX 和 xinit 不起作用 (Arch)

我无法启动我的电脑,因为 Xserver 没有启动。奇怪的是,当我使用 SDDM 时,它启动得很好。几个月前我也尝试过使用 Lightdm,但它不想启动,我猜是因为这个问题。

这个问题我已经有一年了,但它从来没有真正困扰过我,因为我总是使用 SDDM。我想停止使用它,所以这就是我需要修复此问题的原因。

系统信息

新取:

OS: Arch Linux x86_64 
Host: 80WK Lenovo Y520-15IKBN 
Kernel: 4.18.14-arch1-1-ARCH 
Uptime: 10 mins 
Packages: 1554 (pacman) 
Shell: zsh 5.6.2 
Resolution: 1920x1080, 1920x1080 
DE: KDE 
WM: KWin 
WM Theme: Breezemite 
Theme: Breeze [KDE], Adwaita [GTK2], X-Arc-Plus [GTK3] 
Icons: Papirus-Light [KDE], Adwaita [GTK2], Papirus [GTK3] 
Terminal: konsole 
Terminal Font: DejaVu Sans Mono 10 
CPU: Intel i7-7700HQ (8) @ 3.800GHz 
GPU: Intel Device 591b 
Memory: 1758MiB / 7851MiB

我正在使用专有的 Nvidia 驱动程序。不是大黄蜂或新贵,因为它们的性能受到影响。

uname -a:Linux ArchLinux 4.18.14-arch1-1-ARCH #1 SMP PREEMPT 10 月 13 日星期六 13:42:37 UTC 2018 x86_64 GNU/Linux

pacman -Q nvidia: 英伟达 410.57-6

我启用了知识管理系统消除屏幕撕裂,但禁用它并没有帮助。我没有 xorg.conf 文件,因为当我这样做时,甚至 SDDM 也无法启动。nvidia-xconfig从来没有为我工作过。

日志:

/var/log/Xorg.0.log:

这些都是在禁用 SDDM 的情况下执行的,因此我只需登录到第一个 tty:

执行时startxhttps://hastebin.com/zadepawiwo

执行时xinithttps://hastebin.com/muredinume

启用 SDDM 后,即可正常启动:https://hastebin.com/anatocavur

(hastebin 是正确的地方还是我应该将它们上传到其他地方?)


编辑:这是我执行时在终端中看到的内容:

sudo startx须藤开始(d-bus 的事情可能很有趣,但我不知道它意味着什么)。

startx启动x

这是我的 .xinitrc:

#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

xsetroot -cursor_name left_ptr
xrandr --output eDP-1 --primary
xrandr --output HDMI-1 --above eDP-1
xrandr --dpi 96


# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs


if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

sxhkd &
statnot &
feh --bg-fill ~/Pictures/DnA7hZgU8AAxfxC.jpg:large.jpg
exec bspwm

至于“可能的重复”这里,我尝试了他们的解决方案,但没有成功。对我来说,SDDM 可以在启用后启动,但我想在没有 DM 的情况下使用 bspwm。


在我的 BIOS 设置中禁用 NVIDIA GPU 起作用了startx,这表明问题出在 NVIDIA 上。是我的驱动程序有问题吗?难道是别的什么?

答案1

添加

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

到我的~/.xinitrc文件中,这使我能够在 BIOS 中启用 NVIDIA GPU 的情况下启动,并且无需 SDDM。

尚未添加的原因是因为在使用 SDDM 时我必须将其添加到/usr/share/sddm/scripts/Xsetup而不是添加到~/.xinitrc.我完全忘记了我没有~/.xinitrc像它所说的那样将其添加到我的文件中这里

相关内容