Configuration
From OpenSimulator
(→Step 2: Configure an OpenSim.exe to use the ROBUST services) |
(→Step 2: Configure an OpenSim.exe to use the ROBUST services) |
||
Line 136: | Line 136: | ||
The steps for both these operations are as follows. | The steps for both these operations are as follows. | ||
− | + | #. Copy bin/OpenSim.ini.example to OpenSim.ini | |
− | + | #. Find the [Architecture] section at the very bottom of OpenSim.ini. Make sure that the | |
− | + | Include-Architecture = "config-include/Grid.ini" (in OpenSim 0.7.1-rc1 and later) | |
− | + | or | |
− | + | Include-Grid = "config-include/Grid.ini" (in OpenSim 0.7.0.2 and earlier) | |
+ | |||
+ | lines are uncommented. The others should remain commented. | ||
+ | |||
+ | #. Go to bin/config-include and copy GridCommon.ini.example to GridCommon.ini. | ||
+ | |||
+ | #. Open GridCommon.ini in a text editor. You will see lots of URL entries, each of which have dummy defaults of http://myassetserver.com:8003, http://myinventoryserver.com:8003, etc. You will need to change each of these to point towards the address of your ROBUST instance. For instance, if you're running ROBUST on a machine with a local IP address of 192.168.1.2, you will need to change AssetServerURI to the setting | ||
AssetServerURI = "http://192.168.1.2:8003" | AssetServerURI = "http://192.168.1.2:8003" | ||
Line 150: | Line 156: | ||
By default, the ROBUST services configured in Robust.ini will be listening on port 8003, so you don't need to change these numbers. | By default, the ROBUST services configured in Robust.ini will be listening on port 8003, so you don't need to change these numbers. | ||
− | + | #. Run OpenSim.exe. If you're running OpenSim.exe for the first time you will get the same questions about setting up the region that occur on a first-run in standalone mode. Please see the standalone section for instructions on how to answer these, or read more information about the Regions.ini file on the [http://opensimulator.org/wiki/Configuring_Regions Configuring Regions] page. | |
If everything is set up correctly, when starting up OpenSim.exe you shouldn't see any errors. You should also see the ROBUST console display log lines saying that the region has registered with the grid service. | If everything is set up correctly, when starting up OpenSim.exe you shouldn't see any errors. You should also see the ROBUST console display log lines saying that the region has registered with the grid service. | ||
− | + | #. Login with a client. Your client startup line will look something like | |
-loginuri http://192.168.1.2:8002 | -loginuri http://192.168.1.2:8002 | ||
Line 160: | Line 166: | ||
The loginuri needs to be the address of the login service. In standalone mode, this was the same address as the region simulator. However, in grid mode this is the ROBUST hosted grid service login URL rather than the address of any of your simulators. In this case, 192.168.1.2 is the address of the ROBUST instance. The port of 8002 is the traditional one for the grid login service. | The loginuri needs to be the address of the login service. In standalone mode, this was the same address as the region simulator. However, in grid mode this is the ROBUST hosted grid service login URL rather than the address of any of your simulators. In this case, 192.168.1.2 is the address of the ROBUST instance. The port of 8002 is the traditional one for the grid login service. | ||
− | + | #. With any luck, you will now successful login. The login will generate log lines on both the ROBUST console and on the region simulator console that the client ends up logging into. If you have any difficulties, please see the notes in the standalone section. More OpenSim.exe instances can be added to your grid in exactly the same way as the first. | |
If you have problems using the OpenDynamicsEngine on *nix, try setting your stack reserve level higher than the default with the following command; | If you have problems using the OpenDynamicsEngine on *nix, try setting your stack reserve level higher than the default with the following command; |
Revision as of 12:05, 22 April 2011
OpenSim simulator configuration file
The region simulator configuration is managed using a file called OpenSim.ini. This file is used regardless of whether the sim is running in standalone or grid mode. This file references some additional configuration information from the config-include/ directory. Information about the various settings is contained in the OpenSim.ini file itself (or OpenSim.ini.example for reference).
Please note, that the name OpenSim.ini can be changed via command line arguments.
It is also possible to distribute the inifile settings over two files. This is useful if you want to run several OpenSim processes where most of your settings are identical except for a few. The master file is read first, then the inifile is read. Settings given in the inifile overrule settings given in the master file. The master file has the same format and the same keywords as the inifile, so the same documentation applies.
Database
Opensim's supports the following database-engines. Information about setting these up can be found in the OpenSim.ini.example file and the other various example files in bin/config-include.
- SQLite (default - a lightweight database that comes bundled with OpenSim and can be used without requiring any extra configuration. It is mostly intended to get you up and running quickly, not for production use. It is significantly slower than MySQL. A few features here (such as attachment persistence) have not yet been fully implemented.
- MySQL 5.1 (fully supported). This is the recommended database for any use beyond experimentation or small standalone applications. (There is currently an unresolved bug_id=5294 found when running OpenSim with MySQL 5.5 on Windows x64 systems.) Some users have reported problems with MySQL 5.1.55 and up with Opensim 0.7.0.2, see this thread for more information. The issue can be resolved by using an updated version of MySql.Data.dll OR installing an older version of MySQL such as MySQL 5.1.52 with Opensim version 0.7.0.2. OpenSim 0.7.1-rc1 also supports MySQL 5.5 out of the box.
- MSSQL (partially supported - some recent OpenSim features may not yet be implemented). See MSSQL-config for configuration information.
Standalone vs. Grid
We recommend that you first get OpenSim running in standalone mode before you attempt to connect it to a grid or run your own grid. OpenSim will start up in standalone mode out-of-the-box on the binary distributions.
An OpenSim configuration consists of regions (run by region simulators) and backend data services (such as user, assets and inventory management).
A system running in standalone mode runs both the region simulator and all the data services in a single process when you run OpenSim.exe. In this mode you can run as many regions as you like but only on a single machine.
In grid mode, the data services are not part of the region server process. Instead, they are run in a separate executable called Robust.exe. A Robust shell can run all the services or they can be split amongst any number of Robust instances. This allows them to be run on entirely separate machines if necessary. In this mode, the OpenSim.exe acts solely as the region server, serving one or more regions that communicate with the separate data services. At this point you can run multiple OpenSim.exe region simulators on different machines.
Running in grid mode is more complicated than running in standalone mode. It requires an understanding of UUID, X,Y location, server handshake passwords, estates and estate owners, and a couple of other settings. These require more care and patience to set up. We strongly recommend that you don't attempt this unless you are extremely patient and very technically proficient.
Running OpenSim in Standalone mode
Getting a binary distribution of OpenSim running in standalone configuration is relatively straightforward since it's configured this way by default. On the other hand, if you build OpenSim from the source distribution or from the git repository then you will need to
- Copy the bin/OpenSim.ini.example file to bin/OpenSim.ini. This configures the 3D simulator itself.
- Copy the bin/config-include/StandaloneCommon.ini.example file to bin/config-include/StandaloneCommon.ini. This configures the in-process data services used by the standalone configuration.
- In the [Architecture] section of OpenSim.ini at the bottom of the file, uncomment the Standalone.ini line so that it says
Include-Architecture = "config-include/Standalone.ini"
(in other words, remove the ; comment symbols preceding this line).
Running OpenSim is then a matter of launching OpenSim.exe.
On a Windows command prompt, at OpenSim's bin directory execute
OpenSim.exe
Or if using the default ODE physics plugin under 64 bit Windows
OpenSim.32BitLaunch.exe
This is necessary because ODE cannot yet be compiled for 64 bit mode under Windows. If you're using Linux then run
mono OpenSim.exe
This can be done under both 32 and 64 bit modes with the ODE physics engine.
Running OpenSim for the first time
If you're running OpenSim for the first time then when you start it up it will ask you several questions at the console. These will set up a single region for you. The configuration will be placed at bin/Regions/Regions.ini which you can then go and edit later on.
Many of the questions have defaults. Here are some explanations of the questions asked.
- New region name - the name for your region. Don't leave this blank!
- Region UUID - the unique ID of your region. In pretty much all cases you will want to accept the randomly generated default in the square brackets. The only time when you wouldn't is if you were trying to set up a configuration to point to pre-existing region data. But in this case you are probably better off editing the Regions.ini file directly anyway
- Region Location - this is the location of the region on the grid. In standalone mode you can safely leave these as the default (1000,1000). If you were to set up additional regions later on in Regions.ini then they would need different grid co-ordinates (e.g. 1000,1001). OpenSim regions can be placed anywhere on a 65536 by 65536 grid.
- Internal IP address - In virtually all cases this can be left as 0.0.0.0 (this is a wildcard that allows OpenSim to listen for UDP connections on any of the server's network interfaces). If you want to restrict UDP connections to only one network interface then you can specify an explicit IP address. This address is only used internally - the External host name is the one that is actually passed to the viewer (and hence is the important one).
- Internal port - This is the IP port for all incoming client connections. The name is a bit misleading since it will be used externally (by a Second Life viewer, for instance) as well as internally. You can make this any port you want, but it is safe to leave at the default 9000. Each region on your server must have a unique port.
- Allow alternate ports - This is currently experimental. Please leave it at the default of False.
- External host name - If you leave this at the default 'SYSTEMIP' then this will become the LAN network address of the machine (e.g. 192.168.1.2). This is fine if you are connecting only from within your LAN. If you want to connect to it from a client on the internet, this should be the External IP Address of your router. Fully Qualified Domain Names (FQDNs) can also be used though they will be converted to a numeric IP address before being sent to the viewer.
The following details are also asked in OpenSim 0.6.9 and earlier.
- Master Avatar UUID - This is a legacy OpenSim feature and can be left at the default of 00000000-0000-0000-0000-000000000000. Later on, you may want to change this to your own avatar's UUID in Regions.ini if you have problems editing terrain.
- Master Avatar first name - This is an alternative way of specifying the master avatar by avatar name rather than UUID. If you press enter here then both this field and the last name field will be left blank. Accepting the blank default is fine - this can always be changed later in Regions.ini
- Master Avatar last name - The last name of the master avatar.
- Master Avatar sandbox password - The password of the master avatar.
In OpenSim 0.7 and later, OpenSim asks you questions to set up an estate and an estate manager instead of a region master avatar. The questions are similar but you will not be asked for a UUID.
Don't forget the account details you use to set up the master avatar (in 0.6.9) or the estate manager (in 0.7 and later). Only this user will initially be able to configure the in-world settings for your region.
See Configuring_Regions for more information about the Regions.ini file that these questions generate.
If you want to create a user other than the estate manager, then type
create user
in the server console. This will ask you a series of questions for creating a user (such as first name, last name and password).
Connecting to OpenSim
To connect to your new sim with your user, start up a Second Life viewer with the following command line switches:
Client on same machine as OpenSim:
-loginuri http://127.0.0.1:9000
Client on same LAN as OpenSim:
-loginuri http://lan_ip:9000
Client on different machine or internet:
-loginuri http://external_ip:9000
Then enter the user name and password you set up in the previous step and your new user should login.
Be aware of loopback problems when Running viewer & server(s) on the same machine (LAN) by using the "external" configuration. (You might notice endless waiting for region handshake.) See also troubleshoot hints. If you're having Connectivity problems. Be sure to read the Network Configuration Page. This is important if you see Region handshake issues
Running OpenSim in Grid mode
NOTE: 0.7 is the first OpenSim release that fully migrates all services to the ROBUST server shell. OpenSim.Grid.UserServer.exe and MessageServer.exe from OpenSim 0.6.9 are no longer necessary. Please see the 0.7 release notes for more details. For details on how to set up grid services in OpenSim 0.6.9 and earlier please see OpenSim 0.6.9 Grid Mode Configuration |
Running OpenSim in grid mode is considerably more complicated than running a standalone instance. Instead of running everything in the same process, backend data services (asset, inventory, etc.) run in one or more separate processes, often on a different machine. This allows multiple OpenSim.exe simulator instances to use the same asset and inventory data.
Step 1: Set up a ROBUST service instance
1. In the bin directory, copy Robust.ini.example to Robust.ini. The example file is configured to run all the services in a single ROBUST instance.
2. Configure the [DatabaseService] section of Robust.ini to use your MySQL database. Only MySQL is supported for running grid services.
3. Start up Robust.exe.
mono Robust.exe (Linux, BSD, Mac OS X)
or
Robust.exe (Windows)
If you don't see any errors (in red) on the console then you should be good to go.
Step 2: Configure an OpenSim.exe to use the ROBUST services
In grid mode, as in standalone mode, you need to configure OpenSim.ini which controls the 3D simulator itself.
However, instead of using and configuring config-include/StandaloneCommon.ini, a simulator connecting a grid needs to use and configure config-include/GridCommon.ini, in order to connect to the ROBUST hosted remote data services rather than in-process local ones.
The steps for both these operations are as follows.
- . Copy bin/OpenSim.ini.example to OpenSim.ini
- . Find the [Architecture] section at the very bottom of OpenSim.ini. Make sure that the
Include-Architecture = "config-include/Grid.ini" (in OpenSim 0.7.1-rc1 and later)
or
Include-Grid = "config-include/Grid.ini" (in OpenSim 0.7.0.2 and earlier)
lines are uncommented. The others should remain commented.
- . Go to bin/config-include and copy GridCommon.ini.example to GridCommon.ini.
- . Open GridCommon.ini in a text editor. You will see lots of URL entries, each of which have dummy defaults of http://myassetserver.com:8003, http://myinventoryserver.com:8003, etc. You will need to change each of these to point towards the address of your ROBUST instance. For instance, if you're running ROBUST on a machine with a local IP address of 192.168.1.2, you will need to change AssetServerURI to the setting
AssetServerURI = "http://192.168.1.2:8003"
By default, the ROBUST services configured in Robust.ini will be listening on port 8003, so you don't need to change these numbers.
- . Run OpenSim.exe. If you're running OpenSim.exe for the first time you will get the same questions about setting up the region that occur on a first-run in standalone mode. Please see the standalone section for instructions on how to answer these, or read more information about the Regions.ini file on the Configuring Regions page.
If everything is set up correctly, when starting up OpenSim.exe you shouldn't see any errors. You should also see the ROBUST console display log lines saying that the region has registered with the grid service.
- . Login with a client. Your client startup line will look something like
-loginuri http://192.168.1.2:8002
The loginuri needs to be the address of the login service. In standalone mode, this was the same address as the region simulator. However, in grid mode this is the ROBUST hosted grid service login URL rather than the address of any of your simulators. In this case, 192.168.1.2 is the address of the ROBUST instance. The port of 8002 is the traditional one for the grid login service.
- . With any luck, you will now successful login. The login will generate log lines on both the ROBUST console and on the region simulator console that the client ends up logging into. If you have any difficulties, please see the notes in the standalone section. More OpenSim.exe instances can be added to your grid in exactly the same way as the first.
If you have problems using the OpenDynamicsEngine on *nix, try setting your stack reserve level higher than the default with the following command; ulimit -s 262144 Or, run the opensim-ode.sh to start up OpenSimulator.
Attaching your sim to someone else's grid
To set up the region server (i.e., OpenSim.exe) to connect to an external grid, you should edit the GridCommon.ini file in the bin/config-include directory. You will need to set the URIs to those given to you by the grid operator.
The other file you may have to change is in your bin/Regions directory. This is where your individual region config files are. If you only have one region, it will by default be called Regions.ini (in OpenSim 0.6.6 and earlier this was called regions.xml).
This can be edited with any text editor. The grid owner may tell you what X and Y location you can place your sim at (you can't have multiple sims at the same location on the grid). If so, the fields you will need to change in this file are sim_location_x and sim_location_y. And the external_host_name should be set to the hostname or IP address of your simulation server (i.e., the machine that is running OpenSim.exe). A list of public grids that you can attach your sim to is at OpenSim: Grids
Further notes
Running OpenSim 0.6.7 and onwards in 64 bit Windows
As of OpenSim 0.6.7, the default physics engine for OpenSim was changed to the ODE engine. This is because ODE is by far the most advanced physics engine plugin currently in OpenSim. Unfortunately, it has the drawback in that it's library is not compilable under 64bit in Windows. Therefore, 64 bit Windows users may need to run
OpenSim.32BitLaunch.exe
instead of
OpenSim.exe
To launch their region simulator.
An alternative is to use the basicphysics engine instead or one of the other alternative physics engines bundled with OpenSim, though all these are far less functional than the ODE plugin.
Note About Mono
If you're using mono, you should increase the value of the mono environment variable MONO_THREADS_PER_CPU from its default of 5 to some number that works for your sim. The exact number depends on many factors including: the number of CPUs in your machine, what else you use that machine for, how many regions you have in your sim, how many of them are adjacent, how many scripts you have, and how many avatars you expect to serve at the same time. As a reference, Wright Plaza in OSGrid, which is running as a single region on a sim and routinely hosts meetings with 20 avatars, uses the value 125.
If this number is too low, the operation of your sim will start to break in all sorts of different ways. A common symptom is the freezing of all activity upon login of a new avatar. Other symptoms are a lot more subtle.
For example: $ export MONO_THREADS_PER_CPU=125
Legacy Configuration Information
These are some pages containing some legacy configuration information of unknown accuracy.
OpenSim 0.6.6 legacy configuration information
Additional Configuration Tasks (for advanced users)
OpenSim.exe command line options
OpenSim.exe has command line options which allow you to perform actions such as reading configuratio nfiles from a different directory. See OpenSim.exe Command Line Options for more details.
Script engine
OpenSim supports multiple script engines. See ScriptEngines for details. If you don't know what this means then the default script engine will be fine.
Permissions Configuration
OpenSim has a quite elaborate set of permissions. See OpenSim:Permissions(Server) for details. By default, permissions are not active on region simulators.
Logging
By default, OpenSim logs information to a file called OpenSim.log in the bin directory. See Logging for details on how to further configure this if required.
Configuration of region modules
Configuration of Metaverse Exchange Protocol (MXP)
Configuration of Web Server and Pages
OpenSim contains a web server that can serve up a variety of pages. Some which come from external files and some are generated internally.
Configuration of Multiple Standalone Regions on the Same Server
Change the 'http-listening-port' in opensim.ini to something other than 9000 for the second region, and change the port in regions.ini to something other than 9000 for the second region.