OpenGL, Ubuntu in einer VirtualBoxOpenGL, Ubuntu in a VirtualBox
Achtung! Dieser Post ist veraltet: hier geht’s zum Update.
Ich habe vor langer Zeit aufgehört mit Dual-Boot-Systemen zu arbeiten und meine Art zu Arbeiten ist fest mit Windows und den dortigen Produkten verankert. Details und den dazugehörigen Glaubenskrieg zwischen Windows und Linux spare ich mir hier. Allerdings ist Linux ein System auf das ich durchaus auch nicht verzichten kann. Die augenblicklich beste Lösung für mich ist VirtualBox und der Betrieb eines virtualisierten Gast-Linux. Im gigantischen Distributions-Zoo hab ich mich recht einfallslos für Ubuntu entschieden. Als Computergraphiker und Visualisierung ist mir hierbei natürlich auch der OpenGL-Support in der Virtualisierung sehr willkommen. Diese Woche habe ich eine neue virtuelle Maschine aufgesetzt und wurde von folgendem Fehler heimgesucht der meine OpenGL-Anwendungen nicht starten lassen wollte:
libGL error: pci id for fd 4: 80ee:beef, driver (null) OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table OpenGL Warning: glVertexArrayRangeNV not found in mesa table OpenGL Warning: glCombinerInputNV not found in mesa table OpenGL Warning: glCombinerOutputNV not found in mesa table OpenGL Warning: glCombinerParameterfNV not found in mesa table OpenGL Warning: glCombinerParameterfvNV not found in mesa table OpenGL Warning: glCombinerParameteriNV not found in mesa table OpenGL Warning: glCombinerParameterivNV not found in mesa table OpenGL Warning: glFinalCombinerInputNV not found in mesa table OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table OpenGL Warning: glDeleteFencesNV not found in mesa table OpenGL Warning: glFinishFenceNV not found in mesa table OpenGL Warning: glGenFencesNV not found in mesa table OpenGL Warning: glGetFenceivNV not found in mesa table OpenGL Warning: glIsFenceNV not found in mesa table OpenGL Warning: glSetFenceNV not found in mesa table OpenGL Warning: glTestFenceNV not found in mesa table libGL error: core dri or dri2 extension not found libGL error: failed to load driver: vboxvideo
Erstaunlicherweise hat kurzes Googlen nicht viel gebracht. Lediglich auf einer Seite habe ich gelesen, dass es das Problem mit den GuestAdditions zusammenhängen könnte und man unbedingt darauf achten solle die aktuellste Version zu installieren. Logischerweise hatte ich aktuellste Version drauf.
Nach etwas mehr Googlen kam raus, dass das Problem im Zusammenhang mit sehr neuen OpenGL-Extensions existiert; Extensions zu neu für die virtuellen Treiber. Hier gibt es also scheinbar einen Konflikt zwischen dem was die virtualisierte Graphikkarte angibt welche Extensions sie beherrscht und damit was der Linux-Treiber daraus machen kann.
Tatsächlich konnte ich das Problem für mich lösen indem ich auf ältere Versionen der GuestAdditions zurückgegangen bin. Mit Version 4.3.12 läuft alles einwandfrei. Mit den neueren Versionen bis 4.3.18 nicht. Dies ist dann wohl ein Iso was ich mir auf der Platte behalte und abwarte ob neuere GuestAdditions oder Ubuntu-Updates das Problem in den Griff kriegen werden.Important! This post is outdated: here is the update.
Some time ago I stopped using dual-boot systems. My work takes place on Windows and is based on the products of that ecosystem. I will not go into details of the holy war between Windows and Linux. Especially since Linux is an integral part of my work as well. The solution currently working best for me is using a VirtualBox Linux installation. From the multitude of distributions I boringly selected Ubuntu for my use. As computer graphics and visualization researcher I obviously like the OpenGL support in the virtualization solutions. This week I set up a new virtual machine and was greeted by this error prohibiting my OpenGL applications to run:
libGL error: pci id for fd 4: 80ee:beef, driver (null) OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table OpenGL Warning: glVertexArrayRangeNV not found in mesa table OpenGL Warning: glCombinerInputNV not found in mesa table OpenGL Warning: glCombinerOutputNV not found in mesa table OpenGL Warning: glCombinerParameterfNV not found in mesa table OpenGL Warning: glCombinerParameterfvNV not found in mesa table OpenGL Warning: glCombinerParameteriNV not found in mesa table OpenGL Warning: glCombinerParameterivNV not found in mesa table OpenGL Warning: glFinalCombinerInputNV not found in mesa table OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table OpenGL Warning: glDeleteFencesNV not found in mesa table OpenGL Warning: glFinishFenceNV not found in mesa table OpenGL Warning: glGenFencesNV not found in mesa table OpenGL Warning: glGetFenceivNV not found in mesa table OpenGL Warning: glIsFenceNV not found in mesa table OpenGL Warning: glSetFenceNV not found in mesa table OpenGL Warning: glTestFenceNV not found in mesa table libGL error: core dri or dri2 extension not found libGL error: failed to load driver: vboxvideo
Surprisingly a short google search did not came up with a good solution. I only found some indications that the error is related to the VirtualBox guest additions and that one should always use the most recent ones. Of course I did use the most recent ones.
After some more searching I learned that the error is related to rather new OpenGL extensions. These extensions seem to be too new for the graphics drivers of the virtualization. There seems to be a conflict between the extensions the virtual graphics card reports supported and what the vritualization Linux graphics driver makes of it.
I was actually able to solve the error by downgrading my guest additions to an older version. Using version 4.3.12 everything works fine. With any newer version up to 4.3.18 I get that error. So the Iso image of that guest additions will stay on my hard drive. I will wait if newer version of the guest additions or updates of Ubuntu will be able to fix that problem for good.
Danke für den Tipp!