2012-03-18 62 views
4

免責聲明: 我看到一些針對完全相同問題的建議出現了,但(類似的)文章被遷移到SuperUsers並似乎已被刪除。然而,我仍然想在此發佈我的問題,因爲我認爲軟件/編程相關的內容不足以在SuperUser上發佈(有時候,軟件和硬件問題之間的界限是模糊的)。VirtualBox Ubuntu 11.10上的OpenGL GLUT分段錯誤

我正在VirtualBox中的Code :: Blocks中運行一個非常簡單的OpenGL程序,在Ubuntu上安裝了Ubuntu 11.10。每當我建&運行一個程序,我得到這些錯誤:

  • OpenGL的警告:XGetVisualInfo返回0的視覺效果0x232dbe0
  • OpenGL的警告:重試與0x802返回0視覺
  • 分段故障

從我到目前爲止收集到的這些是與VirtualBox相關的。我需要設置

  • LIBGL_ALWAYS_INDIRECT = 1

換言之,通過使X.org間接渲染而不是直接與硬件進行通信。這個問題可能與我擁有ATI卡的事實無關,因爲我有一臺帶有ATI卡的筆記本電腦,可以完美地運行相同的程序。

不過,我不敢說我​​的GPU是ATI這個事實根本不起任何作用。我也不知道,如果驅動程序安裝正確(它說,在系統信息 - >圖像 - >顯卡驅動:鉻。)

任何幫助如何設置LIBGL_ALWAYS_INDIRECT = 1將不勝感激。我只是缺乏將該命令放在哪裏或在終端中何處/如何執行它的知識。

來源:

編輯:在終端類型:

export LIBGL_ALWAYS_INDIRECT = 1 

,進行驗證的是直接渲染熄滅:

glxinfo | grep direct 

但是,問題依然存在。我仍然提到OpenGL警告和分段錯誤。

+0

在虛擬機配置中,您的3D加速設置是什麼? – dwerner 2012-03-18 23:32:00

回答

4

如果你看一下/etc/environment文件,你可以看到一些暴露在那裏的變量 - 這會讓你知道如何在整個系統中暴露這個環境變量。根據您的需要,您也可以嘗試將其放入~/.profile~/.bash_profile

我心中的真正問題是:你是否安裝了Ubuntu的guest虛擬機?您不應該在您的guest虛擬機中安裝任何ATI驅動程序,因爲VirtualBox不會將實際的物理圖形硬件暴露給您的虛擬機。您可以將您的guest虛擬機配置爲在虛擬機設置中支持3D加速(請確保先關閉虛擬機),然後在「顯示」部分下。您可能需要增加分配的虛擬內存 - 根據您的需要,64MB或128MB應該足夠多。

+0

我在一些備用SSD空間上完成了全新的Ubuntu安裝,現在都運行良好。看來問題是Vbox相關。我的圖形內存爲128MB btw。儘管如此,你是唯一回答並努力研究這個問題的人,因此我會回答這個問題。 – 2012-03-20 09:40:12

+0

加載虛擬內存並將'export LIBGL_ALWAYS_INDIRECT = 1''添加到''〜/ .bashrc''爲我工作,謝謝! – 2012-07-18 16:08:20

9

我遇到了同樣的問題,在VirtualBox中的Ubuntu 12.04上運行Bullet Physics OpenGL演示。我沒有使用間接渲染,而是通過修改源代碼中的過量窗口創建代碼來解決問題,如下所述:https://groups.google.com/forum/?fromgroups=#!topic/comp.graphics.api.opengl/Oecgo2Fc9Zc

這需要與

... 
if (!glutGet(GLUT_DISPLAY_MODE_POSSIBLE)) 
{ 
    exit(1); 
} 
glutCreateWindow(title); 
... 

在鏈接描述替換原始

... 
glutCreateWindow(title); 
... 

。我不清楚爲什麼這應該糾正段錯誤問題;顯然glutGet除了檢索狀態值之外還有一些副作用。這可能是Freeglut實施過剩的怪癖。