nvidia-persistenced 不工作的问题

Wir*_*red 6 nvidia

我遇到了一个问题,我认为我已将其范围缩小到 nvidia 持久性守护进程。

问题:我的 HTPC 连接到我的 Onkyo 接收器。当我关闭接收器并重新打开时,我没有来自 HTPC 的信号。我可以按Ctrl+ Alt+F1并运行sudo stop lightdm,然后sudo start lightdm。一旦我这样做了,我就会回到常规屏幕。这不是一个长期的解决方案,尽管

  1. 这是一种痛苦
  2. 我会有其他想看电视但不知道该怎么做的用户。

通过我的 googlefu,我发现我需要将持久模式设置为开启,尽管这将消失。我已经尝试过这种方法,sudo "nvidia-smi -pm 1"它会将其设置为开启,但它似乎不起作用,因为问题会再次发生。

我也试过运行sudo nvidia-persistenced --user [user] --persistence-mode,我可以看到一个进程开始。但是,当我关闭接收器时,也会发生同样的事情。

syslog有以下几点:

... nvidia-persistenced: Failed to open PID file: File exists
... nvidia-persistenced: Shutdown (5232)
Run Code Online (Sandbox Code Playgroud)

我已确保我nvidia-persistenced运行的用户是该nvidia-persistenced组的一部分。我还将/var/run/nvidia-persistenced/文件夹的权限设置为 777。

我快疯了试图解决这个问题。我希望能够关闭我的接收器,当我重新打开它时,屏幕会出现在我离开的地方。

  • 运行 Ubuntu 14.04(Mythbuntu 安装)
  • 显卡是 Nvidia GT 730 使用驱动程序 352.63

此外,一旦我让nvidia-persistenced守护进程工作,我需要将它设置为在系统启动时启动。我该怎么做?

小智 6

2019 年 5 月

关于错误:

... nvidia-persistenced: Failed to open PID file: File exists
... nvidia-persistenced: Shutdown (5232)
Run Code Online (Sandbox Code Playgroud)

安装 CUDA 工具包 (10.0) 并尝试遵循推荐的安装后操作后,我在 Ubuntu 18.04.02 LTS 上遇到此错误。我按照指南通过 nvidia 存储库进行安装。

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#install-persistenced

我的问题是守护进程实际上已经在运行。

要验证运行:

ps aux | grep persistenced
Run Code Online (Sandbox Code Playgroud)

你应该得到一些东西

root       714  0.0  0.0   8864  1396 ?        Ss   19:44   0:00 /usr/bin/nvidia-persistenced --verbose
root      6723  0.0  0.0  22000  1112 pts/0    S+   20:25   0:00 grep --color=auto persistenced
Run Code Online (Sandbox Code Playgroud)

进程 714(在您的情况下,pid 可能会有所不同)是守护进程已经在运行,这就是为什么当我再次执行命令时它失败了。

因此,该服务实际上已经由 cuda 软件包安装。要确认此运行:

systemctl list-units --type service --all | grep nvidia
Run Code Online (Sandbox Code Playgroud)

你应该得到如下内容:

  nvidia-persistenced.service                           loaded    active   running NVIDIA Persistence Daemon  
Run Code Online (Sandbox Code Playgroud)

这确认服务已经启动并运行。


Wir*_*red 2

我能够在另一个论坛的帮助下解决这个问题,但如果有人感兴趣,这里是解决方案。

基本上按照此链接中的说明进行操作:https://www.mythtv.org/wiki/Nvidia-cards_and_no_picture_when_box_is_on_before_the_TV

如果该链接被删除,以下是我所做的要点:

  • 在本地 X-Server 上运行“nvidia-settings”
  • 单击与您的电视对应的条目(例如 DFP-0) 单击“获取”
  • EDID”并将“edid.bin”文件保存在安全的地方,例如
    “/etc/X11/tv-edid.bin”
  • 打开现有的配置文件,通常位于 /etc/X11/xorg.conf
  • 找到您的视频卡的“设备”部分。
  • 添加一行以强制存储 EDID:
  • Option "CustomEDID" "DFP-0:/etc/X11/edid.bin"
  • 重启

我最终还添加了以下几行,但不确定是否需要它们:

Option "ModeValidation" "NoDFPNativeResolutionCheck"
Option "ExactModeTimingsDVI" "True"
Option "UseDisplayDevice" "DFP-0"
Option "ConnectedMonitor" "DFP-0" `
Run Code Online (Sandbox Code Playgroud)

现在我可以关闭接收器和/或更改输入,并且可以准确地返回我的 HTPC。


And*_*aev 1

尝试安装 libcupti,它对我有帮助。

sudo apt-get install libcupti-dev
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这有帮助。但这是 Tensorflow在安装过程中要求的库之一。具体来说,它列在“在 GPU 支持下运行 TensorFlow 的 NVIDIA 要求”下:

libcupti-dev 库,即 NVIDIA CUDA 配置文件工具接口。该库提供高级分析支持。

另外,内核也可能存在问题,我发现了这一点,已在此处修复:Nvidia 驱动程序失败和登录循环问题