mieki256's diary



2018/02/13(火) [n年前の日記]

#1 [windows] WSL + MobaXtermを試用

昨日 WSL用のUbuntuをアンインストールしたものの、その後ググってたら、MobaXterm なら OpenGLを使ったアレコレも動く、てな話を見かけて。

_MobaXterm free Xserver and tabbed SSH client for Windows
_MobaXterm が便利
_MobaXtermを使いBash On Windowsで簡単にX11を使う - Qiita

OpenGL まで動くなんて、マジか…と興味が湧いたので、またWSLを触ってみようかなと。

それにしても自分、一体何回 WSL + Ubuntu のインストールとアンインストールを繰り返すのか…。

MobaXtermをインストール。 :

以前、Portable版を試用したことがあるけれど、今回はインストーラ版を利用。MobaXterm_Installer_v10.5.zip をDLして解凍。中に入ってる MobaXterm_installer_10.5.msi を実行してインストール。

ただ、Portable版も、インストーラ版も、起動に数分かかるのがちょっと厳しい。

起動して、session → shell と選んでいくと、WSL が選択項目として用意されてる。親切だな…。

X11アプリが動くかどうか確認。
sudo apt install x11-apps
xeyes &
目玉が表示された。

OpenGLのサンプルが動くかどうか確認。
sudo apt install mesa-utils mesa-utils-extra
glxgears -info
es2gears
OpenGL、OpenGLES を使った例のギアが表示された。たしかにOpenGLアプリも動くっぽい。

glmark2、glmark2-es2 も一部動いた。

_OpenGL / OpenGL ES2.0 のパフォーマンスを確認する(glmark2/glmark2-es2 を使う) - Qiita

love2dは動かなかった。 :

OpenGL が動くなら、love2d も動くのかな、と試してみたけど…。
sudo apt install love
love

これはやっぱりダメだった。
# 公式リポジトリ版 love (0.9.1-3ubuntu1)

$ love
Error: No available displays
stack traceback:
        [C]: at 0x00430780
        [C]: in function 'require'
        [string "boot.lua"]:324: in function <[string "boot.lua"]:241>
        [C]: in function 'xpcall'

Ubuntu 16.04 LTS の公式リポジトリにある SDL2 や love2d は古いので、SDL2のソースをダウンロードしてビルドしたり、リポジトリを追加してlove2dの現行版をインストールしてみたけど、結果は変わらず。

_mieki256's diary - Ubuntu 16.04 LTS上にlove2dをインストール
_mieki256's diary - Ubuntu 16.04にgolangとgo-sdl2をインストール

# PPA版

$ love
Error: Could not initialize SDL video subsystem (No available displays)
stack traceback:
        [C]: at 0x7f2a742d7f20
        [C]: in function 'require'
        [string "boot.lua"]:375: in function <[string "boot.lua"]:275>
        [C]: in function 'xpcall'

export DISPLAY=:0 だの、export DISPLAY=localhost:0.0 だのを打ってから試してみたりもしたのだけど、やっぱりダメ。ちなみに MobaXterm 上では、デフォルトでは DISPLAY=127.0.0.1:0.0 になってる模様。

まあ、そもそも、love2d は Windows用バイナリが存在するわけで。

_LoVE - Free 2D Game Engine

あえて WSL上で動かさないといけない理由は、どこにも無いのだけど…。いやまあ、SDL2を使ったアプリまで動いたらスゴイな、と期待しちゃったけど、さすがにそれは無理っスよ、てな状況らしいなと。

VMware + Ubuntuで試してみた。 :

実は Ubuntu 16.04上でSDL2は動かなかったりしないか、と不安になったので、以下のサンプルを使わせてもらって、VMware Player + Ubuntu 16.04上で動作確認してみたり。

_H4tch/Basic-SDL2-Demo: Game demo built on C++ and SDL2. Has Camera, Player, Timers, Spritesheets, and a basic Map functionality. MIT Licensed.

sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-gfx-dev
git clone https://github.com/H4tch/Basic-SDL2-Demo.git
cd Basic-SDL2-Demo
make
./sdl2-demo

フツーに画面が表示された。

もちろん、love2d も動く。
sudo apt install love
love

ということは、実機、もしくは仮想PC上なら SDL2 は動くけど、WSL + MobaXterm 上で SDL2 を動かすのは無理、ということだな…。

考えてみたら、MobaXterm が起動するまでの時間と、VMware Player + Ubuntu が利用可能になるまでの時間が、ほとんど変わらないのだよな…。それに、WSLはファイルアクセスが体感でも遅い…。現状では、LinuxのGUIアプリをどうしても使いたいなら、VMware + Ubuntu上で使ったほうがいい、ということになるのだろう。

もちろん、単にコマンドラインツールをパッと呼び出して使いたいという需要であれば、WSL(bash)だけならすぐに起動できるので、メリットはあるはず。

以上です。

過去ログ表示

Prev - 2018/02 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project