ソラマメブログ
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 1人
プロフィール
rikachann Aabye
rikachann Aabye
きままに遊んでます。
最近はものつくりをやりたいと思ってます。
なかなか思うように作れませんが試行錯誤の毎日です
よろしくね。

2017年06月18日

Pine64 A+でOpenSim IP固定化とOpenSim導入

今回は、IP固定化とOpenSimの導入を行っていきたいと思います。

まずはIP固定化からやってみます。

IPはここでは、192.168.11.30とします。

必要な情報を取得します。
①ゲートウェイアドレス
$ route -n
Kernel IP routing table
Destination Gateway   Genmask  Flags Metric Ref Use Iface
0.0.0.0  192.168.11.1   0.0.0.0   UG 0 0 0   eth0
192.168.11.0 0.0.0.0   255.255.255.0   U 0 0 0   eth0

②ネームサーバーアドレス
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.11.1
nameserver interfaces(5)
nameserver file

今回設定する情報は
IPアドレス 192.168.11.30
ネットマスク 255.255.255.0
ゲートウェイ 192.168.11.1
ネームサーバー 192.168.11.1
となりました。

さて、IP固定化では通常 /etc/network/interfacesに前述の情報を記載したら反映されるはずでしたが
なぜかルータからの自動取得になってDHCPの状態となっていました。

いろいろ確認した結果、/etc/network/interfaces.dのeth0ファイルに
auto eth0
iface eth0 inet dhcp
の記載があったため こちらのファイルが優先されていたようです。
この二行をコメントアウトしました。
$ cd /etc/network/interfaces.d
$ sudo vim eth0

#auto eth0
#iface eth0 inet dhcp

先ほどのinterfacesに追記します。
$ cd /etc/network
$ sudo vim interfaces


#dns-nameservers 192.168.11.1 interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo 追加
iface lo inet loopback    追加

auto eth0         追加  
iface eth0 inet static    追加 
address 192.168.11.30   追加
netmask 255.255.255.0   追加
gateway 192.168.11.1    追加
dns-nameservers 192.168.11.1 追加

# Disable wlan1 by default (8723bs has two intefaces)
iface wlan1 inet manual

設定を反映するため、再起動します。
固定IPから SSHログインします。

続いてOpenSimの動作環境のMonoをインストールします。

$ sudo apt-get install mono-complete

バージョンを確認します。
$ mono -V
Mono JIT compiler version 4.2.1 (Debian 4.2.1.102+dfsg2-7ubuntu4)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: normal
Notifications: epoll
Architecture: arm64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen

これでmonoがインストールされましたので引き続きOpenSimをインストールします。
ここでは、バージョン0.8.2.1をインストールします。

$ wget http://opensimulator.org/dist/opensim-0.8.2.1.tar.gz

解凍します

$ tar zxvf opensim-0.8.2.1.tar.gz

解凍したOpenSimのbinディレクトリに移動します。

$ cd opensim-0.8.2.1/bin

早速実行します。

$ mono OpenSim.exe

途中の質問事項に答えていきます。(例です)

New region name []: rikachann_island         Sim名を入力します
RegionUUID [04124039-b4a1-40a5-bef7-d916e62ca614]: Enterボタンを押しました
Region Location [1000,1000]:             Enterボタンを押しました
Internal IP address [0.0.0.0]:             Enterボタンを押しました
Internal port [9000]:                 Enterボタンを押しました
Allow alternate ports [False]:             Enterボタンを押しました
External host name [SYSTEMIP]: 192.168.11.51     固定化したIPアドレスを入力しました。
 ・
 ・
 ・
New estate name [My Estate]:rika    ここではリカにしました。
 ・
 ・
 ・
Exception: System.DllNotFoundException: BulletSim 

エラーで止まちゃいましたぁ^^ 予想通りwww
BulletSimの実行ファイルがARM用でないため停止しました。

Raspberry Zeroと同じように、物理エンジンを ODEに変更して実装していきたいと思います。

まずはコンパイル環境を整えます。(すでにインストールされている場合もあります)
$ sudo apt-get install libtool gcc
$ sudo apt-get install g++
$ sudo apt-get install automake
$ sudo apt-get install git

OpenSimのライブラリーを読み込みます。
$ git clone git://opensimulator.org/git/opensim-libs

コンパイル会場に移動します。

$ cd opensim-libs/trunk/unmanaged/OpenDynamicsEngine-0.13.1mod

コンパイル環境構築のために bootstrapを実行

$ sh bootstrap
 
コンフィグを実行します。

$ ./configure --enable-shared --enable-release --disable-demos --without-x --enable-old-trimesh

コンパイルします。
$ make

作成されたlibode.so.4.1.0をOpenSimディレクトリにコピーします。

$ cp ./ode/src/.libs/libode.so.4.1.0 ~/opensim-0.8.2.1/bin/lib32/libode.so

ODE定義ファイルを編集します。
その前にバックアップ^^

$ cd ~/opensim-0.8.2.1/bin
$ cp Ode.NET.dll.config Ode.NET.dll.config.org

次のように編集します

$ vim Ode.NET.dll.config

編集内容(注意:表示の関係上<>は全角になっています。コピーするときは半角に直してください)

<configuration>
<dllmap dll="ode" target="lib32/libode.so" />
</configuration>

OpenSim.iniを編集して、デフォルトの物理エンジン BulletSimからODEに変更します。

vim OpenSim.ini

260行目のコメントを外します。

;; Default is BulletSim
physics = OpenDynamicsEngine
; physics = BulletSim
; physics = basicphysics
; physics = POS

再度opensimを起動します。
$ mono OpenSim.exe

質問に答えていきます。
Estate owner first name [Test]: ユーザーのファーストネーム ここでは rika
Estate owner last name [User]: ユーザーのラストネーム   ここでは kayama
Password:          パスワード 任意に設定
Email:             Enter
User ID [1c3a35f2-2cae-???????????]:  Enter

入力待ちになりました^^
Region (rikachan_island) #

でも、予想通りJPEGのところが赤くなっています。
ARM用のlibopenjpeg.soが無いためです。

opensimを終了します

Region (rikachan_island) # shutdown

gitで必要なファイルをダウンロードします。

$ git clone git://github.com/openmetaversefoundation/libopenmetaverse.git libopenmetaverse

コンパイル会場に移動します。

$ cd ~/libopenmetaverse/openjpeg-dotnet

Makefileを編集します。

$ vim Makefile

36,37行目を次のように編集します

ARCH=-ARM   <<36行
ARCHFLAGS= <<37行

コンパイルします。

$ make

作成されたjpegライブラリーをOpenSimのディレクトリにコピーします。

$ cp -p libopenjpeg-dotnet-2-1.5.0-dotnet-1-ARM.so ~/opensim-0.8.2.1/bin/libopenjpeg.so

opensimディレクトリーに移動します。

$ cd ~/opensim-0.8.2.1/bin

jpeg定義ファイルを編集します。
その前にバックアップ^^

$ cp OpenMetaverse.dll.config OpenMetaverse.dll.config.org

下記のように編集します。

$ vim OpenMetaverse.dll.config

編集内容(注意:表示の関係上<>は全角になっています。コピーするときは半角に直してください)

<configuration>
<dllmap dll="openjpeg-dotnet-x86_64.dll" target="libopenjpeg.so" />
</configuration>

opensimを再起動します。

$ mono OpenSim.exe

Pine64 A+でOpenSim IP固定化とOpenSim導入

コマンド待ち状態になりましたぁ^^

次は 母艦から ビュアでアクセスしてみます。


同じカテゴリー(Pine64 A+)の記事
 Pine64 A+でOpenSim 環境設定編 (2017-06-11 14:39)
 Pine64 A+でOpenSim 準備編 (2017-05-20 10:58)
Posted by rikachann Aabye at 14:45│Comments(0)Pine64 A+
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。