StepMania5で遊ぼう – ビルド編

[20160708追記ここから]

ここに書いてあることは5_0_7_rcブランチに限った話ですので忘れて下さい。

本来のビルドはREADMEに書いてある通りCMakeを使いましょう。

[20160708追記ここまで]

 

 

遊ぼうって言ってもプログラマー的な意味でな!

 

記事タイトルの通り今回は音ゲーマーにはお馴染み、

StepMania5をソースからビルドしてみたいと思います。

なんか速攻で終わりそうな内容だなぁ…

 

まずStepMania公式(http://www.stepmania.com/)から

ソースコードをダウンロード。(俺がDLしたバージョンは5.0.7でした)

んで解凍。

今回はVisual Studio 2013でビルドしたいのでsrcフォルダの中の

sm5-net2013.slnを開きます。

そして構成を「Debug」から「Release」に変えて、ビルド→ソリューションのビルド。

これだけです。あら簡単。早くもこの記事は終わりそうです。

 

sm5_build_error

あれ、ビルドエラーが出ました。なんでだ…

エラーが出てる箇所は

pseudolocalize

こんな感じで、見慣れない文字が書かれています。

github(https://github.com/stepmania/stepmania)のmasterをダウンロードして

ビルドしても結果は同じでした。

ググってみると、

PseudoLocalize compilation errors · Issue #76 · stepmania/stepmania
https://github.com/stepmania/stepmania/issues/76

同じ問題に遭遇してる人が。

この問題のが発生する原因は、

alright, it looks like Microsoft Visual C++ likes to read files that are UTF-8 without BOM as Shift-JIS files when the locale is set to Japanese,

https://github.com/stepmania/stepmania/issues/76

らしいです。日本語に直すと

「日本語環境のWindows上でVisual StudioがUTF-8(BOMなし)のファイルを読むとShift-JISとして認識してしまう」

…あってるのかな。英語はさっぱりです。

この関数、StepManiaの設定(Preferences.ini)の

PseudoLocalizeを1にしないとこの関数は通らないし、

日本人には関係ない処理だし、

しかもこの関数通すとデフォルトテーマのluaがエラーを吐いてしまう、

と、あまり意味ない関数(独断と偏見)なので、

もうこうしてしまってもいいんじゃないかと思いましたが

さすがに自称プログラマーのプライドが許さなかったので

なんとかビルドできるようにこの関数の処理を変えてみました。

以下糞コード注意。

「おまじない」とか目も当てられない文字が書かれていますが、

こう書き換えることでとりあえずビルドは通ります。

この関数が通った時の処理もうまくいってるようです。

相変わらずデフォルトテーマのluaはエラー出しますが。

 

しかし、ビルド編とか書いてるけど続くのかなこれは…

 

余談

PseudoLocalize関数の中でずらっと変数を追加してますが、

最初は構造体を使って書いてました。

しかしこの構造体をインスタンス化すると、なぜかコンストラクタが呼ばれないのです。

でもVisual Studioの新規プロジェクトや、Ideoneで似たようなコードを書くと

ちゃんとコンストラクタは呼ばれます。

ここで物凄い悩みましたが、上にも書かれてる

「日本語環境のWindows上でVisual StudioがUTF-8(BOMなし)のファイルを読むとShift-JISとして認識してしまう」

という問題のせいにしておきます。

続きを読む

Ubuntu14.04にCUDA Toolkit or NVIDIAグラフィックスドライバを入れるとGUI環境でログインできなくなる問題について

前回、waifu2xの環境構築に失敗して悲しみに暮れてたわけですが、

この後泣きっ面に蜂な出来事がありました。

 

waifu2xの環境構築を試行した後再起動すると、

何故かログインできなくなりました。

(正確にはログインできるけどすぐにログイン画面に戻される)

でもCtrl+Alt+F1でCUI環境にするとログイン出来る…

なんでや!と思いつつググってみる。

原因が不明確である場合、~/.xseesion-errorsなどから原因を探すことになりますが、これは中々厄介な作業となります。
https://forums.ubuntulinux.jp/viewtopic.php?id=9420

というわけで~/.xseesion-errorsを覗いてみると、

Xlib extension “GLX” missing on display “:0”

の文章が。(他にもあるけど日本語だからなのか文字化けして分からない)

この文章を元にまたググってみる。

[SOLVED] OpenGL GLX problem (glxinfo – Xlib: extension “GLX” missing) / Applications & Desktop Environments / Arch Linux Forums
https://bbs.archlinux.org/viewtopic.php?id=189898

ここでXorg.0.logの存在を知り、Xorg.0.logを見てみる(一部抜粋)。

Failed to Initialize GLX Extension (Compatible NVIDIA X Driver not found)

なんかNVIDIA関係のソフトが悪さしてるのだろうか…

(UbuntuをまたクリーンインストールしてCUDA Toolkitだけ入れても

同様の現象が起こることを確認)

その後色々調べて試行錯誤したところ、bumblebeeをインストールすれば

再びGUI環境でログイン出来るようになりました。(要再起動)

Bumblebee – Ubuntu Wiki

https://wiki.ubuntu.com/Bumblebee

ここを参考に

でOK。

 

どう文章を整形しようと試行錯誤してたら記事書くのに

すごい時間がかかってしまった。

 

[20160928追記]

皆様ご丁寧にお礼のコメントを投稿して下さり、誠にありがとうございます。

私は正直CUDAについてはド素人で、Linuxもお世辞でも詳しいとは言えない身ですが、

この記事を引用してくださってる方々の情報によると、この記事の方法だとログインループは抜け出せますが、

CUDAの機能は使えなくなるようです。

この記事の方法以外でもログインループを抜け出せるようなので、

他人様の記事ですが以下も参考にしてみて下さい。

Ubuntuアップデートしたらログインできなくなった(nvidia GPU使用)

http://may46onez.hatenablog.com/entry/2016/02/26/020208

多分、この方法が正攻法な気がします…

続きを読む

VirtualBox上のUbuntu14.04でwaifu2xを動かしたかった

はじめに

ここに書いてあることを実行してもwaifu2xが

使えるようになるわけではありません。

結果から言いますと動かすのに失敗しました。

 

さて、最近話題のwaifu2xですが、俺も使ってみました。

あ、画像の選定は趣味です。

予想を上回る処理結果にすげーって思ってたところ、

しんくさんから、ROKUさんwaifu2xの環境構築できませんか?と聞かれ、

興味もあったしやってみようってことになりました。

題名にもある通り環境はVirtualBoxにUbuntu14.04をクリーンインストールして、

VirtualBox Guest Additionsをインストールしたところからスタート。

まあ、github(https://github.com/nagadomi/waifu2x)のREADMEに

丁寧にインストール方法書いてくれてるし簡単でしょ(フラグ

 

curlとTorch7のインストール

問題なく完了。

 

CUDA 7.0 Toolkitのインストール

[UNIX][統計学] Ubuntu 14.04にNVIDIA CUDA 6.5 toolkitをインストールする

http://d.hatena.ne.jp/koiti_yano/20141201/p1

ここが参考になりました。

上のURLに書いてますが、NVIDIA製品が入ってるか確認しました。

結果は、何も表示されず…PCのグラボがGTX660とはいえ薄々分かってはいましたけど。

多分動かないだろうなぁ…と思いつつ続行。

 

cuDNNのインストール

https://developer.nvidia.com/cuDNNからダウンロードする必要があるんですが、

ダウンロードするにはNVIDIAのサイトでユーザー登録を行い、かつ

CUDA/GPU Computing Registered Developer Programに参加し、承認される必要があります。

承認には大分時間がかかる場合もあるようですが、俺は申請してから6時間後には承認されてました。

これでOK。

 

その他パッケージのインストール

別にREADME通りでいけるだろうと思ってたけど、

とcunnがインストールに失敗。調べてみると

THCAllocator.hはcutorchのもののようなので、cutorchをgithubから落としてインストールしてみる。

で、cunnをインストールしようとしたらまた同じエラーで失敗…

cutorchのソースを見ていると、

https://github.com/torch/cutorch/blob/master/lib/THC/CMakeLists.txt

でTHCAllocator.hをコピーしていないっぽいのが発覚。

とりあえず手動でTHCAllocator.hをコピーしてみる。

これで問題なくcunnのインストールが完了。多分。

(追記)githubのcutorchに修正が入ったようで、修正内容を見る限り上記ではダメです。

おとなしく修正済みのリポジトリをクローンしてインストールしましょう。

 

READMEに従って残りのパッケージもインストール。

他はエラーも出ず無事インストール完了。

 

waifu2xの起動

さてやってまいりました。いざ起動!

ですよねー。というわけで「CUDAが使えるデバイスがないよ」と言われてしまいました。

でも諦めきれずにいろいろ調べてみたところ、

Enable CUDA GPU working under VM
http://askubuntu.com/questions/598317/enable-cuda-gpu-working-under-vm

9.6. PCI passthrough
https://www.virtualbox.org/manual/ch09.html#pcipassthrough

PCIパススルー
http://itpro.nikkeibp.co.jp/article/Keyword/20091127/341198/?n_cid=nbpitp_itptw_top

どうやらPCIパススルーという機能が利用できれば俺のPCにあるGTX660を使って

仮想マシン上でCUDAが使える模様。

ただ、マザボにIOMMUという機能を備えたチップセットが必要なのと、

CPUがIOMMUに対応している必要があるらしいです。

早速biosの設定画面をじーっと眺めてたんですが…どうやらウチではIOMMUは使えないようです。

ざんねん!わたしのぼうけんは これで おわってしまった!

 

うーん…機会があれば俺のPCをWindowsとUbuntuのデュアルブートにして

waifu2xのインストールをしてみたいですね。

 

最後に

前々からちゃんとした自分のWebサイトを持ちたいと思ってたんですが、

最後の後押しとなったのはwaifu2xのインストール手順を記事にしたいという思いでした。

きっかけをくれたしんくさんには感謝致します。

続きを読む