パピーでOpenSIM

リリースされた日本語版に関するもの

モデレータ: 暇人, YoN, nyu

アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

パピーでOpenSIM

投稿記事 by シノバー »

OpenSIMとは何ぞや? Secondlife を知らない人には何のことか分からないでしょう。
私はネット上の仮想世界 Secondlife をパピー(Puppy Linux)で楽しんでいます。 viewtopic.php?f=37&t=1660
シノバーの Secondlife のページ http://shino.pos.to/secondlife/
そらまめブログ http://shinobar.slmame.com/

Secondlife は無料でも楽しめるのですが、自分の土地を持つには経費が掛かります。私はいちおう月々払ってSecondlife内に自分の土地を持っています。それ以外に物作りでテクスチャ(画像ファイル)をアップロードするにも小額ですが、いちいち費用が掛かります。

OpenSIMとは、 Secondlifeとほぼ同じ機能をフリーで構築できるものです。自分で構築するのはたいへんなので、これを使った OSgridという無料のサービスがあります。ここでは画像のアップロードも無料なので、試しの画像をチェックするのに重宝しています。

私の場合、Secondlifeがメインで、OSgrid をテスト用途に使っていて、それでほぼ満足です。ところでOpenSIMは OSgrid のようにネット上に公開するのではなく、自分のPC上だけに仮想世界を作ることもできます。Secondlifeの友人が(Windows上で)それをやっているというので、私もそれをパピー上でやってみることにしました。

OpenGrid であまり不自由なことはありませんが、自前のPC上に仮想世界を作ると、正真正銘、自分専用の世界なので、さまざまなテストを思う存分、気兼ねなくできます。
Shinobar in Opensim http://shino.pos.to/secondlife/blog/

画像

参考リンク:
最後に編集したユーザー シノバー [ 18/05/07(月) 00:55 ], 累計 12 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

ハード/ソフト条件

投稿記事 by シノバー »

仮想世界を提供するサーバーは、大した能力は必要ないそうです。
しかし、仮想世界にアクセスして楽しむビューアー、クライエント側のPCにはそこそこのグラフィック性能が要求されます。
私はグラフィック・ボードに Nvidia GeForce GTX 660 ti を使い、Nvidia社提供のドライバをインストールしています。
viewtopic.php?f=25&t=1578

最近は他のグラフィックチップでも使えるものがあるようですが、ドライバの関係で Nvdiaが最善だと思います。Linux 用の仮想世界ビューアーが NVIDIAのグラフィックチップを主にサポートしているようです。

パピーのバージョンですが、現在開発中の TarPup を主に使います。Precise Puppy 571JPでも大丈夫です。Secondlifeにしても OpenSIMにしても、Linux用ビューアーは Ubuntu上で開発されているようなので、 Precise Puppy や TahrPup など Ubuntu ベースのものが相性が良さそうです。

追記(2014-08-15)
TarPup-5.8.3 でローカルでスタンドアロンなら問題はありませんが、グリッド・モードでOSgridと接続したとき、ビューアーから自分の土地情報が見えないという問題がありました。原因は不明ですが、当面 Precise Puppy 571JPを主体にします。
追記(2015-12-30)
TahrPup-6.0.5 CE + mono-complete-3.2.8-tahr_xz.sfs + opensim-0.8.2.1 において、上記のような問題点はありませんでした。
最後に編集したユーザー シノバー [ 15/12/30(水) 20:28 ], 累計 4 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

ビューアーと OSgrid

投稿記事 by シノバー »

Secondlife の公式ビューアーは OpenSIMに対応していません。サードパーティーのものでOpenSIMに対応するものがたくさんあります。
私は Singularity というものを使っていましたが、最近は Firestorm というものが高機能で良いみたいです。

ダウンロードして展開し、中にあるスクリプト firestorm をクリックすれば動きますが、大きなキャッシュと、けたたましくログを吐くので、 Secondlifeオフィシャル・ビューアーと同じ措置を採ります。
viewtopic.php?f=37&t=1660

Secondlife の経験がないなら、ひとまずはSecondlifeOSgridに無料アカウントを登録し、これら仮想世界とビューアーの使い方を慣れておくのがよいでしょう。Singularity や firestorm は Secondlife にも OSgrid にも対応しています。

参考リンク
OSGridへのログイン方法(いまさらw) http://hirolecker.slmame.com/e1416190.html
もとちゃ の めざせ!たこ焼き屋さん: OSgrid http://motocha.slmame.com/e1200228.html
OSgrid その2 http://motocha.slmame.com/e1200845.html
最後に編集したユーザー シノバー [ 14/08/16(土) 13:49 ], 累計 4 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

mono のインストール

投稿記事 by シノバー »

さて、自分のPC上に自前の仮想世界を構築するには OpenSIMのサーバーが必要ですが、その前に。 Linuxの場合、mono をインストールしておかねばなりません。Windowsの .NETに相当するものらしいです。

Precise Puppy や TahrPup など Ubuntuベースのパピでは、パッケージマネージャで Ubuntu-universe にある mono-complete を検索し、インストールすれば良いようです。(参考リンク: USBメモリーでOpenSimサーバーの稼動実験 http://kimikodover.blogspot.jp/2013/05/usbopensim.html

しかし mono には 200を越える依存パーケージがあり、合計のインストール・サイズは 200MBを越えます。そこで、pupsaveを消費せず、簡単にインストールできるSFSを用意しました。

ベースのパピーにより、どちらかを選んでください。

mono-complete-2.10.8-precise_xz.sfs
http://shino.pos.to/party/bridge.cgi?pu ... 5/precise/

mono-complete-3.2.8-tahr_xz.sfs
http://shino.pos.to/party/bridge.cgi?pu ... 5/tahrpup/

mono-complete-4.2.1-xenial.sfs
http://shino.pos.to/party/bridge.cgi?pu ... xenialpup/
最後に編集したユーザー シノバー [ 18/07/28(土) 14:00 ], 累計 2 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

OpenSIMサーバーのインストール

投稿記事 by シノバー »

ネット上にはソースからコンパイルする記事もありますが、Linux用バイナリをダウンロードするのが簡単です。
OpenSIMのトップページ http://opensimulator.org/wiki/Main_Page/ja で Binaries Tarball をダウンロード。
執筆時現在最新版 opensim-0.8.tar.gz がダウンロードできました。

pupsave の外、/mnt/home以下などで展開します。たとえば /mnt/home/OpenSIM というディレクトリを作り、その中で展開。
展開されてできた opensim-0.8/bin の中に実行ファイルがありますが、今後作成したSIMやユーザー情報などのデーターベースもこの中に *.db の拡張子のファイルで置かれます。

mono のSFSをロードしておきます。端末を起動し、opensim-0.8/bin に入って mono OpenSim.exe を実行します。
# cd /mnt/home/OpenSIM/opensim-0.8/bin
# mono OpenSim.exe
ROXファイラを使っているなら、フォルダ /mnt/home/OpenSIM/opensim-0.8/bin をH等期、その中の何もないところで右クリック、「ウィンドウ」→「ここで Xtermを起動」を選ぶことで、最初から /mnt/home/OpenSIM/opensim-0.8/bin の場所で起動するので、最初の cd コマンドが不要になります。

最初にいくつか聞かれますが、最初に作る Region の名前、管理者アバタの Firs/Last name と パスワードの他はデフォルトのままで大丈夫です。Secondlife などでアカウントを持っている方は、管理者アバタの Firs/Last name と パスワードも同じにしておくと、覚えやすくて良いでしょう。当面このSIMはネットに公開しないので、パスワードが漏れるなどの心配は要りません。

この設定は Windows でも Linux でも同じなので、第3の人生 http://brepon.slmame.com/ からの引用:
第3の人生 さんが書きました:1 New region name []:  ここに自分の作りたいSIM名を入力
2 Region UUID [**********]:  これはエンターでスキップ
3 Region Location [1000,1000]: これもスキップ
4 Internal IP address [0.0.0.0]: これもスキップ
5 Internal port [9000]: これもスキップ
6 Allow alternate ports [False]: これもスキップ
7 External host name [SYSTMIP]: これもスキップ
8 New estate name [My Estate]: これもスキップ
9 Estate owner first name [Test]: SIMオーナーの名前を入れます
  もちろんここだけのアカウントなので適当でかまいませんが覚えておきましょう
10 Email []: これもスキップ
質問項目の説明は↓のページ:
http://opensimulator.org/wiki/Configura ... 9.E3.82.8B
設定内容は /mnt/home/OpenSIM/opensim-0.8/bin/Regions/Regions.ini などに書かれます。

構築に成功したら、端末はそのままにして、Singularityなどのビューアーで、接続するGrid に Local Host を設定し、管理者アバタの名前とパスワードでログインします。

仮想世界の終了は端末上で quit を入力します。
最後に編集したユーザー シノバー [ 14/08/13(水) 00:48 ], 累計 10 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

運用

投稿記事 by シノバー »

OpenSIM利用者のためのドキュメント
http://opensimulator.org/wiki/User_Documentation/ja

友人のブログです。 OpenSIMと Secondlife との間で作成物を使いまわしする方法などが紹介されています。
第3の人生 http://brepon.slmame.com/
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

他のPCからログインする

投稿記事 by シノバー »

LAN環境があるとき、OpenSIMサーバーを動かすPCと、クライエントであるビューアーを動かすPCとを分けることができます。
OpenSIMサーバーを動かすPCの能力は小さくてもかまいません。でもRAMは1GB程度は欲しい。

OpenSIMは tcp/udp ポート 9000 を通信に使います。
ルータを使っていることを前提にすると、ファイアーウォールはルータが担当しているので、PCのファイアーウォールは外しておきます。あるいは tcp/udp ポート 9000 を開けます。
OpenSIMサーバを動かしているPCのI Pアドレスは固定にしておきます。たとえば 192.168.11.4 とします。その方法の詳細は述べません。

クライエント側のビューアーは、たとえば Forestorm の場合、GUIのグリッド・マネージャからの新しいグリッドの登録がうまくいきません。
その代わりにコマンドラインから次のようにオプションを付けて起動します。パラメータはログイン・ユーアールエルではなく、ログイン・ユーアールアイです。
# firestorm --loginuri=htp://192.168.11.4:9000
いちど起動すると、その後はパラメータなしで起動しても、この設定が「the lost continent of hippo」(失われたカバの大陸?)として登録されています。

参考リンク:
第3の人生:04 http://brepon.slmame.com/e1458459.html
最後に編集したユーザー シノバー [ 14/08/10(日) 15:53 ], 累計 1 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

自分の島をネット上に公開する

投稿記事 by シノバー »

最初の趣旨と反しますが、この自分だけの島をネット上に公開することもできます。以下の記事は実験してないので定かではありません :lol:

ルータを使っていることを前提にすると、まず自分のPCのファイアーウォールは外しておきます。あるいは tcp/udp ポート 9000 を開けます。
次にルータのポートフォワードで外部から tcp/udp ポート 9000 にアクセスがあったとき、これをOpenSIMサーバを動かしているPCのLAN内IPアドレスたとえば 192.168.11.4 に変換します。
これで外部からグローバルIP:9000 にアクセスすれば、そのPC上のOpenSIMにログインできるはず。実験してないので定かではありません :lol:

グローバルIPが固定であればよいのですが、そうでなければ ダイナミックDNS(DDNS)などを使い、固定したドメイン名でアクセスできるようにする必要があるでしょう。その方法の詳細は述べません。
たとえば Forestorm の場合、コマンドラインから次のようにオプションを付けて起動します。
# firestorm --loginuri=htp://ホスト.ドメイン:9000

この「ホスト.ドメイン」はグローバルIPに対するものなので、LAN内PCからは前記事のように、LAN内IPたとえば 192.168.11.4 を指定してやります。

友人用のアカウントを用意しておかねばなりませんね。opensimのコンソールでサーバーコマンド create user を実行します。


参考リンク
第3の人生:07 http://brepon.slmame.com/e1459958.html
OpenSIM作って、友達呼んでみた http://kyota.slmame.com/e442131.html
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

OSgridで公開するにはルータが問題

投稿記事 by シノバー »

さきの記事で、自分だけの島をネット上で公開することを取り上げました。でも、ネット上に公開するならば、他人の島々と行き来できるようにしないと、あまり意味がありませんね。

OSgridは、OpenSIMをグリッドの上に配置したものです。冒頭趣旨からズレてきましたが、自分のPC上に作った島をOSgrid上に配置し、他の島々とも相互に行き来できることを目指します。

友人の brepon または brezza さんがWindows上でこれをやっており、その解説をブログに載せています。私も同じことをパピー上で行いました。Windows上のものとパピー上のものと、同時進行のように解説をしていきます。

このトピック前半の、自分だけの島をPC上に作るということと、これから扱う、自分の島をOSgridで公開することkとは大きな違いがあります。前者は仮想世界のシステム全部を一つのPC、一つのプロセスで行うもので、「スタンドアロン」モードと呼びます。後者はこれに対して「グリッド」モードと呼びます。仮想世界を構成するいくつかのサービスを、それぞれ別のPC、プロセスで行ないます。分散処理と思って良いでしょう。

このトピック前半で扱った「スタンドアロン」に対し、これから扱う「グリッド」モードは、たいへん難しいとされています。しかし「グリッド」モードを構成するサービス(プロセス)のほとんどはOSgridに任せ、自分でやる部分は一つだけなので、自分の島をOSgridで公開すること自体は簡単です。

なにがたいへんかと言うと、他人からログインできても、自分の島に自分自身はログインできないということがあります。と、言うのは……。

ネット上に公開するのはグローバルIPになります。ところが自分がLAN内からアクセスするのは 192.168. などで始まるLAN内アドレスです。多くのケースで、LAN内から自分のグローバルIPアドレスにアクセスしても、ルータが現れるだけで、フォワードしたはずのPCにはアクセスできないことがあります。

これが Webページの場合ですと、グローバルのホスト.ドメイン名をLAN内のIPアドレスに変換するよう/etc/hosts ファイルに書いておけば解決します。

たとえば、webページを公開しているPCのLAN内IPアドレスを 192.168.11.4 とします。ルータは外部から TCPポート 80 にアクセスがあった場合に 192.168.11.4 のポートフォワードするよう設定されているものとします。別途 DDNSなどで グローバルのホスト.ドメイン名で参照すると グローバルIPが充てられるようになっているとします。LAN内からブラウザなどでグローバルのホスト.ドメイン名にアクセスしようとすると、グローバルIPにアクセスすることになるのですが、これができない場合があります。このようなとき、/etc/hosts ファイルに次の行を加えます。

コード: 全て選択

192.168.11.4 グローバルのホスト.ドメイン名
こうすると、LAN内からブラウザなどでグローバルのホスト.ドメイン名にアクセスしようとすると、LAN内アドレス 192.168.11.4 に変換されるという仕組みです。[/size]

ところが、この方法は OSgrid に対しては通用しないみたいです。なにか方法があるのかもしれませんが、ルータを「ヘアピンNAT」あるいは「NATループバック」などと呼ばれる機能のものを 使えば解決します。私の場合、Buffalo の有線ルータ BBR-4HG に交換することで解決しました。
追記(2015-06-11)
Baffaloのルーター BBR-4HG にはアドレス変換のさいにバグがありました。0.8.0系では気付かれなかったものです。
ファームウェアを ver.1.x は 1.48 以降に、ver2.xは 2.06以降のものに更新することで、OpenSIM 0.8.1系での不具合は解消しました。
http://buffalo.jp/download/driver/lan/b ... w-win.html

参考リンク
清水 隆夫の「Good Job !」 http://tshimizu.cocolog-nifty.com/good_ ... d-sim.html
もとちゃ の めざせ!たこ焼き屋さん: シム公開の準備体操--その1 http://motocha.slmame.com/e1207472.html
最後に編集したユーザー シノバー [ 15/06/11(木) 17:34 ], 累計 2 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

島を公開するためのネットワーク環境

投稿記事 by シノバー »

自分のPC上に作った島をOSgrid上に公開するためのネットワーク環境を整備します。
必要なことは次の4つです。
1. ヘアピンNAT機能のあるルータを使うこと。
2. OpenSIMサーバを動かすPCのLAN内アドレスを固定にすること。
3. TCP/UDPポート 9000 を、上記PCにポートフォワードすること。
4. DDNSなどで外部からホスト.ドメイン名でアクセスできるようにすること。

1.ヘアピンNAT
ヘアピンNATについては前記事で書きました。ルーターが自分の自由にならないという場合は諦めねばならないでしょう。レンタル・サーバーを借りるという手はあります。

2.固定IP
LAN内アドレスの固定はパピーの場合、ネットワーク・ウィザードを使います。Simple Network Setup には固定IPの機能はありません。
IPだけでなくDNSの設定も必要なので、いったんDHCPでIPを取得し、DNSを自動設定しておきます。その後ネットワーク・ウィザードを起動、「固定IP」のボタンを押すと、現在の IPとDNSなどの設定が表示されます。ここでIPアドレスだけを書き換えます。

固定IPアドレスの例として 192.168.11.4 を掲げました。このアドレスはLAN内の他のPCと重複してはいけません。ルータのDHCPが、たとえば 192.168.11.2 から順にIPを割り当てるようだと、他のPCが 192.168.11.4 に自動割り当てされるかもしれません。ルーターのDHCPの設定で割り当てるIPをたとえば 192.168.11.10〜30 というように設定しておけば、 192.168.11.4 は安泰です。
ルータのDHCPが192.168.11.2 から純にIPを割り当てる設定を触らず、固定IPのほうを 192.168.11.50 など、離れた番号に採ることでもけっこうです。

3. ポートフォワード
TCPの 9000 番と、UDPの9000番を OpenSIMサーバのLAN内IPに振り向けるだけです。将来にSIMを複数作るならば、 9001〜のポートも必要です。とりあえず TCPとUDP の 9000-9010 までをポートフォワードしておくと、SIM10個までOKです。

4. DDNS
私は MyDNS を使っています。運用中は自分のグローバルIPをDDNSのほうへ報告しなければなりません。ルーターで自動的にやってくれるものもありますが、そうでない場合は、cronで行います。パピーに組み込まれている「 pSchedule 提示のタスク」(メニュー>システム)で設定できます。

MyDNSにグローバルIPの報告をする方法で、いちばん簡単なのは HTTP-BASICです。 アカウント名とパスワードを付けてログインURLにアクセスするだけです。アクセスは wget でできます。
修正:wget コマンドで http://マスターID:パスワード@ログインURL は使えないみたいなので、次のように user と passwordを指定します。

コード: 全て選択

wget -T 10 -O -  --user=マスターID --password=パスワード http:/ログインURL &> /dev/null
このコマンドを実行するスクリプトを作って /root/my-applications/bin などに置き、pSchedule で1時間に1回程度呼んでやればよいでしょう。

2018-05-23 追記
これらの設定が正しいかチェックする方法を別ブログに書きました。
http://shino.pos.to/secondlife/blog/?viewDetailed=00014

参考リンク
第3の人生:07 http://brepon.slmame.com/e1459958.html
第3の人生:08 http://brepon.slmame.com/e1459963.html

もとちゃ の めざせ!たこ焼き屋さん
シム公開ー「中吉」なら賽をふれ! http://motocha.slmame.com/e1210669.html
「末吉」捨て身のスープレックス! http://motocha.slmame.com/e1211020.html
今日は凶でも明日は鯖っ! http://motocha.slmame.com/e1213718.html
最後に編集したユーザー シノバー [ 18/05/23(水) 01:02 ], 累計 6 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

OSgridで公開

投稿記事 by シノバー »

ネットワーク環境の準備が整ったらいよいよ OSgrid で公開する島の作成です。「スタンドアロン」モードで作った島とは別に OSgrid用の新たな島を作ります。スタンドアロンで島を育てていた場合は、そのバックアップを取って、新たな島に読み込むことができます。

すでにスタンドアロンで島を構築できたのならば、OSgrid用に新たな島を作るのは難しくありません。OSgrid用に設定されたOpenSimulaterをOSgridのページからダウンロードできます。スタンドアロンとの設定が異なるのは2箇所だけです。Region LocationExternal host name

External host name は、DDNSで設定した自分のグローバルホスト.ドメイン名です。Region Location は、新しい島の OSgrid上の座標です。子の『座標は他の島と重複してはいけません。現在使われている座標は http://quickmap.osgrid.org/ で分かります。 http://www.osgrid.org/index.php/regionconnect で開いている座標が提案されますが、みんながこれを参照するからか、すでに塞がっていることが多いようです。

自分の島を OSgrid に公開するのに必要な設定に関する情報が http://www.osgrid.org/index.php/regionconnect にまとめられています。ですが、これらを設定済みのものが提供されているので、それをダウンロード、解凍するだけで済みます。OpenSIMのサイトではなく OSgridのサイトで配布されているものです。
http://www.osgrid.org/index.php/downloads
執筆時の Current Release は osgrid-opensim-08092014.v0.8.1.8738445.zip がダウンロードできました。pupsave の外、/mnt/home以下などで展開します。たとえば /mnt/home/OpenSIM というディレクトリを作り、その中で展開。

mono のSFSをインストールしておきます。端末を起動し、展開してできたディレクトリの bin ディレクトリに入って mono OpenSim.exe を実行します。

最初にいくつか聞かれます。また第3の人生 http://brepon.slmame.com/e1460332.html からの引用。スタンドアロンと異なるところを太字にしました。
第3の人生 さんが書きました:1 New region name []:  ここに自分の作りたいSIM名を入力 brepon land
2 Region UUID [**********]:  これはエンターでスキップ
3 Region Location [1000,1000]: ここに空いてる番地を入れます 9955,9955
4 Internal IP address [0.0.0.0]: これもスキップ
5 Internal port [9000]: これもスキップ
6 Allow alternate ports [False]: これもスキップ
7 External host name [SYSTMIP]: ここに取得したドメインを入れます brezza.mydns.jp
8 New estate name [My Estate]: これもスキップ
9 Estate owner first name [Test]: OSGridのアカウントを入力します brepon
9 Estate owner last name [Test]: OSGridのアカウントを入力します wind
えと、座標だけでなく SIM名も OSgrid内で重複しては困ります。あらかじめ OSgrid内で検索しておきましょう。
スタンドアロンで Estate owner は自由でしたが、OSgridに公開する場合は OSgridで登録されたアカウントでなくてはなりません。スタンドアロンと違ってパスワードを要求されないのは、OSgridアカウントのパスワードが、そのまま使われるからです。

参考リンク
第3の人生:09 http://brepon.slmame.com/e1460332.html

もとちゃ の めざせ!たこ焼き屋さん:
シム公開の準備体操--その1 http://motocha.slmame.com/e1207472.html
シム公開の準備体操--その2 http://motocha.slmame.com/e1207520.html
OSgridでのシム公開!(「大吉な人」編その1) http://motocha.slmame.com/e1208911.html
OSgridでのシム公開!(「大吉な人」編その2) http://motocha.slmame.com/e1209787.html
最後に編集したユーザー シノバー [ 14/08/13(水) 00:56 ], 累計 1 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

USBで運用

投稿記事 by シノバー »

さて、ここからはパピー Puppy Linux のお家芸 :)

OSgridに公開するということは、自分以外のゲストに対してもオープンということです。自分が寝てるときに誰か訪問してくるかもしれません。そのときにPCを落としていると、島は消失しています。これでは失礼ですね。望ましくはOpenSIMサーバは24時間運用したい。でも、電気代やPCの寿命が気になる。

そこで OpenSIMサーバを USBメモリで運用します。他のOSだとUSBの速度や寿命の理由で、実用的ではありません。しかしパピーならできます。パピーリナックス(Puppy Linux)はこういうとき、システムをRAM上に置き、USBへの書き込みも最小限にしますから、速度や寿命の問題も解決します。

実装RAMは最低1GB、USBメモリは 4GB以上が良いでしょう。わたしの場合、USBメモリの最初に 1GBの fat32 のパーティションを作り、ここに bootフラグを付けておきます。後半全部を ext3 でフォーマットし、ここにパピー 571JPを Frugalインストールします。

先頭に fat32 のパーティションを置くのは、Windows対策です。すべてを ext3でフォーマットしたUSBメモリをWindowsに差すと、Windowsはこれを認識できないので、「フォーマットしますか?」のダイアログをだします。うっかりするとUSBメモリをそっくり消してしまいますね。

fat32 のパーティションに bootフラグを付けるのは、BIOS対策です。BIOSによっては bootフラグが見つからないと、そのディスクからブートできないことがあるからです。

USBメモリへのパピーのインストールには Frugalインストーラの使用をおすすめします。
http://ameblo.jp/shinobar-blog/entry-11800410949.html

OpenSIMサーバを動かすには mono も必要なので、SFSを入れておきます。いったん再起動して pupsaveを作ります。/mnt/home/OpenSim ディレクトリを作って、そこにOSgrid配布のOpenSIMサーバのアーカイブを展開します。/mnt/home/OpenSim/opensim-0.8.1 ディレクトリができます。 /mnt/home/OpenSim/opensim-0.8.1/bin に入って mono OpenSim.exe を実行すればよいのですが、便利のため次のスクリプトを作り、 /mnt/home/OpenSim/opensim とします。

コード: 全て選択

#!/bin/sh
APP=$(readlink -e $0)
[ "$APP" ] || APP=$0
APPDIR=$(dirname "$APP")
[ "$APPDIR" = "." ] && APPDIR=$(pwd)

GUEST_PREFIX=$APPDIR/opensim-0.8.1
GUEST_BINDIR=$GUEST_PREFIX/bin
cd "$GUEST_BINDIR"
mono OpenSim.exe
パスを通すため、/mnt/home/OpenSim/opensim へのリンク /root/my-applications/bin/opensim を作ります。
端末を起動し、 opensim と入力すれば OpenSIMサーバが起動します。最初に島を作ります。いったん quit で閉じます。

OpenSIMサーバを自動起動できるようにします。次のスクリプトを作り、/root/Startup/opensim とします。

コード: 全て選択

#!/bin/sh
urxvt -e opensim
Xサーバをリスタートします。端末が現れ、OpenSIMサーバが自動起動すればOKです。

パピーのUSBメモリでの運用には HDDは要りません。HDDを外すのが面倒くさいとか、HDDを使うともあるなどの理由で残しておくときは、HDDをスピンダウンしておきます。
ハードディスクのスピンダウン viewtopic.php?f=13&t=2710

参考リンク
Diary in Second Life: USBメモリーでOpenSimサーバーの稼動実験 http://kimikodover.blogspot.jp/2013/05/usbopensim.html
最後に編集したユーザー シノバー [ 14/08/15(金) 06:06 ], 累計 2 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

OpenSIMサーバーを非特権ユーザで動かす

投稿記事 by シノバー »

前記事で OpenSIMサーバを24時間運用する方法について書きました。

パピー(Puppy Linux)は通常、特権ユーザである root で動作します。24時間運用だと、異常があっても気づきにくく、何が起こるか不安があるかもしれません。パピーもLinuxなので、特権ユーザである root ではなく、非特権ユーザで動かすこともできます。PPLOGを動かすウェブサーバ hiawatha は、非特権ユーザ webuser で動作します。同じように OpenSiMサーバを非特権ユーザで動かすことができます。

OpenSiMサーバを非特権ユーザで動かすことの意味は、OpenSiMサーバになにか異常があったときに、その影響範囲がOpenSIM関連のファイルだけに止まるということです。しかし、もともとパピーのシステムの根幹は書き込み不可のメインSFS上にあり、不具合が起こったとしても、差分ファイルである pupsaveを新調すればよいだけなので、深刻な問題とはなりません。OpenSIM関連のファイルはどちらにしても破壊、書き換えされる恐れはあります。これはSIMデータなどをバックアップしておく以外に保護の方法はありません。

以上を考えると、OpenSIMサーバーを専用機で動かすならば、非特権ユーザで動かすことに意味はありません。私の場合はメールの自動受信とNAS、OpenSIMを1台のPCで運用するので (Vine からパピーへのお引越し viewtopic.php?f=23&t=2321 )、 この方法を採りました。メールはユーザー tako、NASはユーザー ftp、OpenSIMサーバはユーザー opensim というように、それぞれ別ユーザーで、互いの干渉を防ぎます。

通常は root で動作するパピーであっても、特定のサーバを非特権ユーザで動かすこともできるのだということを示すためにも、この記事を書きます。

1. グループ opensim を作る。
次のコマンドを実行します。
# addgroup -S opensim

2. ユーザ opensim を作る
# adduser -D -H -G opensim opensim

以上でユーザ opensim とグループ opensim が作られたはずです。確認します。
# id opensim
uid=100(opensim) gid=111(opensim) groups=111(opensim)
(uid, gid の番号は既存のユーザー数などの状況による)

3. OpenSIM関連のファイル所有者を opensim とする。
例として OpenSIMサーバのインストール先を /mnt/home/OpenSIM/opensim-0.8.1 とします。/mnt/home(パピーがインストールされている、あるいjはpupsaveのあるパーティション)は ext3 などのLinux用パーティションでなくてはなりません。
次のコマンドを実行します。
# chown opensim.opensim -R /mnt/home/OpenSIM/opensim-0.8.1

OpenSimサーバーを別のパピーで実行する場合、opensimの uid、gidは異なる可能性があります。そのときは、新しいパピーで上記の chown コマンドを再度実行してください。

追記: この操作(chown)は、次の起動スクリプトに書き込んでおくことで、別途実行する必要ははなくなります。

4, 起動スクリプトを作る。
次のスクリプトを作り、 /mnt/home/OpenSim/opensim とします。

コード: 全て選択

#!/bin/sh
APP=$(readlink -e $0)
[ "$APP" ] || APP=$0
APPDIR=$(dirname "$APP")
[ "$APPDIR" = "." ] && APPDIR=$(pwd)

GUEST_PREFIX=$APPDIR/opensim-0.8.1
GUEST_BINDIR=$GUEST_PREFIX/bin
chown opensim.opensim -R $GUEST_BINDIR
cd "$GUEST_BINDIR"
sudo -u opensim mono OpenSim.exe
パスを通すため、/mnt/home/OpenSim/opensim へのリンク /root/my-applications/bin/opensim を作ります。
端末を起動し、 opensim と入力して OpenSIMサーバが正常に起動することを確認します。
OpenSIMサーバを自動起動できるようにします。次のスクリプトを作り、/root/Startup/opensim とします。

コード: 全て選択

#!/bin/sh
urxvt -e opensim
5. 自動起動の確認
Xサーバをリスタートします。端末が現れ、OpenSIMサーバが自動起動すればOKです。
psコマンドでプロセスのユーザ名を確認します。端末から ps コマンドを打つと
21064 root 0:00 sudo -u opensim mono Opensim.exe
21064 opensim 91.40 mono OpenSim.exe
などと、monoがユーザopensimで動いているkとが確認できます。
最後に編集したユーザー シノバー [ 14/10/02(木) 13:24 ], 累計 2 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

島を追加する

投稿記事 by シノバー »

パフォーマンスを高く保つなら一つの島(シミュレータ)を1つのPCでまかなうのが良いのかもしれませんが、1つのPCで複数の島を持つことも可能です。
OSgridはまだダウンしたままなので、ローカルでテストを続けてます。島ひとつで寂しいので、島を追加してみました。
島々の間から日の出が望める景観ができました。
画像

島(Region)の設定は opensim の bin/Regions/Regions.ini にあります。直接これを編集してもよいのですが、 UUIDの作成などもありますので、 mono OpenSim.exe でシミュレータを起動し、そこからコマンドラインで島を追加します。島(Region)の追加コマンドは create region です。Region Shinobar (1000,1000) の東に Shinobar East を追加しました。
Region (Shinobar) # create region "Shinobar East" Regions.ini
RegionUUID [b9a41733-a2e6-4e74-aa58-4d79954de4a9]:
Region Location [1000,1000]: 1001,1000
Internal IP address [0.0.0.0]:
Internal port [9000]: 9001
Allow alternate ports [False]:
External host name [SYSTEMIP]: (注)
Do you wish to join region Shinobar East to an existing estate (yes/no)? [yes]:
Name of estate to join. Existing estate names are (My Estate) [My Estate]:
作成する新しい島(Region)の名前、その X, Y 座標、それとポート番号を 9000 でなく、新しく 9001 などに設定しなくてはなりません。
(注)ローカルなので External host name は SYSTEMIP のままです。OSgrid などに公開する場合は、そのグローバルホスト名(URL)とします。これらは後に bin/Regions/Regions.ini を編集することでもかまいません。

ビューアーでログインすると Shinobar の東に Shinobar East ができています。この島は初期状態の丸っこい小島があるだけです。面白くないので、別の地形を読み込みます。

地形ファイル .raw を読み込むのは terrain load コマンドですが、その前に、対象とする Region がどれであるかを指定しなければなりません。複数の島(Region)があるとき、コマンドはそれら共通の root の位置にあります。change region コマンドで対象 Region を指定します。.raw ファイルは、あらかじめコマンドラインで打ち込みやすいよう、/root などにコピーかリンクを作っておきます。

端末から mono OpenSim.exe でシミュレータを起動し
Region (root) # change region "Shinobar East"
Currently selected region is Shinobar East
Region (Shinobar East) # terrain load /root/theisleofpie.raw
フリーの地形ファイルの入手先: 1SIM用は 256x256 を選ぶ。
最後に編集したユーザー シノバー [ 14/09/01(月) 14:54 ], 累計 1 回
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

島の地形を作る

投稿記事 by シノバー »

OpenSIMで島の地形を入手する方法を、さきの記事で書きました。
自分で好きな地形を作ることもできます。

OpenSIMのWikiには .raw ファイルを扱う地形編集ソフト L3DTを使う方法が示されています(英文)。
http://opensimulator.org/wiki/Using_L3DT
L3DT にはWindows版しかありませんが、パピー(Puppy Linux)では Wine で実行することができます。

しかしL3DTを使わなくても、最近の OpenSIMでは .raw ファイルだけではなく、.png ファイルを取り込むことができます。.png ファイルはパピー標準装備の mtPaint でも、追加ソフトの gimp でも作成できます。.ping ファイルの画面サイズは 1SIMあたり 256x256ドット。画面モードはグレースケールではダメで、RGBモードでないといけないようです。また、opensim-0.8.1以降ではアルファチャンネルを削除しなければなりません。

参考リンク:
Gimpで作るボラボラ島 http://shinobar.slmame.com/e1481592.html (しのバーのブログ)

GIMPでSIM作り(OpenSim土地造成)その1 http://rikachann.slmame.com/e1458787.html (リカのきままなブログ)
GIMPでSIM作り(OpenSim土地造成)その2 http://rikachann.slmame.com/e1459414.html
GIMPでSIM作り(OpenSim土地造成)その3 http://rikachann.slmame.com/e1461222.html

256x256のキャンパスに白黒濃淡が地形の高度となります。真っ黒(0)が海底、真っ白(255)は私の実験では 半分の 128mとなります。海面は標準で 20m なので、濃度は 40 ということになります。真っ白(255)は海抜 108mということになりますね。

ところで、適当に濃淡を付けてもリアルな地形にはなりません。まず、256x256mの範囲で高度128mの山を作ると、勾配が急すぎて異様です。最高高度は 50m、濃度にして 100くらいに収めておくのがよいでしょう。傾斜をあまりに急にしないために、画像を適当にぼかすことも必要です。

もっと大事な事は、現実世界では山から土砂が川を伝って海辺に運ばれ、そこに洲、大きくなれば平野ができます。また海中には浅瀬ができます。これを描写しないと不自然な島ができてしまいます。OpenSIM、またSecondlifeでは潮汐がなく、海面は標準で 20m固定です。なので 21m を平野部、18mを浅瀬とするとよいでしょう。濃度ではそれぞれ42と36です。それぞれに望む面積を塗りつぶしておきます。

あらかじめ現在のSIMのバックアップを取っておきます。
Region (root) # change region "Shinobar"
Region (Shinobar) # save oar /root/Shinobar_back.oar

できあがった .png ファイルは opensim のコマンドラインから terrain load で読み込みます。
Region (Shinobar) # terrain load /root/new_terrain.png

高低の調整には terrain multiply や terrain elevate 、terrain lower などが使えます。

opensim サーバーコマンド http://opensimulator.org/wiki/Server_Commands/ja

追記(2014-09-03)
Japan Open Grid で、この方法で地形読み込みを行うと、SIM内をアバターが歩けないという不具合が起こりました。ローカルでは問題ないので、 JOG固有の問題なのか、原因は分かっていません。バックアップ(.oar)からの復旧は load oar です。
Region (root) # change region "Shinobar"
Region (Shinobar) # load oar /root/Shinobar_back.oar

追記(2014-09-20)
地形読み込みで不具合が出る問題。フィリスさんが Metripolis Metaversum で同様の経験をされています。
http://phyllis.slmame.com/e1473459.html
JOG固有の問題ではなさそうですね。私の経験で、JOGで同様の問題が現れたとき、OpenSIMのバージョンをOSgrid配布の 8.1.3 から OpenSIM配布の公式リリース 8.0.1 に差し替えることで解決しました。
シミュレータのバージョンの問題かどうかの確証はありません。単にキャッシュをクリアすればよいとか、かもしれません。スタンドアロンのほうはバージョンに関わらず問題が出たことはありません。

追記(2014-09-21)
地形読み込みで不具合が出る問題。フィリスさんが Metripolis Metaversum で遭遇したものは解決したそうです。
http://phyllis.slmame.com/e1473685.html
私の事例は、これと違うように思えます。

追記(2015-04-17)
opensim-0.8系では問題なかったのですが、0.8.1系以降では、画像のアルファチャンネルが邪魔するので、これを削除しておかねばなりません。それでも問題は残っているようです。引き続き調査中。

追記(2015-06-11) 解決しました!
Baffaloのルーター BBR-4HG にはアドレス変換のさいにバグがありました。0.8.0系では気付かれなかったものです。
ファームウェアを ver.1.x は 1.48 以降に、ver2.xは 2.06以降のものに更新することで、OpenSIM 0.8.1系での不具合は解消しました。
http://buffalo.jp/download/driver/lan/b ... w-win.html
最後に編集したユーザー シノバー [ 16/01/09(土) 23:45 ], 累計 7 回
The bar master, Shino's Bar
http://shinobar.net/
返信する