Ubuntu20.04+VirtualGL環境でMaltabのクラッシュに対処する
当サイトではアフィリエイト広告を利用しています
リモートPC(Ubuntu20.04)でVirtualGLを設定した環境において、Maltabを動作させる方法について記録しておきます。
単に起動しただけではplotやsimulinkの起動でクラッシュするので注意が必要です。
環境について
- OS: Linux (Ubuntu 20.04 LTS)
- CPU: AMD Ryzen
- MEM: 16GB
- GPU: Nvidia Geforce GTX 1660
- nvidia-dirver 470.xをインストール済
- すでにsshd設定済み
前の記事で既にVirutalGL、VNCなどは設定済みです。
Matlabのクラッシュ問題
本環境では~/.vnc/xstartup
でvglrun startlxde
にてVNCでVirtualGL環境を用意していますが、VNC接続後にMaltabを起動するといくつか問題がありました。
Maltabを起動した場合、ロゴが表示されてその後ウィンドウが立ち上がり、画像に関連しない処理であれば動かすことが出来ます。
しかし、plot
関数やSimulinkなどの起動のようにOpenGLを利用する機能においては、Segmentation violation detected at...
とでてクラッシュしてしまいます。
クラッシュの原因
Maltabはソフトウェア内蔵のOpenGLを利用する関係でVirtualGLが正常に機能しないようです。
Maltabに限らず、いくつかの有名どころのソフトウェアはVirtualGLドキュメントに起動方法が書いてあるので、参考にするとよさそうです。
例えばMaltabだと以下のように起動する必要があります。
vglrun /usr/local/MATLAB/R2022a/bin/matlab -nosoftwareopengl
上記コマンドで起動したMaltabにおいては、plot
やSimulinkは問題なく動作することが出来ました。
ただ、このコマンドを毎回入力するのも面倒なのでエイリアスを登録しておきます。.bashrc
へエイリアスを登録しておきます。
alias matlab='vglrun /usr/local/MATLAB/R2022a/bin/matlab -nosoftwareopengl'
まとめ
- VirtualGL + TigerVNCのMaltabでクラッシュ
- 内蔵OpenGLを使っていたのが原因
- vglrunで起動時にオプション設定で対処可能