Opensim sur Raspberry PI

Matériel utilisé :

Le matériel utilisé est le suivant :
  • Raspberry PI 4 - 4G de mémoire
  • ça marche aussi sur Raspberry PI 3 B+.

Remarques préliminaires :

Juste Opensim version 0.9.0.0 fonctionne.
La version de Mono est la 6.6.0.161, il ne faut apparemment pas utiliser les suivantes.

Procédure :

Nous détaillons dans ce paragraphe l'installation, pas à pas.

Installation du système :

Utilisation de NOOBS pour installer un Raspbian sur la carte SD.

1- Mise à jour du système, une fois le Raspbian installé :
  sudo apt update
  sudo apt upgrade
2- Redémarrer le Raspberry PI :
  sudo reboot now

Installation Mono :

1- Installation de APT-HTTPS : permet les installation de paquets (composants) par le protocole HTTPS :
  sudo apt install apt-transport-https dirmngr gnupg ca-certificates

2- Ajout d'une clé pour les logiciels tiers :
  sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

3- Ajout dans la liste des mises à jour de Raspbian de Mono, version compatible avec Opensim.
Mono permet l'exécution des programmes .NET (Microsoft) sous Linux :
  echo "deb https://download.mono-project.com/repo/debian stable-raspbianbuster/snapshots/6.6.0.161 main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list

4- Mise à jour du système :
  sudo apt update
  sudo apt upgrade

5- Retrait des paquets qui ne sont plus nécessaires :
  sudo apt autoremove

6- Installation de Mono :
  sudo apt install mono-complete

7- Vérifier la version de Mono :
  mono --version

La réponse :
  Mono JIT compiler version 6.6.0.161 (tarball Tue Dec 10 10:57:17 UTC 2019)
  Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
      TLS:           __thread
      SIGSEGV:       normal
      Notifications: epoll
      Architecture:  armel,vfp+hard
      Disabled:      none
      Misc:          softdebug
      Interpreter:   yes
      LLVM:          yes(610)
      Suspend:       preemptive
      GC:            sgen (concurrent by default)

ATTENTION !!! Il ne faut pas que la version de Mono soit > à : 6.6.0.161

Installation de la base de données :

La base de données permet d'enregistrer les informations du serveur Opensim : utilisateurs, régions, etc.
Il est possible d'utiliser SQLite, MariaDB (MySQL), ou autre.

1- Nous choisirons MariaDB :
  sudo apt install mariadb-server

2- Ouverture de MariaDB :
  sudo mysql --user=root

3- Réglage d'un utilisateur "root" avec le mot de passe "toto" :
  DROP USER 'root'@'localhost';
  CREATE USER 'root'@'localhost' IDENTIFIED BY 'toto';
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
  exit

4- Vérification que l'utilisateur "root" fonctionne :
  mysql --user=root --password=toto
  exit


5- Création de la base de données ("opensim") qui contiendra les données d'OpenSim :
  mysql --user=root --password=toto
  create database opensim;
  use opensim;

6- Création de l'utilisateur "opensim", avec le mot de passe "opensimpassword" qui se connectera sur la base de données pour le serveur OpenSim :
  create user 'opensimuser'@'localhost' identified by 'opensimpassword';
  grant all on opensim.* to 'opensimuser'@'localhost';
  exit

Installation et configuration d'Opensim :

Les étapes suivantes décrivent l'installation d'Opensim.

1- Récupération d'OpenSim :
  wget http://opensimulator.org/dist/opensim-0.9.0.0.tar.gz

2- Décompression du téléchargement :
  tar -xvf opensim-0.9.0.0.tar.gz
Le contenu est décompréssé dans le répertoire "opensim-0.9.0.0".

3- Changement de répertoire, dans celui qui contient les exécutables :
  cd opensim-0.9.0.0/bin

4- Edition de la configuration du serveur OpenSim (ici en version 0.9.0) contenue dans le fichier "StandaloneCommon.ini" :
  nano config-include/StandaloneCommon.ini

-> Mettre à jour les lignes :
    ; SQLite
    ;Include-Storage = "config-include/storage/SQLiteStandalone.ini";

    ; MySql
    ; Uncomment these lines if you want to use mysql storage
    ; Change the connection string to your db details
    StorageProvider = "OpenSim.Data.MySQL.dll"
    ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensimuser;Password=opensimpassword;Old Guids=true;"

Remarque :
Pour enregistrer les modifications dans le programme "nano", il faut appuyer sur les touches "Ctrl+o".
Pour quitter le programme "nano", il faut appuyer sur les touches "Ctrl+x".

5- Edition de la configuration d'OpenSim :
  nano OpenSim.ini

-> Mettre à jour les lignes :
    physics = basicphysics

Lancement OpenSim :

1- Pour lancer le serveur Opensim, il faut taper la commande :
  mono OpenSim.exe

2- Renseignement sur les régions, etc :
Lors de la première installation, on va vous demander de renseigner les informations suivantes :

  New region name []: rpi
  RegionUUID [0da65f20-b162-4e06-9d8f-1a71e0df6d07]:
  Region Location [1000,1000]:
  Internal IP address [0.0.0.0]: 192.168.0.33 (<<--- Mettre l'adresse IP du RPI)
  Internal port [9000]:
  Resolve hostname to IP on start (for running inside Docker) [False]:
  External host name [SYSTEMIP]: 192.168.0.33 (<<--- Mettre l'adresse IP du RPI)
  New estate name [My Estate]:
  Estate My Estate has no owner set.
  Estate owner first name [Test]:
  Estate owner last name [User]:
  Password: UPUPIDES
  Email: UPUIDES
  User ID [21d435ab-8c3c-4af6-903c-e3ca6fb34baf]:

Remarques :
Dans les informations ci-dessus, il faut mettre l'adresse IP du Raspberry PI, ici, par exemple, c'est : 192.168.0.33

Test de l'installation :

Pour tester l'installation, j'ai utilisé le Viewer Singularity sur adresse : http://192.168.0.33:9000.

Et voilà !