【GAME】ARMA3 EXILE MODサーバの旅その64
なんだろうか・・気付いたら64記事も書いてるんか俺・・。
(;´Д`)・・・
7月の記事を最後に完全に心を折られて、久しく、Exileサーバの構築をチョコチョコと初めてます。
どんだけ掛かってんねん、という感じですが、一度Linux環境で、妥協せず壁を全て乗り越えてみたいというマゾ精神によるところです(目的が変わってる)
前回作業した内容は全て脳内から消え失せてしまってるため、さっぱり気分で確認していきます(とてもポジティブです)
無論、ログを見るとエラーが出てる。原因も覚えてない。
環境は、これです。Ubuntu16.04.5LTS(確か、17.04LTSが駄目で戻した様な気がする)
Linux sabamiso 4.4.0-137-generic #163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
よしっ、まずは、extDB2環境でゼロから進めていこう。
ExileServer付属のextDB2.so、extdb-conf.iniをルートに置いて、extDBホルダーを作成、そこに、sql_custom_v2を移動(ServerModはイジるので、DB系はここに隔離)
ldd extDB2.so
で、ライブラリリンク切れを確認したら、一個外れてたので、リンクを張る(libtbbmalloc.so)
linux-gate.so.1 => (0xf76f4000)
libtbbmalloc.so.2 => /usr/lib/i386-linux-gnu/libtbbmalloc.so.2 (0xf6b8c000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf6b87000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf6b32000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf6b15000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf695f000)
/lib/ld-linux.so.2 (0xf76f5000)
ついでに確認しようと、ldd xm8.soを見たら、こいつも切れてた(libcrypto.so)
linux-gate.so.1 => (0xf777c000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7725000)
libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xf76f3000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76ee000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7577000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7522000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf736b000)
/lib/ld-linux.so.2 (0xf777d000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf734e000)
しっかり、extDB2をロードして正常動作してくれてるようだ。
あれから作業用のメインPCを新しくしたので、開発環境が丸っと無いことに気付く。
(;^ω^)
mySQL WorkBenchやら、PBO Managerやらをインストール。
まずは、ログを見ながら、エラーを一個づつ地道に潰していく作業となります。
Warning Message: No entry 'bin\config.bin/CfgWorlds.Takistan’.
Warning Message: No entry '.gridNumbersOverLines’.
Warning Message: '/’ is not a value
Warning Message: No entry '.centerPosition’.
Warning Message: []: '/’ not an array
Cannot evaluate " – no file
Warning Message: []: '/’ not an array
Cannot evaluate " – no file
ミッションがロードされてから、こんなエラーが出てる。多分、こいつの性で、ミッションロードの繰り返しが起こってる。
マップが見えてない??のか?否、そんな訳ない。
しかし、指摘されてるファイルはマップの定義ファイルな訳で、イジる訳にもいかない。
ミッションファイルの方で何かしら、やらかしてる可能性があると踏んで、色々なファイルを丁寧に確認するが、一向に改善せず。。数時間
。゚(゚´Д`゚)゚。あぅ
エラーログ文から検索を掛けても、ほとんどヒットせず、途方に暮れたところ、よく見た、この一文・・。
case sensitive(Linuxなら大文字小文字関係あるでぇ)
これ試しても、意味が無かった事は、はっきり覚えてるよ。
・・もう、打つ手がないので、もう一度試してみよう。
CUP関連のディレクトリ内に入って、これを実行して、ファイルやディレクトリを全て小文字にします(まだ、CUP自体のディレクトリー名は大文字入ってる)
shopt -s globstar
rename -v -f 'y/A-Z/a-z/’ **
うん、全部小文字になってる(中身だけ)CUP TerrainとMaps両方に実行。
はぁ?( ゚Д゚)
エラーが丸っと消えたよ・・。
ミッションもスタートしてるようだ。いや、これ、前回の作業時も確認したよ。なんでやねん。意味有るやん。
ツンデレ過ぎるよArma・・・。
よしっ。引き続いてエラー潰し。
(`・ω・´)ゞ
Warning Message: You cannot play/edit this mission; it is dependent on downloadable content that has been deleted.
cup_misc3_config
アホみたいに大量に出ている、いつものこれ(オブジェクト登録)を、mission.sqmに追記していきます(addOns{})
ほんとに大量に出るので、まず、サーバアドオンを無効にして、ミッションファイル適用分だけを登録。
うむ、一通りエラー潰しはやった。アドオンも正常に動作してるようだ。
自作のアドオンも正常終了してて、ほっこり。
(;´∀`)
“[LOOTBOX]:: finished! have fun"で終わる。
ただ、サーバ稼働時間から20分も掛かるのは、どうよ。。
なんだっけな、ウェイト入れてるんだっけか?(完全に忘れてる)サーバスペックが低いから?
ついでなので、サーバの消費電力を調べてみた。A6-3650(OC:3.2Ghz)で、アイドル時は35W、サーバ稼働時は45Wのようです。
いざっ、インしてみようとしたら、ロード画面で突然落ちる。
ま・・そうこなくっちゃ。。
(;^ω^)
20:04:17 Error in expression <llExtension _query);
(_result select 1) select 0>
20:04:17 Error position: <select 0>
20:04:17 Error Generic error in expression
20:04:17 File exile_server\code\ExileServer_system_database_query_insertSingle.sqf, line 16
20:04:17 Error in expression <llExtension _query);
(_result select 1) select 0>
20:04:17 Error position: <select 0>
20:04:17 Error Generic error in expression
エラーを見る限り、データベース系っぽい。
そういえば、MySQLはインスコして、ExileのSQL流しただけで、ほとんど無設定やった。
/etc/mysql/mysql.conf.d/mysqld.cnfにこいつを追記して、sql_modeを変更。
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
あ・・普通にインできた。。
(;^ω^)あ、あれ?
久々のTakistanです。
軽くプレーしてみましょう。
アイテム湧きもAI湧きもイベントも稼働してる。
アイアンサイトで340mキル。まさか当たるとは。
(;・∀・)
データベースへの書き込みも問題無いようです。
7月に私は何に苦労させられたんです?
。゚(゚´Д`゚)゚。
明日から、Exile MOD環境設定に入れそうです。デバッグで隅々まで、かなり手を入れてしまったので、元に戻し作業です。
8GBも積んでるメモリを存分に使ってOSとMySQLの高速化をやってみる。
・・が、あんまり変わんないっぽい。
(;´∀`)
preloadとかも入れてみたが、変わんない。
MOD類とログ出力先を、RAMDISKに出力させる。CUP MODは合わせて8GBとデカすぎるので無理やったけど。
つい先程、気付いたモノ。
(root)/@ExileServer/extDB2.so
(root)/extDB2.so
の両方に、extDB2.soオブジェクトを置いたら、MOD以下の方が優先された。confも同様。