昨天我尝试使用 XBMC 以 2D 模式观看 3D 电影,但我发现这对我来说不起作用。我查看了从命令行运行 XBMC 时遇到的一些错误:
libva info: VA-API version 0.35.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nouveau_drv_video.so
libva info: va_openDriver() returns -1
Failed to open VDPAU backend libvdpau_nouveau.so: cannot open shared object file: No such file or directory
我必须指出,我第一次遇到此错误时,它是“...nvidia.so”而不是 nouveau - 我认为这种情况发生了变化,因为我尝试切换到 nouveau,然后切换回 Nvidia。现在我实际上无法返回 Nvidia 驱动程序(这很糟糕,因为到目前为止我只是使用“附加驱动程序”设置来来回切换)。
尝试之后,我清除了 Nvidia 驱动程序,因为我注意到 Nvidia X Server 设置已安装但不包含任何设置,只有两个页面应用程序配置文件和 nvidia-settings 配置。我尝试通过“附加驱动程序”工具安装 Nvidia 驱动程序 331.38,但没有成功。附加驱动程序显示 Nvidia 331.38 处于活动状态,但我的 xorg 日志清楚地指出:
[ 352.415] (==) Matched nvidia as autoconfigured driver 0
[ 352.415] (==) Matched nouveau as autoconfigured driver 1
[ 352.415] (==) Matched nvidia as autoconfigured driver 2
[ 352.415] (==) Matched nouveau as autoconfigured driver 3
[ 352.415] (==) Matched modesetting as autoconfigured driver 4
[ 352.415] (==) Matched fbdev as autoconfigured driver 5
[ 352.415] (==) Matched vesa as autoconfigured driver 6
[ 352.415] (==) Assigned the driver to the xf86ConfigLayout
[ 352.415] (II) LoadModule: "nvidia"
[ 352.495] (WW) Warning, couldn't open module nvidia
[ 352.495] (II) UnloadModule: "nvidia"
[ 352.495] (II) Unloading nvidia
[ 352.495] (EE) Failed to load module "nvidia" (module does not exist, 0)
我尝试再次安装 Nvidia 驱动程序,但 libva 仍然出现同样的错误。看来我的系统现在使用 nouveau,但 nouveau 实际上在“/etc/modprobe.d/nvidia-331_hybrid.conf”中被列入黑名单(请注意,我安装的是 geforce 660 TI - 不是混合卡)
我四处寻找解决方案,但到目前为止似乎没有任何效果。我是不是哪里做错了?我真的很想让 Nvidia 驱动程序重新运行,甚至找出我的 libva 抛出这些错误的原因。
除此之外,我刚刚在我的系统日志中发现了这一点(一定是在我上次重新安装 Nvidia 之前,因为我再也没有收到这些消息):
kernel: [ 50.126660] nvidia: module license 'NVIDIA' taints kernel.
kernel: [ 50.126665] Disabling lock debugging due to kernel taint
kernel: [ 50.130161] nvidia: module verification failed: signature and/or required key missing - tainting kernel
kernel: [ 50.134126] NVRM: The NVIDIA probe routine was not called for 1 device(s).
kernel: [ 50.134130] NVRM: This can occur when a driver such as:
kernel: [ 50.134130] NVRM: nouveau, rivafb, nvidiafb or rivatv
kernel: [ 50.134130] NVRM: was loaded and obtained ownership of the NVIDIA device(s).
kernel: [ 50.134133] NVRM: Try unloading the conflicting kernel module (and/or
kernel: [ 50.134133] NVRM: reconfigure your kernel without the conflicting
kernel: [ 50.134133] NVRM: driver(s)), then try loading the NVIDIA kernel module
kernel: [ 50.134133] NVRM: again.
kernel: [ 50.134136] NVRM: No NVIDIA graphics adapter probed!
kernel: [ 50.134137] [drm] Module unloaded
kernel: [ 50.134203] NVRM: NVIDIA init module failed!
感谢您的阅读,如果您认为缺少重要信息,请告诉我。
欢迎提供所有与此相关的链接和更多信息(因为这让我抓狂!):)
答案1
我已找到解决我的问题的方法。
新黑名单:
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
类型:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
Ctrl+O 和 Ctrl+X 退出。
之后我只是停止了 x 服务器并重建了 initramfs。
Ctrl+Alt+F1 转到 TTY1。登录。
sudo service lightdm stop
sudo update-initramfs -u
重新启动shutdown -r 0
。vainfo 仍然会返回错误,但它也会显示有关配置文件和入口点的信息。像这样:
libva info: VA-API version 0.35.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.35 (libva 1.3.0)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.3
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG4Simple : VAEntrypointVLD
VAProfileMPEG4AdvancedSimple : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
现在唯一令人难过的是我不知道这一切是什么原因造成的。