Playonlinux - Steam 游戏无法启动

Playonlinux - Steam 游戏无法启动

我正在运行 Ubuntu gnome 14.04。

我通过以下方式安装了 Steam玩转Linux一切顺利。

我通过 Steam 安装了一些 Windows 游戏。

当我点击“开始游戏”启动游戏时,出现一个窗口,提示准备启动(插入游戏名称)一两秒钟后,窗口关闭,什么也没有发生。

我已经看到很多关于此问题的帖子,但没有一个能为我提供解决方案,而且其中许多帖子都已失效。

我尝试过的一个方法是添加gameoverlayrenderer.dllWine 库并将其设置为禁用。但没有用。

编辑:根据 Ducky 的建议,以下是 Playonlinux 日志(可通过调试模式访问)

启动 Steam:

urns a fake device notification handle!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d6d8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d6d8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d870,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x33d870,0x00000000), stub!
fixme:win:RegisterDeviceNotificationW (hwnd=0x10118, filter=0xe1fe92c,flags=0x00000000) returns a fake device notification handle!
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:RegisterDeviceNotificationW (hwnd=0x20118, filter=0xe1fe92c,flags=0x00000000) returns a fake device notification handle!
fixme:advapi:RegisterTraceGuidsW (0x100a3de0, 0x12035da0, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x11faf518, (null), (null), 0x12035db8): stub
fixme:process:SetProcessDEPPolicy (3): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:advapi:RegisterTraceGuidsW (0x100a3de0, 0x12035da0, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x11faf518, (null), (null), 0x12035db8): stub
fixme:gdi:GdiInitializeLanguagePack stub
[0821/165518:ERROR:renderer_main.cc(227)] Running without renderer sandbox
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:ver:GetCurrentPackageId (0x1f5e9f8 (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x10056360, 0x100d7648, 0x100d7640
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x10056360, 0x100d7680, 0x100d7678
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x10056360, 0x100d7610, 0x100d7608
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x10056360, 0x100d76b8, 0x100d76b0
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x10056360, 0x100d76f0, 0x100d76e8
fixme:imm:ImmGetOpenStatus (0x135a48): semi-stub
fixme:ver:GetCurrentPackageId (0x33f15c (nil)): stub
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:imm:ImmReleaseContext ((nil), (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x10056360, 0x100d7648, 0x100d7640
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x10056360, 0x100d7680, 0x100d7678
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x10056360, 0x100d7610, 0x100d7608
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x10056360, 0x100d76b8, 0x100d76b0
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x10056360, 0x100d76f0, 0x100d76e8
fixme:imm:ImmGetOpenStatus (0x135a48): semi-stub
fixme:ver:GetCurrentPackageId (0x33f15c (nil)): stub
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:imm:ImmReleaseContext ((nil), (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:system:SystemParametersInfoW Unknown action: 116
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x10056360, 0x100d7648, 0x100d7640
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x10056360, 0x100d7680, 0x100d7678
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x10056360, 0x100d7610, 0x100d7608
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x10056360, 0x100d76b8, 0x100d76b0
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x10056360, 0x100d76f0, 0x100d76e8
fixme:imm:ImmGetOpenStatus (0x135a48): semi-stub
fixme:ver:GetCurrentPackageId (0x33f15c (nil)): stub
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:imm:ImmReleaseContext ((nil), (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x10056360, 0x100d7648, 0x100d7640
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x10056360, 0x100d7680, 0x100d7678
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x10056360, 0x100d7610, 0x100d7608
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x10056360, 0x100d76b8, 0x100d76b0
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x10056360, 0x100d76f0, 0x100d76e8
fixme:imm:ImmGetOpenStatus (0x135a48): semi-stub
fixme:ver:GetCurrentPackageId (0x33f15c (nil)): stub
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:imm:ImmReleaseContext ((nil), (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:UnregisterDeviceNotification (handle=0xcafecafe), STUB!
fixme:advapi:UnregisterTraceGuids 0: stub
fixme:win:UnregisterDeviceNotification (handle=0xcafecafe), STUB!
IPC client is in my process, could/should be using an in-process pipe.IPC client is in my process, could/should be using an in-process pipe.fixme:iphlpapi:CancelIPChangeNotify (overlapped 0x9e103d0): fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:iphlpapi:CancelIPChangeNotify (overlapped 0xb25f28): stub
fixme:advapi:UnregisterTraceGuids 0: stub
Forced create of Win32Mutex but it already existed
Forced create of Win32Event but it already existed
Forced create of Win32Event but it already existed
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
[2014-08-21 16:55:11] Startup - updater built Aug 13 2014 14:18:40
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2014-08-21 16:55:11] Checking for update on startup
[2014-08-21 16:55:11] Checking for available updates...
[2014-08-21 16:55:12] Download skipped: /client/steam_client_win32 version 1407966480, installed version 1407966480
[2014-08-21 16:55:12] Nothing to do
[2014-08-21 16:55:12] Verifying installation...
[2014-08-21 16:55:12] Performing checksum verification of executable files
[2014-08-21 16:55:12] Verification complete
[2014-08-21 16:57:50] Shutdown
[08/21/14 16:59:48] - Running wine-1.7.22 Steam.exe (Working directory : /home/nils/.PlayOnLinux/wineprefix/Steam_wine/drive_c/Program Files/Steam)
[0821/165951:ERROR:network_change_notifier_win.cc(174)] WSALookupServiceBegin failed with: 8
[0821/165951:ERROR:gpu_info_collector_win.cc(103)] Can't retrieve a valid WinSAT assessment.
[0821/165957:ERROR:renderer_main.cc(227)] Running without renderer sandbox
The entry point method could not be loaded
IPC client is in my process, could/should be using an in-process pipe.IPC client is in my process, could/should be using an in-process pipe.Forced create of Win32Mutex but it already existed
Forced create of Win32Event but it already existed
Forced create of Win32Event but it already existed
[2014-08-21 16:59:49] Startup - updater built Aug 13 2014 14:18:40
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2014-08-21 16:59:49] Checking for update on startup
[2014-08-21 16:59:49] Checking for available updates...
[2014-08-21 16:59:50] Download skipped: /client/steam_client_win32 version 1407966480, installed version 1407966480
[2014-08-21 16:59:50] Nothing to do
[2014-08-21 16:59:50] Verifying installation...
[2014-08-21 16:59:50] Performing checksum verification of executable files
[2014-08-21 16:59:50] Verification complete
[2014-08-21 17:00:12] Shutdown
[08/21/14 17:00:22] - Running wine-1.7.22 winecfg (Working directory : /usr/share/playonlinux/python)
[08/21/14 17:00:58] - Running wine-1.7.22 Steam.exe (Working directory : /home/nils/.PlayOnLinux/wineprefix/Steam_wine/drive_c/Program Files/Steam)
[0821/170100:ERROR:network_change_notifier_win.cc(174)] WSALookupServiceBegin failed with: 8
[0821/170100:ERROR:gpu_info_collector_win.cc(103)] Can't retrieve a valid WinSAT assessment.
[0821/170106:ERROR:renderer_main.cc(227)] Running without renderer sandbox
The entry point method could not be loaded
IPC client is in my process, could/should be using an in-process pipe.IPC client is in my process, could/should be using an in-process pipe.Forced create of Win32Mutex but it already existed
Forced create of Win32Event but it already existed
Forced create of Win32Event but it already existed
[2014-08-21 17:00:59] Startup - updater built Aug 13 2014 14:18:40
[2014-08-21 17:00:59] Verifying installation...
[2014-08-21 17:01:00] Verification complete
[2014-08-21 17:01:20] Shutdown
[08/21/14 17:01:30] - Running wine-1.7.22 Steam.exe (Working directory : /home/nils/.PlayOnLinux/wineprefix/Steam_wine/drive_c/Program Files/Steam)
fixme:ver:GetCurrentPackageId (0x33e490 (nil)): stub
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x3f006c60, 0x3f03fce8, 0x3f03fce0
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x3f006c60, 0x3f03fd20, 0x3f03fd18
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x3f006c60, 0x3f03fcb0, 0x3f03fca8
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x3f006c60, 0x3f03fd58, 0x3f03fd50
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x3f006c60, 0x3f03fd90, 0x3f03fd88
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x3f006c60, 0x3f03fce8, 0x3f03fce0
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x3f006c60, 0x3f03fd20, 0x3f03fd18
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x3f006c60, 0x3f03fcb0, 0x3f03fca8
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x3f006c60, 0x3f03fd58, 0x3f03fd50
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x3f006c60, 0x3f03fd90, 0x3f03fd88
fixme:process:SetProcessShutdownParameters (00000100, 00000000): partial stub.
fixme:imm:ImmGetOpenStatus (0x1f9c70): semi-stub
fixme:ver:GetCurrentPackageId (0x33e368 (nil)): stub
fixme:process:SetProcessDEPPolicy (3): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:imm:ImmDisableTextFrameService Stub
fixme:thread:GetThreadPreferredUILanguages 56, 0x33f77c, (nil) 0x33f780
fixme:winsock:WSALookupServiceBeginW (0x33f668 0x00000ff0 0x33f6a4) Stub!
[0821/170132:ERROR:network_change_notifier_win.cc(174)] WSALookupServiceBegin failed with: 8
fixme:iphlpapi:NotifyAddrChange (Handle 0x33f7b0, overlapped 0xb25f28): stub
fixme:win:RegisterDeviceNotificationW (hwnd=0x1009a, filter=0x33f7bc,flags=0x00000000) returns a fake device notification handle!
fixme:win:RegisterDeviceNotificationW (hwnd=0x1009a, filter=0x33f7bc,flags=0x00000000) returns a fake device notification handle!
[0821/170132:ERROR:gpu_info_collector_win.cc(103)] Can't retrieve a valid WinSAT assessment.
fixme:win:EnumDisplayDevicesW ((null),0,0x33f08c,0x00000000), stub!
fixme:ver:GetCurrentPackageId (0x270dff4 (nil)): stub
fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
fixme:ver:GetCurrentPackageId (0x31e5d0 (nil)): stub
fixme:hnetcfg:fw_apps_get__NewEnum 0x338cd60, 0x7ffe0d4
fixme:hnetcfg:fw_app_put_ProcessImageFileName 0x338d3d0, L"C:\\Program Files\\Steam\\steam.exe"
fixme:hnetcfg:fw_app_put_Name 0x338d3d0, L"Steam"
fixme:hnetcfg:fw_app_put_Enabled 0x338d3d0, -1
fixme:hnetcfg:fw_apps_Add 0x338d3b8, 0x338d3d0
err:ole:CoGetClassObject class {e2b3c97f-6ae1-41ac-817a-f6f92166d7dd} not registered
err:ole:CoGetClassObject no class object {e2b3c97f-6ae1-41ac-817a-f6f92166d7dd} could be created for context 0x1
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_HANDLE_INFORMATION
fixme:iphlpapi:NotifyAddrChange (Handle 0x15103cc, overlapped 0x15103d0): stub
fixme:win:RegisterDeviceNotificationA (hwnd=0x100a6, filter=0x8bee4ec,flags=0x00000004) returns a fake device notification handle!
err:ole:CoGetClassObject class {77f10cf0-3db5-4966-b520-b7c54fd35ed6} not registered
err:ole:CoGetClassObject no class object {77f10cf0-3db5-4966-b520-b7c54fd35ed6} could be created for context 0x1
fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
fixme:wbemprox:client_security_SetBlanket 0x7c6d1270, 0x35630b8, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0x7c6d1270
fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
fixme:wbemprox:client_security_SetBlanket 0x7c6d1270, 0x35630d0, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0x7c6d1270
fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
fixme:imm:ImmReleaseContext (0x100a8, 0x34d7540): stub
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:win:RegisterDeviceNotificationA (hwnd=0x100c0, filter=0x33e1f4,flags=0x00000004) returns a fake device notification handle!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d6d8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d6d8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d870,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x33d870,0x00000000), stub!
fixme:win:RegisterDeviceNotificationW (hwnd=0x10118, filter=0x9bfe92c,flags=0x00000000) returns a fake device notification handle!
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:RegisterDeviceNotificationW (hwnd=0x20118, filter=0x9bfe92c,flags=0x00000000) returns a fake device notification handle!
fixme:advapi:RegisterTraceGuidsW (0x100a3de0, 0x12035da0, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x11faf518, (null), (null), 0x12035db8): stub
fixme:process:SetProcessDEPPolicy (3): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:advapi:RegisterTraceGuidsW (0x100a3de0, 0x12035da0, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x11faf518, (null), (null), 0x12035db8): stub
fixme:gdi:GdiInitializeLanguagePack stub
[0821/170138:ERROR:renderer_main.cc(227)] Running without renderer sandbox
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:ver:GetCurrentPackageId (0x1f5e9f8 (nil)): stub
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub

当我点击某个游戏的“播放”按钮时:

fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:system:SystemParametersInfoW Unknown action: 116
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform

答案1

Wine —— 即使在 PlayOnLinux 的帮助下 —— 也确实不能很好地处理 3D 内容。另外,您并没有发布太多信息:可能是缺少库、显卡不好(例如,Wine 确实不喜欢集成的 Intel 卡)、声音问题等。

您可以尝试从终端启动 Steam Wine,看看它是否输出任何内容。像这样:

wine "~/.wine/drive_c/Program Files/Steam/steam.exe"

不过,在您的情况下,您需要使用 PlayOnLinux 决定使用的路径,因为我记得它对不同的安装使用单独的配置文件(请查看~/.playonlinux/)。

WineHQ AppDB 也是有关特定程序的非常好的信息来源:https://appdb.winehq.org/

还,Steam 已在 Linux 上推出并且已经有大量的游戏可以被移植(或为 Linux 原生编写)。

编辑:

别指望它会起作用。永远别指望。

这里的问题是 WINE 缺少 .NET 4.0 支持,而很多游戏都是基于 WINE 构建的(很可能是用 C# 构建的)。原生 .NET 从来都不是 Wine 的强项之一;它只在几年内部分地工作。Mono 已经存在,但是它不能很好地与已编译的代码配合使用。

另一个问题是fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform,一些人很幸运地解决了这个问题(例如:https://forum.winehq.org/viewtopic.php?f=8&t=22732——通过winbind:i386从 Ubuntu repo 安装并更新 OP 拥有的专有非免费 nVidia 驱动程序来解决)。

不过,我还是建议你看一下上面提到的 AppDB。看看你正在尝试运行的游戏,可能会有一些建议。

相关内容