解决MATLAB在linux下无法使用hardware openGL的问题
最近由于要使用USRP,为了方便所以必须在ubuntu下安装MATLAB,我选择的版本是R2016b,安装过程很顺利,也能正常运行,但是安装完之后出现了一个问题,那就是运行MATLAB的时候会提示:
MATLAB is selecting SOFTWARE OPENGL rendering.
本来也没在意,软件openGL就软件OpenGL吧,但是使用了一段时间以后发现了一些奇怪的问题,比如command windows内容过多的时候,整个窗口会直接花屏,必须重启才行。估计这个就是没有使用硬件OpenGL引起的而一些问题。网上搜了半天,有人说启动时候加nosoftwareopengl参数来启动MATLAB:
matlab -nosoftwareopengl
但是启动以后发现画图的时候报错,输入opengl info发现也报错,后来找到了这篇文章:
http://blog.csdn.net/jkxsanger/article/details/5482572
意思就matlab加载系统库的时候有问题,所以就加载了自己的库,所以实际上问题在于matlab自己库的问题,但是这篇文章没有解决问题,因为实际上在我的情况下matlab是正常识别系统库了,只不过加载不正常。后来在ask ubuntu论坛上找到了真实的原因:
https://askubuntu.com/questions/638081/matlab-r2015a-wont-start-on-14-04
真实原因其实是matlab的libstdc++库和系统库不匹配造成的,只要让matlab使用系统的库就没有问题了,解决方法:
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22 /home/wjh/MATLAB/sys/os/glnxa64/libstdc++.so.6
这样就能正常使用openGL渲染了,但是打开默认还是software openGL,这里还要设置一下:
在MATLAB里执行:
opengl('save','hardware')
然后重启matlab,这时候,就可以正常使用硬件OpenGL了:
>> opengl info Version: '3.0 Mesa 17.0.2' Vendor: 'Intel Open Source Technology Center' Renderer: 'Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) ' MaxTextureSize: 16384 Visual: 'Visual 0xab, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double …' Software: 'false' HardwareSupportLevel: 'full' SupportsGraphicsSmoothing: 1 SupportsDepthPeelTransparency: 1 SupportsAlignVertexCenters: 1 Extensions: {236×1 cell} MaxFrameBufferSize: 16384