Viewer

From OpenSimulator

Revision as of 06:45, 4 June 2011 by Makopoppo (Talk | contribs)

Jump to: navigation, search


Supported Viewers

Though any Second Life compatible client should be supported, bug reports even in IRC should only be made if you are using 1.18.5.3.

  • SecondLife 1.19.0.5(official) on Linux, Mac OS X, and Windows
  • SecondLife 1.18.6 Windlight (works)

Browser Protocol Handlers

A browser-protocol handler is a quick way to connect to a grid, by just clicking on a hyperlink that has an "opensim://" prefix, The only thing you have to do, is instruct your browser how to handle the sl-viewer. Currently there are protocol-handlers for Linux and Windows. I'm pretty sure it's just as easy on the Mac, but since I don't own one, you have to find out for yourself(for now).

Linux

Firefox

You can setup firefox to open opensim://serveraddress links, so you don't have to specify the login-parameters every time you're connecting. Follow these steps in order to use this functionality:

  • create a file named osurl.sh in your secondlife directory, and fill with:
#!/bin/sh 
exec= kdesu -c "/your/path/to/secondlife/secondlife -loginuri ${1:10} -loginpage ${1:10}/?method=login"

Notice that kdesu is optional. Somehow secondlife crashes when i run it as a normal user, so I run it as root.

  • Make the file executable
chmod +x ./osurl.sh

Next you have to add a protocol handler to firefox, so firefox knows that it should run this shellscript.

  • Enter about:config in your browser
  • Add a new string, name it "network.protocol-handler.app.opensim"
  • Enter /path/to/your/secondlife/dir/osurl.sh as value
  • Add a new boolean, name it "network.protocol-handler.external.opensim", and set it to "true"

Now you can try to connect with the OS-Grid by opening "opensim://osgrid.org:8002"" in your browser. Please notice that using protocol handlers may cause a potential security hazard(http://www.heise-security.co.uk/news/96163). I am not sure whether this script is vulnerable to the -autologin vulnerability, so be warned(ps. I don't take any responsibility for using this script).

Windows

Internet Explorer

You can do the same for windows, but it takes a little more work. Follow these steps to get the functionality:

  • create a file named osurl.bat in your secondlife directory, and fill with:
@echo off > osurl.bat
SET rawUrl=%1
SET cleanUrl=%rawUrl:~10%
START "OpenSim" /HIGH /B "%~d0%~p0SecondLifeWindLight.exe" -loginpage %cleanUrl%?method=login -loginuri %cleanUrl%
EXIT
  • We need to create a file named opensim.reg, fill with(modify paths to SL if needed) the text beneath, and save:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\opensim]
"(default)"="URL:opensim"
"URL Protocol"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\opensim\DefaultIcon]
@="\"C:\\Program Files\\SecondLifeWindLight\\osurl.bat\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\opensim\shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\opensim\shell\open]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\opensim\shell\open\command]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\opensim\shell\open\command]
@="\"C:\\Program Files\\SecondLifeWindLight\\osurl.bat\" %1"
  • Right-click the file, and import it to the registry

Firefox

  • Follow the previous steps for Internet explorer
  • add a protocol handler to firefox, so firefox knows that it should run this shellscript.
  • Enter about:config in your browser
  • Add a new string, name it "network.protocol-handler.app.opensim"
  • Enter c:/Program Files/YourSecondLifedir/osurl.bat as value (use your own sl-path here)
  • Add a new boolean, name it "network.protocol-handler.external.opensim", and set it to "true"

Now try to connect with the OS-Grid by clicking this link in your browser: opensim://osgrid.org:8002""

Mac OSX

Not yet implemented

Connecting with the Second Life Viewer

 Note that the Second Life Viewer 1.23.5 uses -parameter with one dash and
 Second Life Viewer 2 uses --parameter with two dashes

Use the -loginuri http://yourserver.org:8002/ parameter and where available the -loginpage http://yourserver.org:8002/ parameter. You may want to use the -settings parameter to use a different viewer setup configuration set as well (the default is settings.xml). Some examples:

  • SecondLife.exe -loginuri http://localhost:9000/
  • SecondLife.exe -loginuri http://login.osgrid.org/ -loginpage http://www.osgrid.org/splash/ -settings settings_osgrid.xml

Setup the protocol handler for convenient connecting, or use the same syntax for other Grids. After the protocol handler is setup, you can try to connect to some grids, by clicking on of the examples below:

To login to the Public GRID examples registration is required first see Grid List for Public Grids.

Technical issues

Platform Specific

Launching from Mac OS X

Examples launching Second Life from the command line (Terminal.app):

open -a "Second Life" --args -loginuri http://localhost:9000/ -loginpage http://localhost:9000/?method=login
/Applications/Second\ Life.app/Contents/MacOS/Second\ Life -loginuri http://localhost:9000/ -loginpage http://localhost:9000/?method=login
/Applications/Second\ Life.app/Contents/MacOS/Second\ Life -loginuri http://user.deepgrid.com:8002/ -loginpage http://user.deepgrid.com:8002/?method=login
/Applications/Second\ Life.app/Contents/MacOS/Second\ Life -loginuri http://osgrid.org:8002/ -loginpage http://osgrid.org:8002/?method=login
/Applications/Second\ Life.app/Contents/MacOS/Second\ Life -loginuri http://logingrid.net:8002/ -loginpage http://logingrid.net:8002/?method=login
/Applications/Second\ Life.app/Contents/MacOS/Second\ Life -loginuri http://osgrid.org:8002/ -loginpage http://osgrid.org:8002/?method=login -settings settings_osgrid.xml

alternatively you can add arguments to arguments.txt on a mac by:

  1. right-click secondlife choose "show package contents"
  2. navigate to contents -> resources -> arguments.txt
  3. add this on one line: -loginuri http://localhost:9000/ -loginpage http://localhost:9000/?method=login
  4. save and run the application normally
    • note: you will not be able to connect to Second Life again until you remove this line from arguements.txt

Network

Connecting to your locally hosted server from behind a DSL router using NAT

Loopback
Most DSL routers/modems prevent loopback connections as a security feature. This means that a NATed IP address ( such as 192.168.2.40 ) can not connect to your forward facing IP address ( such as 199.149.252.44 ) from behind your DSL router/modem. In a case like this, external IP addresses may connect to your server/region but you can not ( this applies to both standalone and grid modes ).

List of routers featuring NAT Loopback : NAT_Loopback_Routers

Router solution
If you are using a ZyXEL DSL router/modem from Embarq, please read this configuration guide. This will show you how to reconfigure your DSL router/modem to fix this problem. Similar solutions may exist for other DSL router/modems. A google search for the make and model of your DSL router/modem may provide you with a manual to assist you in this.

A word of caution : be VERY careful what you change and take good notes along the way so you can undo any changes you make in error.

DNS solution(Linux)
It's possible to host your own DNS-server, so you can prevent some of the dns-naming problems mentioned before. If http://example.org resolves to the external ip, and that loopback connection is prevented by your router, you could point your resolv.conf to a local nameserver like:

nameserver 192.168.2.2

Now you need bind/named installed in order to handle the dns-requests. You can find a bind example configfile here.

Personal tools
General
About This Wiki