我有以下问题:
几个小时以来,我一直试图让 TES 4 Oblivion 在 Ubuntu 上运行,但毫无进展。启动器启动正常,但它就是拒绝识别 Nvidia GPU。但我确信所有其他程序都可以在 Nvidia CPU 上运行良好,因为游戏在启动时崩溃,在我将 Prime Profile 更改为 Nvidia(性能模式)之前没有发生过这种情况(这应该使所有应用程序都使用 Nvidia GPU 运行,对吗?)。
现在 Oblivion 因这个问题而臭名昭著,尤其是在笔记本电脑上,因为它在 Windows 上会产生同样的错误,但这是一个很容易解决的问题,因为您可以从 Nvidia 控制面板手动告诉它使用 Nvidia GPU,而 Ubuntu 没有这个选项。
故障排除信息:
sudo lshw -C 视频
*-display
description: VGA compatible controller
product: Haswell-ULT Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
logical name: /dev/fb0
version: 0b
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=i915 latency=0 resolution=1600,900
resources: irq:51 memory:b5000000-b53fffff memory:c0000000-cfffffff ioport:6000(size=64) memory:c0000-dffff
*-display
description: 3D controller
product: GM108M [GeForce 830M]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:0a:00.0
version: a2
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:54 memory:b3000000-b3ffffff memory:a0000000-afffffff memory:b0000000-b1ffffff ioport:3000(size=128)
sudo lsmod | grep nvidia
vidia_uvm 1216512 0
nvidia_drm 69632 10
nvidia_modeset 1159168 6 nvidia_drm
nvidia 39112704 450 nvidia_uvm,nvidia_modeset
drm_kms_helper 307200 2 nvidia_drm,i915
drm 606208 15 drm_kms_helper,nvidia,nvidia_drm,i915,ttm
sudo nvidia-smi
Thu Jun 16 23:27:59 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.60.02 Driver Version: 510.60.02 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:0A:00.0 Off | N/A |
| N/A 49C P0 N/A / N/A | 223MiB / 2048MiB | 9% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1653 G /usr/lib/xorg/Xorg 60MiB |
| 0 N/A N/A 1914 G /usr/bin/gnome-shell 26MiB |
| 0 N/A N/A 2424 G ...2/usr/lib/firefox/firefox 131MiB |
| 0 N/A N/A 5988 G /usr/bin/nvidia-settings 0MiB |
+-----------------------------------------------------------------------------+
sudo inxi-Gx
Graphics:
Device-1: Intel Haswell-ULT Integrated Graphics vendor: Hewlett-Packard
driver: i915 v: kernel bus-ID: 00:02.0
Device-2: NVIDIA GM108M [GeForce 830M] vendor: Hewlett-Packard
driver: nvidia v: 510.60.02 bus-ID: 0a:00.0
Device-3: Chicony HP Truevision HD camera type: USB driver: uvcvideo
bus-ID: 1-1.3:3
Display: server: X.Org v: 1.21.1.3 driver: X: loaded: modesetting,nvidia
unloaded: fbdev,nouveau,vesa gpu: i915 resolution: 1600x900~60Hz
OpenGL: renderer: NVIDIA GeForce 830M/PCIe/SSE2 v: 4.6.0 NVIDIA 510.60.02
direct render: Yes
游戏崩溃时终端中的错误消息:
Game process updated : AppID 22330 "/home/sadomessiah/.steam/debian-installation/ubuntu12_32/reaper SteamLaunch AppId=22330 -- '/home/sadomessiah/.steam/debian-installation/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/sadomessiah/.steam/debian-installation/steamapps/common/Proton 7.0'/proton waitforexitandrun '/home/sadomessiah/.steam/debian-installation/steamapps/common/Oblivion/OblivionLauncher.exe'", ProcID 24257, IP 0.0.0.0:0
MESA-INTEL: warning: Haswell Vulkan support is incomplete
MESA-INTEL: warning: Haswell Vulkan support is incomplete
Fossilize INFO: Overriding serialization path: "/home/sadomessiah/.steam/debian-installation/steamapps/shadercache/22330/fozpipelinesv6/steamapprun_pipeline_cache".
wine: Unhandled page fault on read access to 00000880 at address 00497E10 (thread 0170), starting debugger...
ThreadGetProcessExitCode: no such process 24293
pid 24156 != 24155, skipping destruction (fork without exec?)
ThreadGetProcessExitCode: no such process 24223
ThreadGetProcessExitCode: no such process 24191
ThreadGetProcessExitCode: no such process 24185
ThreadGetProcessExitCode: no such process 24174
ThreadGetProcessExitCode: no such process 24165
ThreadGetProcessExitCode: no such process 24162
ThreadGetProcessExitCode: no such process 24154
ThreadGetProcessExitCode: no such process 24152
Game process removed: AppID 22330 "/home/sadomessiah/.steam/debian-installation/ubuntu12_32/reaper SteamLaunch AppId=22330 -- '/home/sadomessiah/.steam/debian-installation/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/sadomessiah/.steam/debian-installation/steamapps/common/Proton 7.0'/proton waitforexitandrun '/home/sadomessiah/.steam/debian-installation/steamapps/common/Oblivion/OblivionLauncher.exe'", ProcID 24257
ThreadGetProcessExitCode: no such process 24257
ThreadGetProcessExitCode: no such process 23981
ThreadGetProcessExitCode: no such process 23980
Game 22330 created interface STEAMAPPS_INTERFACE_VERSION003 / Apps
Game 22330 created interface SteamUtils004 / Utils
Game 22330 method call count for IClientAppManager::BIsDlcEnabled : 1
Game 22330 method call count for IClientUtils::RecordSteamInterfaceCreation : 2
Game 22330 method call count for IClientUtils::GetAppID : 3
Game 22330 method call count for IClientUser::BIsSubscribedApp : 1
Uploaded AppInterfaceStats to Steam
Wayland 协议已禁用
我已经运行了 sudo prime-select nvidia (+reboot)
根据 gpu-manager.log,nouveau 被列入黑名单
我还重新安装了 nvidia 驱动程序 (+reboot)
我还测试使用 PRIME 配置文件:Nvidia On-Demand 再次运行游戏。游戏能够启动(我猜是因为它现在可以使用英特尔 GPU)但当我将其改回仅 nvidia 时它无法运行。
经过进一步的故障排除后,我发现尽管 ubuntu 和所有终端命令都显示 nvidia 卡已启动并正在运行,但似乎缺少 nvidia 模块,尽管已多次安装了驱动程序:
命令 optirun glxgears
[ 125.640717] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "nvidia" (module does not exist, 0)
[ 125.640759] [ERROR]Aborting because fallback start is disabled.
我目前正在尝试解决这个问题,但由于我对 Linux 还比较陌生,因此任何帮助都将不胜感激。
系统信息:
- 操作系统:Ubuntu 22.04 LTS 64位
- GNOME 版本:42.1
- 窗口系统:X11
- 质子:7.0-3
- 处理器:Intel Core i3-4030 CPU @ 1.90GHz x 4
- 显卡:NVIDIA Corporation GM108M [GeForce 830M]/NVIDIA GeForce 803M
我真的希望有人能帮助我解决这个问题,因为我真的很想玩这个游戏,而且接下来的几个月我唯一的选择就是这台 Ubuntu 笔记本。
谢谢大家!
答案1
所以我对此有一个半解决方案,但它并不理想,我仍然需要帮助解决这个问题,但我将其作为答案发布,以免使问题看起来太复杂:
我已经放弃尝试运行 nvidia PRIME,因为它拒绝运行。它根本不起作用,就是这样。所以我研究了替代方案,找到了 Bumblebee(Optirun 和 primusrun)。使用最新的驱动程序,它们都无法工作,如我之前的评论所示,因为它们无法加载 nvidia 模块。我发现了这一点:https://github.com/Bumblebee-Project/Bumblebee/issues/526并相应地更改了 xorg.conf.nvidia 和 bumblebee.conf,但仍然出现相同的问题。但我注意到该线程有点旧,而且由于我自己使用的是旧显卡,所以我完全删除了所有与 nvidia 和 bumblebee 相关的内容,并完全重新安装了 nvidia 驱动程序,但使用的是旧版本 (390)。再次尝试更改配置,但仍然出现相同的错误。
然后我找到了这个线程:https://github.com/Bumblebee-Project/Bumblebee/issues/951并再次更改了配置文件但无济于事。但是,在这个线程的下方(第 8 个答案),我找到了一个解决方案,至少可以让 primusrun(sudo primusrun 应用程序)正常工作,方法是修补运行终端命令的脚本以将其指向正确的库,现在该命令至少不会返回错误并可以正常运行 glxgears。现在甚至 Oblivion 也会启动(在相应地更改 steam 中的启动选项后),虽然它运行起来很糟糕,但在使用按需 PRIME 配置文件时,运行时的问题比以前少(树在闪烁等)。但我不确定它是否真的使用了 NVIDIA GPU,因为启动器中的选项菜单仍然只显示 Intel GPU,所以我仍然需要帮助解决这个问题,如果有人比我更了解 Linux,我将不胜感激,因为我也认为其他人可以从中受益。
提前致谢。