Ubuntu 16.04:使用 prime-select intel 并将 /usr/lib/nvidia-396 添加到 LD_LIBRARY_PATH 时出现登录问题

Ubuntu 16.04:使用 prime-select intel 并将 /usr/lib/nvidia-396 添加到 LD_LIBRARY_PATH 时出现登录问题

我正在使用我的 GPU(GTX 970)进行一些计算,所以我决定使用我的 CPU(i7-4790K)的集成卡来显示我的 2 个屏幕,因此我使用 prime-select intel 来执行此操作。

这样做似乎会导致 nvidia 工具的路径不再可用,因此我决定将 /usr/lib/nvidia-396 添加到我的 LD_LIBRARY_PATH。首先,我将其放在我的 ~/.bashrc 上,但这样做会导致从 DisplayManager 启动的程序无法使用该路径。然后我决定将其放在 /etc/profile.d/my-env-var.sh 上,并添加一堆我到处都需要的其他环境变量,例如 anaconda/cuda/cudnn。

奇怪的是,如果我将 /usr/lib/nvidia-396 添加到 /etc/profile.d/my-env-var.sh 中的 LD_LIBRARY_PATH,那么我就会陷入登录循环。~/.profile 也是如此。它对我有用的唯一地方是 ~/.bashrc,但那里不允许我使用定义了此 LD_LIBRARY_PATH 的 DisplayManager 程序。因此,除非程序允许,否则我手动添加 Nvidia,否则找不到它。

我不明白的是为什么 /usr/lib/nvidia-396 会导致我的登录失败。我尝试将其他随机路径(如 /usr/lib/lapack、~/dir_example)添加到我的 /etc/profile.d/my-env-var.sh 中的 LD_LIBRARY_PATH,并且它工作正常。

我知道两种解决方法,比如从 bash 启动我需要的每个应用程序,或者在我编写的每个程序中手动添加路径,但这很麻烦。我真的很想知道是什么导致它崩溃。

这是我的 PATH 和 LD_LIBRARY_PATH:

PATH = home/julesd/lib/Modules/bin:/home/julesd/bin:/home/julesd/.local/bin:/usr/local/cuda-9.2/bin:/home/julesd/lib/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

LD_LIBRARY_PATH = /usr/lib/nvidia-396:/usr/local/cuda-9.2/lib64

这是我的登录循环的 ~/.xsession-errors

openConnection: connect: No such file or directory
cannot connect to brltty at :0
upstart: unity7 main process (13638) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13668) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13698) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13728) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13769) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13799) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13829) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13859) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13889) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13919) killed by SEGV signal
upstart: unity7 main process ended, respawning
upstart: unity7 main process (13949) killed by SEGV signal
upstart: unity7 respawning too fast, stopped
upstart: gnome-session (Unity) main process (13420) terminated with status 1
upstart: logrotate main process (13250) killed by TERM signal
upstart: unity-panel-service main process (13433) killed by TERM signal
upstart: indicator-bluetooth main process (13480) killed by TERM signal
upstart: indicator-power main process (13481) killed by TERM signal
upstart: indicator-datetime main process (13482) killed by TERM signal
upstart: indicator-printers main process (13490) killed by TERM signal
upstart: indicator-session main process (13491) killed by TERM signal
upstart: indicator-application main process (13510) killed by TERM signal
upstart: Disconnected from notified D-Bus bus
upstart: bamfdaemon main process (13358) killed by TERM signal

相关内容