OpenModelica docker on Mac
公式 https://openmodelica.org/download/docker/ に記載されている XQuartz と Docker Desktop をインストールして、openmodelica v1.21.0-gui をプルした後、GUI を起動するまでの手順。
- docker-om のエイリアスを設定する(具体的内容は上記公式ページに)。
- xhost コマンドで XQuartz を起動後、ネットワーク接続許可の環境設定をして、XQuartz を停止する。
- xhost +local:docker で再び XQuartz を起動する。
- Docker Desktop を起動する。
- docker-om OMEdit コマンドで OpenModelica の GUI を起動する。
- Install Library で Modelica をインストールする。
- OpenModelica を再起動する。
以下、上記の手順を得るまでのトラブルシューティングの履歴。
Cannot connect to the Docker daemon が出た時の対処
下記エラーメッセージの対処。
(base) ~ uniker9 % docker-om OMEdit
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
公式の
Docker Desktop needs to be installed and running.
に従い、Docker Desktop を起動する。
qt.qpa.xcb: could not connect to display が出た時の対処
下記エラーメッセージの対処。
(base) ~ uniker9 % docker-om OMEdit
qt.qpa.xcb: could not connect to display 192.168.3.3:0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
公式の
XQuartz needs to be installed and running. Network connections need to be allowed in the settings.
に書いてあるとおり、ネットワーク接続できるように設定した上で XQuartz を起動する必要がある。具体的手順は、 https://qiita.com/peace098beat/items/8e86a54b3e0e0b182f5a を参考に、一旦
$ xhost
として XQuartz を起動した後、「XQuartz」 のメニューアイテム「環境設定」から、セキュリティの「ネットワーク・クライアントからの接続を許可」にチェックを入れる。
その後、XQuartz を一度終了させた上で、再度次のようにして XQuartz を起動する。
$ xhost +local:docker
これで、以下のような libGL のエラー(未解消。試したことは末尾のメモ1,2参照)は出るものの、GUI は起動した。
(base) ~ uniker9 % docker-om OMEdit
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-'
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Failed to load package Modelica (default) using MODELICAPATH が出た時の対処。
GUI起動後の画面に次のようなエラーが出ている。
Failed to load package Modelica (default) using MODELICAPATH /Users/uniker9/.openmodelica/libraries/.
これも解消しきれていない。が、実際に問題になるのか否か分からないため、まずは触ってみる。
解消できた。このエラーは、 "$HOME/.openmodelica/libraries/" にライブラリが何も存在しない場合に出るエラーのもよう。IDE(図1)中段右側のボタン「Install Library」を押して出てくるダイアログ(図2)の 「Name:」から「Modelica」を選択すると、上記ディレクトリにライブラリがダウンロードされる。その後は、それらのライブラリの読み込みを明示的に指定せずとも、OpenModelicaを再起動するのみでエラーが解消して、かつIDE左サイドメニュー「Libraries」に「OpenModelica」のほかに「ModelicaServices」、「Complex」、「Modelica」が並んだ(おそらく、再起動でなくて Open Libraries から .openmodelica/libraries 配下のを選択してもよい)。
https://monoist.itmedia.co.jp/mn/articles/2212/15/news013.html によるとこれが、「Modelica標準ライブラリ(Modelica Standard Libraries:MSL)」らしい。
マスダンパばねモデルのトレースもできた(図3)!すごく嬉しい。
図1 OpenModelica IDE(MSLをインストールして再起動後の状態)
図2 Install Libraryのダイアログ(Name: Modelicaを選択済みの状態)
図3 マスダンパばねモデル
メモ:libGL エラーについて試したこと(未解消。実害の有無不明なまま)
メモ1
https://qiita.com/SenriQ/items/27d7bf67b71e16d38d61 を参考に、
export LIBGL_ALWAYS_INDIRECT=1
しても解消しなかった。
メモ2
https://itcweb.cc.affrc.go.jp/affrit/_media/documents/guide/x-window/x-win-mac.pdf を参考に、
defaults write org.xquartz.X11 enable_iglx -bool true
しても解消しなかった。
Discussion