Installation du serveur OpenSimulator et du visualisateur Firestorm

Distribution de travail : Lubuntu 24.04

I/ Installation du serveur OpenSimulator

Site officiel : http://opensimulator.org/wiki/Main_Page

Documentation sur la compilation : http://opensimulator.org/wiki/Build_Instructions

1/ Création du répertoire de travail

util01@station54:~$ mkdir -p JEUX/SECONDLIFE
util01@station54:~$ cd JEUX/SECONDLIFE/
util01@station54:~/JEUX/SECONDLIFE$ 

2/ Téléchargement du code source.

util01@station54:~/JEUX/SECONDLIFE$ wget http://opensimulator.org/dist/opensim-0.9.3.0-source.zip

3/ Décompression de l'archive.

util01@station54:~/JEUX/SECONDLIFE$ unzip opensim-0.9.3.0-source.zip 
util01@station54:~/JEUX/SECONDLIFE$ cd opensim/
util01@station54:~/JEUX/SECONDLIFE/opensim$ 

4/ Installation des librairie de développement.

  • Installaton de Mono :

Documentation : https://itslinuxguide.com/install-mono-ubuntu/

util01@station54:~/JEUX/SECONDLIFE$ sudo apt install ca-certificates gnupg
util01@station54:~/JEUX/SECONDLIFE$ sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
util01@station54:~/JEUX/SECONDLIFE$ echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
util01@station54:~/JEUX/SECONDLIFE$ sudo apt update
util01@station54:~/JEUX/SECONDLIFE$ sudo apt install mono-complete -y
util01@station54:~/JEUX/SECONDLIFE$ mono --version
Mono JIT compiler version 6.12.0.200 (tarball Tue Jul 11 21:37:50 UTC 2023)
  • Installation d'autres librairies :
util01@station54:~/JEUX/SECONDLIFE$ sudo apt-get install -y apt-utils libgdiplus libc6-dev
util01@station54:~/JEUX/SECONDLIFE$ sudo apt  install dotnet-host-8.0
  • Installation de DotNetSDK 8.0
util01@station54:~/JEUX/SECONDLIFE$ sudo add-apt-repository ppa:dotnet/backports
util01@station54:~/JEUX/SECONDLIFE$ sudo apt-get update 
util01@station54:~/JEUX/SECONDLIFE$ sudo apt-get install -y dotnet-sdk-8.0

5/ Prépaparation à la compilation

util01@station54:~/JEUX/SECONDLIFE/opensim$ cp bin/System.Drawing.Common.dll.linux bin/System.Drawing.Common.dll
util01@station54:~/JEUX/SECONDLIFE/opensim$ dotnet bin/prebuild.dll /target vs2022 /targetframework net8_0 /excludedir = "obj | bin" /file prebuild.xml
util01@station54:~/JEUX/SECONDLIFE/opensim$ echo "dotnet build -c Release OpenSim.sln" > compile.sh
util01@station54:~/JEUX/SECONDLIFE/opensim$ chmod +x compile.sh

6/ Compilation.

util01@station54:~/JEUX/SECONDLIFE/opensim$ dotnet build --configuration Release OpenSim.sln
...
  OpenSim.Region.ScriptEngine.Shared.Api -> /home/util01/JEUX/SECONDLIFE/opensim/bin/OpenSim.Region.ScriptEngine.Shared.Api.dll
  OpenSim.Region.ScriptEngine.YEngine -> /home/util01/JEUX/SECONDLIFE/opensim/bin/OpenSim.Region.ScriptEngine.YEngine.dll

La génération a réussi.                                                                                                            
    0 Avertissement(s)                                                                                                             
    0 Erreur(s)

Temps écoulé 00:01:17.69
util01@station54:~/JEUX/SECONDLIFE/opensim$ 
util01@station54:~/JEUX/SECONDLIFE/opensim$ cd bin/
util01@station54:~/JEUX/SECONDLIFE/opensim/bin$ 

8/ Premier lancement de OpenSim.

util01@station54:~/JEUX/SECONDLIFE/opensim/bin$ dotnet OpenSim.dll
09:03:16 - [OPENSIM MAIN]: configured log4net using default OpenSim.exe.config
09:03:17 - [UTIL] TimeStamp clock with period of 1E-06ms
09:03:17 - [OPENSIM MAIN]: System Locale is en-US
...
09:03:29 - [MIGRATIONS]: Creating AssetStore at version 6
09:03:29 - [ASSET SERVICE]: Loading default asset set from assets/AssetSets.xml
...
09:04:33 - [LOAD REGIONS PLUGIN]: Loading region configurations from filesystem
=====================================

We are now going to ask a couple of questions about your region.

You can press 'enter' without typing anything to use the default

the default is displayed between [ ] brackets.

=====================================

New region name []: region0000
RegionUUID [743fbbb5-f6c2-49fc-9952-9db0302f3212]: 
Region Location [1000,1000]: 
Internal IP address [0.0.0.0]: 
Internal port [9000]: 
Resolve hostname to IP on start (for running inside Docker) [False]: 
External host name [SYSTEMIP]: 
...
Estate region0000 has no owner set.
Estate owner first name [Test]: Kane
Estate owner last name [User]: Solomon
Password: 
Email: solomon.kane@gmail.com
User ID [225bfc92-0c1f-4477-8a17-c3bf27274cf2]: 
...
09:07:34 - [BULLETSIM TERRAIN MANAGER]: Terrain for region0000/<0, 0, 0> created with Heightmap
Region (region0000) # 

II/ Installation du visualisateur : Firestorm Viewer

Lien : https://www.firestormviewer.org/

Documentation sur la compilation : https://github.com/FirestormViewer/phoenix-firestorm/blob/master/doc/building_linux.md

1/ Installation des paquets de développement de base.
util01@station54:~$ cd JEUX/SECONDLIFE/
util01@station54:~/JEUX/SECONDLIFE$ 
util01@station54:~/JEUX/SECONDLIFE$ sudo apt install libgl1-mesa-dev libglu1-mesa-dev libpulse-dev build-essential python3-pip git libssl-dev libxinerama-dev libxrandr-dev libfontconfig-dev libfreetype6-dev gcc-11 cmake

2/ Configuration du compilateur g++-11.

util01@station54:~/JEUX/SECONDLIFE$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11
util01@station54:~/JEUX/SECONDLIFE$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13
util01@station54:~/JEUX/SECONDLIFE$ sudo update-alternatives --config g++

3/ Installation et configuration de l'environnement Python.

util01@station54:~/JEUX/SECONDLIFE$ sudo apt install python3.12-venv
util01@station54:~/JEUX/SECONDLIFE$ python3 -m venv ~/py_envs
util01@station54:~/JEUX/SECONDLIFE$ source ~/py_envs/bin/activate
(py_envs) util01@station54:~/JEUX/SECONDLIFE$ 
4/ Mise-à-jour de Pip.
(py_envs) util01@station54:~/JEUX/SECONDLIFE$ pip3 install --upgrade pip
Requirement already satisfied: pip in /home/util01/py_envs/lib/python3.12/site-packages (24.0)
Collecting pip
  Downloading pip-25.0-py3-none-any.whl.metadata (3.7 kB)
Downloading pip-25.0-py3-none-any.whl (1.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 552.0 kB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 24.0
    Uninstalling pip-24.0:
      Successfully uninstalled pip-24.0
Successfully installed pip-25.0
(py_envs) util01@station54:~/JEUX/SECONDLIFE$ 

5/ Téléchargement du code source du visualisateur Phoenix Firestorm.

(py_envs) util01@station54:~/JEUX/SECONDLIFE$ git clone https://github.com/FirestormViewer/phoenix-firestorm.git

6/ Téléchargement et configuration des variables d'environnement.

(py_envs) util01@station54:~/JEUX/SECONDLIFE$ git clone https://github.com/FirestormViewer/fs-build-variables.git
(py_envs) util01@station54:~/JEUX/SECONDLIFE$ export AUTOBUILD_VARIABLES_FILE=$HOME/JEUX/SECONDLIFE/fs-build-variables/variables

6/ Installation de l'application d'autobuild.

(py_envs) util01@station54:~/JEUX/SECONDLIFE$ cd phoenix-firestorm/
(py_envs) util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ 
(py_envs) util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ pip install -r requirements.txt
(py_envs) util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ autobuild --version
autobuild 3.9.6

7/ Configuration de la compilation.

(py_envs) util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ autobuild configure -A 64 -c ReleaseFS_open
Warning: no --id argument or AUTOBUILD_BUILD_ID environment variable specified;
    using a value from the UTC date and time (250332123), which may not be unique
 '/usr/bin/bash' '../scripts/configure_firestorm.sh' '--config' '--version' '--opensim' '--platform linux' '--package'
       PLATFORM: linux
            KDU: false
...
-- Configuring done (770.8s)
-- Generating done (0.4s)
-- Build files have been written to: /home/util01/JEUX/SECONDLIFE/phoenix-firestorm/build-linux-x86_64
finished
(py_envs) util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ 

8/ Compilation.

(py_envs) util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ autobuild build -A 64 -c ReleaseFS_open
Warning: no --id argument or AUTOBUILD_BUILD_ID environment variable specified;
    using a value from the UTC date and time (250332137), which may not be unique
 '/usr/bin/bash' '../scripts/configure_firestorm.sh' '--config' '--version' '--opensim' '--platform linux' '--package'
       PLATFORM: linux
            KDU: false
...
[ 44%] Building CXX object newview/CMakeFiles/firestorm-bin.dir/lldrawpoolterrain.cpp.o
[ 44%] Building CXX object newview/CMakeFiles/firestorm-bin.dir/lldrawpooltree.cpp.o
[ 44%] Building CXX object newview/CMakeFiles/firestorm-bin.dir/lldrawpoolwater.cpp.o
...
================ Created base package  Phoenix-FirestormOS-private-station54_LEGACY-7-1-12-77344.tar.xz
touched /home/util01/JEUX/SECONDLIFE/phoenix-firestorm/build-linux-x86_64/newview/./.Firestorm-x86_64-7.1.12.77344.touched
[100%] Built target llpackage
finished
(py_envs) util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ 

9/ Vérification.

util01@station54:~$ cd JEUX/SECONDLIFE/phoenix-firestorm/
util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$
util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ ls -l build-linux-x86_64/newview/*.xz
-rw-rw-r-- 1 util01 util01 182265800 févr.  3 11:28 build-linux-x86_64/newview/Phoenix-FirestormOS-private-station54_LEGACY-7-1-12-77344.tar.xz
util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ 

10/ Création du paquet Firestorm.

util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ cp build-linux-x86_64/newview/Phoenix-FirestormOS-private-station54_LEGACY-7-1-12-77344.tar.xz ~/JEUX/SECONDLIFE/
util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ 
util01@station54:~/JEUX/SECONDLIFE/phoenix-firestorm$ cd ..
util01@station54:~/JEUX/SECONDLIFE$ 

11/ Installation.

util01@station54:~/JEUX/SECONDLIFE$ xz -d Phoenix-FirestormOS-private-station54_LEGACY-7-1-12-77344.tar.xz 
util01@station54:~/JEUX/SECONDLIFE$ tar xvf Phoenix-FirestormOS-private-station54_LEGACY-7-1-12-77344.tar 

12/ Lancement du visualisateur.

util01@station54:~/JEUX/SECONDLIFE$ cd Phoenix-FirestormOS-private-station54_LEGACY-7-1-12-77344/
util01@station54:~/JEUX/SECONDLIFE/Phoenix-FirestormOS-private-station54_LEGACY-7-1-12-77344$ 
util01@station54:~/JEUX/SECONDLIFE/Phoenix-FirestormOS-private-station54_LEGACY-7-1-12-77344$ ./firestorm

13/ Configuration de la connexion au serveur OpenSimulator

Dans les lignes de saisie :

- 'nom' : Kane Solomon
- 'mot de passe' : mot2passe

Pour la 'Grille' :

localhost

Et le 'Mode' :

Firestorm

firestorm01.png