2015-04-04 74 views
0

所以我想从我的SSH终端启动一个游戏。无法从SSH启动MonoGame,但可以从GUI

它真的很奇怪,当我直接从我的Linux GUI执行它时,它工作正常。但是当使用SSH客户端远程连接时,它只会崩溃。似乎它与我的显示驱动程序有关。

Unhandled Exception: 
System.TypeInitializationException: An exception was thrown by the type initializer for OpenTK.DisplayDevice ---> System.IO.DirectoryNotFoundException: Directory '/dev/dri' not found. 
    at System.IO.Directory.ValidateDirectoryListing (System.String path, System.String searchPattern, System.Boolean& stop) [0x00000] in <filename unknown>:0 
    at System.IO.Directory.GetFileSystemEntries (System.String path, System.String searchPattern, FileAttributes mask, FileAttributes attrs) [0x00000] in <filename unknown>:0 
    at System.IO.Directory.GetFiles (System.String path, System.String searchPattern) [0x00000] in <filename unknown>:0 
    at System.IO.Directory.GetFiles (System.String path) [0x00000] in <filename unknown>:0 
    at OpenTK.Platform.Linux.LinuxFactory.CreateDisplay (System.IntPtr& gbm_device, System.IntPtr& egl_display) [0x00000] in <filename unknown>:0 
    at OpenTK.Platform.Linux.LinuxFactory.get_gpu_fd() [0x00000] in <filename unknown>:0 
    at OpenTK.Platform.Linux.LinuxFactory.CreateDisplayDeviceDriver() [0x00000] in <filename unknown>:0 
    at OpenTK.DisplayDevice..cctor() [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at OpenTK.NativeWindow..ctor() [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.OpenTKGameWindow.Initialize (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.OpenTKGameWindow..ctor (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.OpenTKGamePlatform..ctor (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.GamePlatform.Create (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.Game..ctor() [0x00000] in <filename unknown>:0 
    at TestGame.Game1..ctor() [0x00000] in <filename unknown>:0 
    at TestGame.Program.RunGame() [0x00000] in <filename unknown>:0 
    at TestGame.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for OpenTK.DisplayDevice ---> System.IO.DirectoryNotFoundException: Directory '/dev/dri' not found. 
    at System.IO.Directory.ValidateDirectoryListing (System.String path, System.String searchPattern, System.Boolean& stop) [0x00000] in <filename unknown>:0 
    at System.IO.Directory.GetFileSystemEntries (System.String path, System.String searchPattern, FileAttributes mask, FileAttributes attrs) [0x00000] in <filename unknown>:0 
    at System.IO.Directory.GetFiles (System.String path, System.String searchPattern) [0x00000] in <filename unknown>:0 
    at System.IO.Directory.GetFiles (System.String path) [0x00000] in <filename unknown>:0 
    at OpenTK.Platform.Linux.LinuxFactory.CreateDisplay (System.IntPtr& gbm_device, System.IntPtr& egl_display) [0x00000] in <filename unknown>:0 
    at OpenTK.Platform.Linux.LinuxFactory.get_gpu_fd() [0x00000] in <filename unknown>:0 
    at OpenTK.Platform.Linux.LinuxFactory.CreateDisplayDeviceDriver() [0x00000] in <filename unknown>:0 
    at OpenTK.DisplayDevice..cctor() [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at OpenTK.NativeWindow..ctor() [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.OpenTKGameWindow.Initialize (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.OpenTKGameWindow..ctor (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.OpenTKGamePlatform..ctor (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.GamePlatform.Create (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0 
    at Microsoft.Xna.Framework.Game..ctor() [0x00000] in <filename unknown>:0 
    at TestGame.Game1..ctor() [0x00000] in <filename unknown>:0 
    at TestGame.Program.RunGame() [0x00000] in <filename unknown>:0 
    at TestGame.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 

我虽然创建一个bash脚本,那么这将调用自身的方法来启动游戏会做的工作,但不幸的是它同样的结果。基本上,当我在我的linux GUI中运行SAME EXACT命令时,游戏开始时没有任何问题,但是当我在距离我的SSH上运行SAME EXACT命令时,游戏不会启动,它只是卡在那里。

mono /home/pi/.../game/TestGame.exe 

我在树莓派上运行Linux Raspbian。 我的树莓PI连接在我的屏幕上。当用我的键盘插入时,它会打开,当从另一台使用ssh的计算机上进行尝试时,它会崩溃,导致我们在此看到的错误。

我将不胜感激任何帮助。

非常感谢! 凯文

+0

您是否在进行ssh连接时启用X转发? – 2015-04-04 03:21:28

+0

我看着我的sshd_config文件并启用了x11转发。我还使用-x参数连接到了我的覆盆子pi,并且它没有帮助,发生同样的问题:s – Stacknerd 2015-04-04 04:24:07

回答

0

有跟进我发现,

是两件事情来看待,如果你得到这个错误:

  1. 检查你有你的SSH终端激活X11转发。
  2. 型这片神奇的一行告知要使用的显示器的SSH ..否则任何图形软件将在启动时崩溃..

    出口DISPLAY =:0

感谢, 千电子伏

+0

您应该澄清这些是/或。 #1会让游戏出现在你坐着的计算机上并控制着ssh。 #2将使游戏出现在Pi自己的HDMI输出中。 – 2015-04-04 16:54:16