2015-04-04 73 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