login_credentials
phototools_menu_floater
Phototools
This is a powerful set of tools for SL photographers and machinima makers. It combines a large number of settings from many places, into a single, multi-tabbed window.
This is accessed via a button on the button bar. If you do not have the button visible, right click any button on the button bar, and select Toolbar Buttons; the Toolbar Buttons window opens. Locate the Phototools button there, and drag it onto any of the button bars (bottom, left or right). Alternately, you can access via top menu, World → Photo and Video → Phototools.
WL (WindLight)
This tab controls many windlight features.
Windlight Settings
- Basic Shaders: This should always be left on, unless you have a very low end computer or specifically need it disabled for some other reason.
- Enable Atmospheric Shaders: Enables full Windlight features. This needs to be on to take full advantage of the settings on this tab.
If this is greyed out, make sure you have Basic Shaders enabled (bottom of the tab). - Use Region Windlight: Force the use of the region's windlight settings.
Same as top menu, World→ Environment Editor → Environment Settings → Use region settings.
- WL Sky: A drop down menu from which you can select a different Windlight sky preset. Much like the one available in the QuickPrefs window.
- WL Water: You can select a different preset to apply to water.
- Day Cycle: Here you can select from one of several different day cycles. These use winlight settings that are different from the default.
Below these is a time of day slider. However, this slider will revert to Windlight Sky to Default. Currently, to change the time of day for a specific sky preset, you need to edit the preset.
- Quick Windlights: An easy way to select default time of day. Same as going to the top menu -> World→ Sun Position.
- Windlight Presets: Quick access to creating or editing sky presets, or water presets.
Water Reflection Settings
- Type: This drop down allows you to select what water will reflect. Note that the more you enable, the lower the viewer performance (ie, the higher the client lag).
This setting can also be accessed via Preferences→ Graphics -> General.
- Resolution: Select the quality of water reflections. Note that anything above “Good” requires that Lighting and Shadows be enabled in the Light tab. If you change setting here, then toggle the Basic Shaders setting off, then back on, for the change to take effect.
As above, increasing quality results in lower performance.
- Transparent Water: If disabled, water will always be opaque.
Light
Lights and Shadows Settings
- Enable Lighting and Shadows: This allows a variety of additional features, beyond shadows, to be enabled and used, such as Depth of Field.
This can also be accessed via Preferences→ Graphics -> General→ Lighting and Shadows. - Enable All Local Lights: Enables light sources other than sun/moon.
This can also be accessed via Preferences→ Graphics -> General→ Local Lights.- Enable attached Lights (Face Lights): With this on, you will also see local lights which are attached to avatars.
Normally, this option would be accessed via the top menu -> Develop→ Rendering → Render Attached Lights.
- Shadow Types: Select what types of shadows you want to be cast. Point light (lights that do not have the projection feature enabled) will always create a sense of shadows, yet they will not cast them upon any surface. It is important to note that regardless of the setting you choose here, textures projected from projection lights will still be enabled.
- Shd. Res (Shadow Resolution): This determines the quality of the shadows. It also is very demanding of computer resources. It is a good idea to leave this setting as LOW as possible when you are not shooting. When you are shooting, set it to 1.0 while preparing your shot. When you are ready to take your shot, slowly raise the slider bar to the right. You need to be careful of your framerate while you raise this setting. It is helpful to turn on the Statistics Bar (under Aids) when you do this for the first few times so you can be familiar with the level of shadows that works best with your system.
NOTE: Setting this too high or moving it too fast will cause viewer crashes. - Shd Clarity: This is a VERY important setting. It essentially determines how clear the Sun/Moon shadows are drawn overall. This setting should be set first before adjusting the setting below. With the value of 'Shd. Res' above set to 1.0, slide the value for 'Shd. Clarity' until the sharpest possible result is achieved.
Please note, the clarity of shadows is directly related to the position of the camera and Sun/Moon. Every time you move either the camera or the Sun/Moon, it is best to adjust this value again. In addition, in order to make adjusting this value easier, it is helpful to set 'Shd. Blur' to 0.0 first. - Shd. Blur (Shadow Blur): The higher the number, the softer the shadow edges. Set to '0' for the sharpest shadows possible. This setting is directly related to the one below it as well. It allows you to set the overall possible amount of shadow blur. If set to 4.00, you can use Shadows Soften to adjust the shadow blur independent of the ambient occlusion. PLEASE NOTE: Ambient Occlusion must be enabled for this setting to work.
- Shd. Soften: Controls the softening effect of Sun/Moon shadows. One simple way to set this value for your specific needs is to first set the 'Shd. Blur' value above to around 3.0. Then the slider here to soften the AO to your liking. Please note, a value of 0.0 will effectively turn off all Sun/Moon shadows. In addition, this has no effect of shadows the caused by projector lights.
- Blur. Dist. (Blur Distance): This will determine the point at which the shadows will begin to blur relative to the camera. The lower the value the closer the point of shadow blur will begin.
PLEASE NOTE: Ambient Oclussion must be enabled for this setting to work. - FOV Cutoff: This determines the Field Of View cutoff at which the viewer will switch between ortho instead of perspective projection. If you are getting shadows that are 'jaggedy' try adjusting this setting for improvement. Also, adjusting the XYZ values for the debug setting RenderShadowSplitExponent can be very helpful.
- Show Bounding Boxes for All Lights in Scene: Will show wireframe boxes for all lights within a scene.
- Show Light Radius for Selection: Shows the circular light casting of any selected light(s).
Ambient Occlusion
- Enable Ambient Occlusion: Ambient Occlusion adds shading to all objects. It is most effective when the Effect and AO Soften settings below are used. It can add a high level of realism to the image. This is especially true when images are made at resolutions of 2048 pixels or above. For further details, see here.
This can also be accessed via Preferences→ Graphics -> General→ Ambient Occlusion.
- Scale: Controls the sampling region; larger regions are more accurate. It can be helpful to set these values high and then add a bit of shadow blur to soften their effect.
- Max Scale: Controls the maximum screen radius from which to sample from, to avoid graphics card cache misses and associated large performance penalty. It can be helpful to set these values high and then add a bit of shadow blur to soften their effect.
- Factor: Scaling factor for the effect (larger is darker). It can be helpful to set these values high and then add a bit of shadow blur to soften their effect.
- Effect: Controls the overall darkening effect of Ambient Occlusion. The default value of 0.8 produces an almost imperceptible effect. Values of 0.0 and below provide a more realistic result. Please note that the Ambient Occlusion produces a noise like effect and this can be softened using the 'AO Soften' controls below. In addition, the standard mesh avatar can look less than appealing with high Effect values due to the low quality geometry of the avatar. Please Note: The lowest value you can set in the slider is 0, while in the spinner you can enter negative values of up to -10000.
- AO Soften: Controls the softening of the Ambient Occlusion effect. One simple way to set this value for your specific needs is to first set the 'Shd. Blur' value above to around 4.0. Then the slider here to soften the AO to your liking. Please note, a value of 0.0 will effectively turn off Ambient Occlusion rendering.
Dof / Glow
Depth of Field
Depth of field simulates real life blurring that occurs when things are not in focus. For example, if you are taking a photo of a person, then typically, things in the background will be blurred; the futher away, the more blurred. If you shift your focus to a tree behind the person, then the person will, in turn, become blurred.
For more information, refer here.
Many of the settings below are also found in Preferences→ Graphics -> Depth of Field.
- Enable Depth of Field (DOF): Turns on the DoF feature. This function requires that Shadows and Local lights both be enabled in the Light tab.
- Show the Current FOV of Viewer Screen: This will show you the vertical field of view for the camera. In SL is possible to change the lens length just like in RL. The smaller the FOV the longer the camera lens. A 50mm lens has a FOV of 27.0 degrees. To adjust the FOV use the zoom slider bar below.
Please see here for a table showing the relationship between FOV and Lens Focal Length (mm).
Rember to disable this before taking pictures, or it will show in them.
- View angle: In real world terms this is a Zoom feature. This will change the field of view in you viewer window. It is the same as hitting Ctrl + 0 or Ctrl+8.
NOTE: This will not function if you have flycam enabled (3D SpaceNavigator). - FOV (Field of View): This tells the viewer what FOV you would like to simulate for the DOF effect. Higher values will produce a more narrow depth of field.
- f-number: Controls maximum screen radius from which to sample from. In real world terms this is the aperture setting for the lens and the lower the value the shorter the depth of field will be. The same applies to SL.
- Foc Length (Focal Length mm): This tells the viewer what Focal Length/Lens Length to simulate for the DOF effect. Higher numbers produce a narrower depth of field.
- Foc Time (Focus Time): This sets the time in seconds it take to the viewer to change focus from one object.
- CoC (Circle of Confusion): This is an important setting. It determines the strength of the blur itself. It does not change the depth of field, it adjusts how much those objects outside of it will be blurry. (This number can be negative, for some “odd” effects.)
- Resolution: This determines the quality of the DOF Effect. For non-photography uses '.25' is good. For setting up shots '.50' or '.70' is very nice. For shooting quality images '1.00' is best. Note that High values will slow down your FPS.
- Aspect Ratio: This is supposed to be aspect ratio of the camera you're modelling. For example, a 35mm camera has an aspect ratio of 3:2 (1.5). Second Life will use this as a frame of reference for how field of view and focal length must be adjusted depending on window size.
Apparently, this currently has no effect.
Glow Settings
- Quality: This will determine the quality of the glow effect, higher is better. There is little visual difference between 8 and 10.
- Iterations: The basic setting for how strong the glow will be. Equivalent to Preferences→ Graphics -> Rendering→ Render Glow - Strength.
- Strength: Additive strength of glow. Very low values are needed to see this effect. Start low.
- Luminance: Minimum luminance intensity necessary to consider an object bright enough to automatically glow.
- Warmth: Amount of warmth extraction to use (versus luminance extraction). 0 = lum, 1.0 = warmth.
Often has little or no effect. - Width: Glow sample size. Higher = wider and softer glow, but eventually it will become more pixelated.
- Alpha: Basically how bright the glow is allowed to get.
Gen (General Render Settings)
Many of these settings are also available via Preferences→ Graphics -> General.
- Draw Dist.: This sets the furthest distance the viewer will draw anything. High values will slow your FPS.
- Avi Count: Maximum number of non-impostor avatars to render in a scene. Very helpful for situations where many avatars are slowing your FPS.
- Avi Detail: Sets the render quality of the avatars. Higher is better quality.
- Avi Physics: Controls level of detail of avatar physics (such as chest physics). Higher is better.
- Particle Cnt.: Sets the maximum number of particles to render.
- Terr. Scale: Sets the quality of the default Linden Labs ground (terrain) texture. Requires a restart if changed.
- Terrain Qal: Sets the quality of terrain. High numbers mean more detailed terrain in the distance.
- Obj. Detail: Controls the detail of prims. Higher values produce greater detail for objects.
- Flexiprims: Controls level of detail of flexible objects. Higher means more detail.
- Tree Detail: Controls level of detail of vegetation. Higher numbers produce greater detail.
- Sky Detail: Controls vertex detail on the WindLight sky. Lower numbers will give better performance and less than lovely skies.
- Vig. Amount: Amount of vignette to apply. Please refer to this page for more info on the vignette feature.
- Vig. Power: Power of the vignette.
- Vig. Multiply: Multiply factor.
- Enable Draw Distance: If you disable this feature, the viewer will render past your set draw distance, but only if you then reduce draw distance. In other words, this setting will not provide limitless draw distance.1)
- Dynamically adjust level of detail: This enables the feature that allows the viewer to dynamically adjust the level of detail in scene as you move further away from objects. It helps improve performance, it also can reduce the quality of the objects in the scene.
- Render only Objects Visible to the Camera: This allows the viewer only to process/draw those objects that are within the camera field of view and not hidden behind anything else. Usually this is a performance booster. Sometimes it can actually reduce performance especially when the scene/sim has few objects. Toggle to see if it helps or not.
- Anisotropic Filtering: Enables anisotropic filtering to improve texture quality. This setting may reduce your viewer's performance. For more information see this wikipedia page.
- Render Particles Attached to other Avatars: Enables the viewer to render any and all particles attached to/coming from other avatars.
- Anti-aliasing: Determines how sharp and smooth the edges of objects will be. On top level graphics cards, higher values have virtually no performance impact. On lower graphics cards, higher values can slow performance significantly.
- Texture Bumpiness: Controls the strength and resolution of normal and bump maps. You must toggle to check box below for changes to take effect.
(Interface) Aids
Interface Aids
The settings here are, as the name suggests, user interface aids. Some of the options are normally only accessible via the Advanced or Develop menus.
- Show Bounding Boxed for All Lights in Scene: Displays colored bounding boxes around all objects in your view which emit light.
- Show Light Radius for Selected Light(s): If you enable this, and then edit one or more objects which emit light, an orange shpere will show, indicating the radius for the light(s).
- Show Bounding Boxes for Objects in the Scene: Displays colored bounding boxes around all objects in your view.
- Show the Statistics Bar: Opens the Stats bar, where you can get detailed info about viewer and region performance.
- Show Detailed Camera Position Data: Display camera info in the lower right of the screen, in white text.
- Show Detail Texture Loading Information: Shows details about texture load and texture memory use, in the upper portion of the screen.
- Show RGB-I Color Values Under Cursor: Displays the Red, Green, Blue and Alpha values for whatever is under your mouse cursor. Note that the color of the light affects the color of objects; if you are trying to match colors, make sure you sure a pure white WL setting.
- Hightlight Transparent Objects in Red: Any objects with transparency will be highlighted. Can also be activated with Ctrl-Alt-T.
- Show the Scene as Wireframe: Switches the view to wireframe display mode; disable to switch back.
- Show the HUD attached to your avatar: If this is disabled, any worn HUDs will not be visible. Useful for doing screen capture.
- Slow-mo Your Avatar: Makes your movements go in slow motion (visible to you only).
- Force Appearance Update: Rebakes your avatar; useful in cases of bake fail.
- Set Window Viewer Size: Change the size of the viewer window.
- Show Debug Settings Menu: Opens the Debug Settings window.
Quick Stats
This portion of the window gives a partial view of rendering statstics. It is a subset of the information shown in the Stats bar.
- Frames Per Second:The number of times per second your computer is redrawing (or refreshing) what's on the screen. Higher values mean a smoother experience.
- Bandwidth: How much data is being transferred between your computer and the Second Life world. This number varies wildly depending on what bandwidth settings you've used, where you are inworld, what's going on, and whether you're still loading some things (objects/textures/etc) that are in your field of view. If bandwidth is 0kbps, something may be wrong (you may be partially disconnected).
- KTris Drawn per Frame: Computer-generated 3D objects are built out of triangles (the basic geometric shape). This is a count of the number of triangles, or “tris”, in each frame of the current scene.
- KTris Drawn per Sec: This is a count of the number of triangles ('tris') drawn every second.
- Total Objects: The number of objects currently in view, which includes: prims, avatars, terrain patches, trees, particle groups, and water patches.
- New Objects: The number of objects being downloaded per second.
- Texture Count: The number of unique textures loaded by the viewer.
Cam
Many of the settings here duplicate those found in the Phototools Camera window. However, there are also some here which are not present in that window.
3D Mouse (Joystick) Settings
Some of the more requently needed settings from the Joytsick settings window, accessed from Preferences→ Move & View -> Movement.
- Left/Right: Adjusts the sensitivity of the Left/Right movement. If you find it difficult to move with precision, use lower scale values.
- Up/Down: Adjusts the sensitivity of the Up/Down movement.
- In/Out: Adjusts the sensitivity of the In/Out movement.
- Pitch: Adjusts the sensitivity of the Tilt movement.
- Yaw: Adjusts the sensitivity of the Spin movement.
- Roll: Adjusts the sensitivity of the Roll movement.
- Zoom Speed: Adjusts the sensitivity of the Zoom speed.
- Feathering: Setting the slider all the way to the right will make the camera very rigid, giving complete control to the joystick. Setting the slider all the way to the left will make the camera very fluid like the camera weighs a lot; good for fly-by shots, not good for framing.
- Zoom Axis Mapping: Controls which mouse axis the zooming function is mapped to (set to work with).
- Enable 3D Mouse: This turns on the 3D Mouse.
- Enable Zoom Control: In order for the zooming control to work, you must set the 'Zoom Mapping' above to '4'.
- Enable Auto Levelling: When enabled, the camera will always remain level.
- Use the 3D Mouse to move the avatar: The mouse will move your avatar.
- Use the 3D Mouse to move objects (building): Uses the 3D mouse to move objects when building and editing.
- Show the Current FOV of Viewer Screen: This will show you the vertical field of view for the camera. In SL is possible to change the lens length just like in RL. The smaller the FOV the longer the camera lens. A 50mm lens has a FOV of 27.0 degrees. To adjust the FOV use the zoom slider bar below.
Please see here for a table showing the relationship between FOV and Lens Focal Length (mm).
Rember to disable this before taking pictures, or it will show in them. - Show Detailed Camera Position Data: Display camera info in the lower right of the screen, in white text.
Viewer Camera Menu Settings
This tab is, in turn, divided into 3 sub tabs, as follows:
Camera Movement
- View Angle: In real world terms this is a Zoom feature. This will change the field of view in you viewer window. It is the same as hitting Ctrl + 0 or Ctrl+8.
NOTE: This will not function if you have flycam enabled (3D SpacenNavigator). - Zoom Speed: Controls how fast/slow the camera will zoom in and out. Higher values produce slower and smother zoom.
- Camera Lag: Amount camera lags behind avatar motion (0 = none, 30 = avatar velocity).
- Camera Offset: Controls how far the camera is offset/distance from the default point of view.
- Cam. Smoothing: Controls how smoothly the camera starts and stops. Higher values produce smoother (and somewhat slower) movement.
Mouse
- Mouse Sensitivity: Controls responsiveness of mouse when in mouselook mode.
- Display avatar & attachments in mouselook: Display avatar and attachments below neck while in mouselook. Default is OFF.
- Smooth Mouselook Movements: Smooths out motion of mouse when in mouselook mode.
Misc Settings
- Clicking your avatar keeps camera position: Normally, clicking on your avatar resets the camera position. This option removes this behavior.
- Reset camera position after teleport: Normally, the camera position gets reset when teleporting (within a region). This option prevents this behavior.
- Disable minimum camera zoom distance: Disable the constraint on the closest distance the camera is allowed to get to an object.
- Allow the camera to move w/o constraints: Ignores the 'push' the simulator applies to your camera to keep it out of objects.
Requires a restart to take effect. - Reset camera position on avatar movement: If this is disabled and you move your avatar, the camera will not follow it.
fs_media - [General]
Music and Media Issues
This section covers issues related to audio, video and some aspects of search.
General
- For situations where you cannot hear audio, be it streaming music, or the audio from a movie/video, the first thing to do is check that:
- May 2018: If you had a recent Windows update, see this page.
- streaming music and/or media are enabled in Preferences→ Sound & Media -> Sounds;
- volumes for music and media are not at minimum;
- audio is configured correctly in your operating system (ie, Windows, linux, OSX), that sound is going to the correct device (i.e., speakers or headset), and so on (this may require you to adjust settings in your sound mixer or other similar software);
- You have not blocked the stream/video; check Preferences → Sound & Media → Media → Manage Media Sites.
- for streaming music, test the music URL in your external web browser, to make sure that the URL actually works.
- If you have plugged in a USB sound device, you may need to relog so that the viewer can use it.
- HTTP fetching may be overloading your router; please try the suggestions given here; if they do not help, revert the changes made then return to this page and continue.
Videos or Music Don't Play at All
- Relog Firestorm and open the Search window
- Go to your computer processes and look for “slplugin.exe”
- For Windows users, go to Task Manager → Processes Tab
- For Mac users, go to Activity Monitor → My Processes (usually by default, but you can check top right drop down)
- For Linux users, go to Command Terminal, and type “ps aux”
- You may see four instances of the slplugin running (that is normal behavior)
- If you do not see any instances of slplugin running, that is the cause of media failing
- If slplugin is not running, disable all firewall and virus protection (including anti-virus software and windows or other operating system firewalls). Do this check also for llceflib_host.
- Relog and attempt video playback again
- If it works, you will need to stop your firewall/virus protection from blocking the slplugin and/or llceflib_host files by granting appropriate permissions in your firewall/virus protection software
- NOTE: If you have several viewers installed, you will have to allow to each one access through your firewall, as well as to SLPlugin and llceflib_host for each one.
- If all of the above does not resolve the issue, you can try downloading the latest SL Viewer 2 viewer and replacing your Firestorm slplugin file with the one from Viewer 2.
Videos Are Not Playing, or Black/Blank Search Page
- In Preferences → Sound & Media → Sounds, make sure the “Enabled” checkbox to the right of the “Media” slider is checked
(For audio, check “Streaming Music”) - In Preferences → Sound & Media → Media, check “Allow inworld scripts to play media”
- In Preferences → Network & Files -> Connection, make sure the Maximum Number of Web Browser Windows dropdown is set to Five, Ten or Unlimited
- Make sure the issue is not with the specific television you are using, by attempting to view videos on a television that plays video normally for other Firestorm users.
- Make sure that “Enable plugins” is ticked in Preferences → Network & Files -> Connection, else the external media plugin can not be executed, and you may see a message saying: Adobe Flash Player or an HTML5 supported browser is required for video playback.
Flash
- Windows users:
- In order to play Flash format videos (e.g., YouTube videos), you must have the Opera & Chromium version of the Adobe Flash plugin installed. Unless you already have this specific version of Flash installed already, you will need to get the Opera & Chromium Flash plugin from Adobe.
- Linux users
- You need to have the pepperflash plugin installed, which can be satisfied by installing pepperflashplugin-nonfree for Chromium
- Mac users
- Mac users currently need the Safari & Firefox version of Adobe Flash plugin installed. Download it from Adobe.
- All users: Test your Flash
- To make sure you have successfully installed the correct version of Flash and that it is working, use the in-world Flash game to test it.
- Open the Developer menu: CTRL-Alt-Q. (Close this after testing; it's best not to leave this menu open.)
- Then type CTRL-SHIFT-Z to open the internal browser.
- Once the browser loads, click the Home icon in the upper left of the browser window.
- Click “Flash game” (3rd column, 4th row).
- A bubble-shooter game should load.
- NOTE: If you experience graphics driver crashes on nVidia cards when viewing Flash media (for example Youtube) both in-world and on a website and/or severe drops in your GPU clock mhz on any card then you will need to disable hardware acceleration on Flash Player. To do this, go to Youtube and Pick any video. Right click the video play area to bring up the options and follow the instructions here.
QuickTime
QuickTime is no longer needed for Windows users (and never was for linux users). Mac users, however, still need to have it.
YouTube
- If YouTube videos suddenly will not play, and you just get a white screen, go to Preferences→ Privacy -> General, and click on Clear History, then try again.
- See also the Flash section, above.
I Hear No Music or Sound from Movies
Go to Preferences→ Sound & Media -> Sounds and make sure the volume sliders for streaming music and media are not all to the left and that there is no mute symbol (red no entry sign) on the speaker icon next to those. Make sure the Master Volume is not all to the left.
Check that Sound Source rolloff distance (Media tab) is correct; set back to default, if you changed it (5m and 30 respectively for min and max).
I Hear No In-world Sounds Apart From Streaming Music and Voice
Go to Preferences→ Sound & Media -> Sounds and check that you have the Sounds and UI sliders up high enough and that there is no mute symbol (red no entry sign) on the speaker icon next to those.
Audio "Skipping"
Go to the top menu bar→ Advanced → Use Plugin Read Thread, and disable it, if it is enabled - or vice versa. (If you cannot see Advanced on the top menu, press Ctrl-Alt-D.)
If that doesn't help, first ensure that you have your bandwidth set correctly. Also, test the audio stream in your regular media player, and/or try a different audio stream in-world.
Audio "Fading"
If the music volume fades as you cam around or edit objects, check the sound equalization settings in your operating system. For example, this may be caused by “Loudness equalization” being enabled in your speaker properties on Windows 7. (Refer to http://jira.phoenixviewer.com/browse/FIRE-19885.)
You have requested a file download, which is not supported within Firestorm
This error is due to Flash not being installed, or not installed correctly. See above.
By Operating System
Windows
If using a VEA4 TV, you get a “File could not be found” error, disable the IPv6 protocol in the Windows network adapter. Note that this is not recommended, but apparently is the only way to get this brand of TV to work.
If sound eventually cuts out on your computer while using Firestorm and the only way to get it back is to log off Firestorm, disable Audio Enhancement via the steps shown here. Another possibility is Loudness equalization; reference this JIRA.
Refer to this page for all Win10 issues.
Mac
Please ensure that you have the most recent version of Flash for Safari installed. You can get this via the normal update process, or from Adobe.
For streaming music on OS X 10.9 Mavericks, please refer to this page.
For users on Sierra, there are reports of media features (such as MOAP, TVs, web search, and web profiles) working more slowly. Ref. BUG-40552.
linux
Both the 32-bit and 64-bit versions of Firestorm for Linux require 32-bit libraries to function. See this page for a link to your Linux flavor to verify you have all the needed audio-related packages installed and to troubleshoot stream issues.
fs_voice - [Voice Worked Fine but Suddenly Doesn't Work]
Voice Issues
Please note: Viewers play a minor part in voice functionality. The bulk of voice support is given by the external application called SLVoice, which is made by the SL voice provider, Vivox. Voice failures are almost always due to one of the following reasons:
- Your ISP is throttling or blocking the voice service;
- failure of the Vivox service;
- voice issues on the region you are on;
- voice being throttled by bandwidth set incorrectly - please check it by following the instructions here;
- voice hardware (mic, headset) not configured correctly in your operating system settings;
- voice hardware not configured correctly in the viewer;
- another application has your voice hardware in use (example, Skype);
your anti virus software has “mangled” the voice application; see steps on this page: here.
- your firewall is blocking slvoice. Add slvoice to your firewall's exclusion/allow list.
Known Issues
Since 4.7.9, voice has not always connected to the voice servers. This is due to some coding issues that we inherited from the official SL viewer and that code's interaction with the latest voice files. The issue is documented on LL's Jira. A workaround is to disable and then re-enable voice. But if you're presented with the voice connection failure message that tells you “Voice communications will not be available”, you may need to disable voice and then relog before voice will try to reconnect.
Steps:
- Go to Preferences → Sound & Media → Voice, and untick “Enable Voice.”
- Relog.
- Wait 10-20 seconds, or until the viewer has finished rezzing the scene.
- Re-enable voice.
Disable When Not in Use
Most voice connection issues happen when the viewer tries to connect to voice during the login process. The workaround is to disable voice before you log out, and then only enable it after logging in when you need it. You can toggle Voice from the Media Controls at the top of the viewer (not enabled by default for Vintage or Latency skins) by hovering over the speaker icon and then checking or unchecking the last checkbox, or by going to Preferences ⇒ Sound & Media ⇒ Voice and checking or unchecking the top option.
Ensure Headset Properly Connected
If you have issues hearing but not being heard, or vice versa, then make sure that you headset is properly connected to your computer. Unplug it, then plug it back in, making sure it is fully inserted.
And on a related note, if you plug your headset in while logged into SL, you will very likely have to relog to get it to be recognised.
Check Voice Settings in your Operating System
Due to the many different versions of each operating system (Windows, linux distros, Mac OSx's), it is very difficult to give specifics for each one. Nonetheless, make sure that your operating system is correctly configured for voice: that voice is going to your headset (or speakers, as you prefer), and that your mic is enabled and configured.
A bit more specifically, for Windows and linux, check in Mixer that SLvoice is listed, and not muted. Check that input and output devices are correct. For Mac, look in the Sound Preference pane.
Check Voice Settings in the Viewer
- Go to Preferences→ Sound & Media -> Sounds. Find the Voice Chat slider and make sure it is not all to the left. Try increasing the volume.
- Make sure that Voice chat is enabled on that preferences tab.
- go to Preferences→ Sound & Media -> Voice. Click on Audio Device Settings. For Input and Output, use the dropdowns to select your voice devices (headset, microphone, whatever you use). It is best not to leave these at Default.
- Close Preferences and locate the Mic button on the button bar. Click the Lock checkbox then the actual button, and try speaking (hopefully, you went to Voice Echo Canyon so you can test).
Try Reinstalling Drivers
Try reinstalling the drivers for your sound card, if you have one. Sometimes, these drivers conflict with the sound component of graphics card drivers. Similarly, you may have success by reinstalling your graphics card driver.
If voice still does not work, then continue working through this page.
Voice Is Intermittent
If you find that voice cuts in and out, particularly right after a TP, and at the same time, you notice that things are not rezzing in for you very well (avatars, objects, etc), then the likely cause is that your router is being “overwhelmed” with texture transfers. So reboot your router/modem, and then your computer, and see if the problem is solved.
You can also try adjusting your bandwidth as explained here.
If that does not help, then proceed with the section below.
Voice Worked Fine but Suddenly Doesn't Work
Chances are good that the problem lies with the SL servers or the voice provider, Vivox. Still, there are things you can try:
- May 2018: If you had a recent Windows update, and you are also missing all other in-world sounds, see this page.
- Open Preferences, and go to Sound & Media → Voice, and click Reset (circular arrow).
- Shut down all applications that use, or can use, voice - like Skype, etc. Then relog.
- What sometimes helps to get voice working is disabling voice in Preferences→ Sound & Media -> Voice, hitting Ok, waiting a minute and then enabling voice and click Ok. When these methods fail (assuming voice usually works for you) it is usually the Vivox voice servers that are the problem.
- If this does not work at your current location, go to a region where other people are able to use voice at this time. One possibility is Firestorm Social, but any region where voice is known to be functioning is fine. Disable voice in Preferences→ Sound & Media -> Voice. Relog, using the last location selection on your login screen. Wait a couple of minutes. Reenable voice. Wait another couple of minutes (in other words, give the connection time to be established). If voice comes on, then the problem may have been the region you were in before. Was voice disabled there? If not, a region restart might solve the problem.
- Go to Preferences → Network & Files -> Connection and reduce your bandwidth setting to 500 (if it is not already set there). Repeat the above step to toggle voice off and back on. See here for more information on setting your bandwidth properly, but bear in mind that lower levels than those calculated there may be necessary for troubleshooting purposes.
- Log out of the viewer, then check Task Manager (or equivalent) and see if SLVoice is still running. If so, kill the process, restart the viewer and see if voice connects.
- Try a relog, or even a reboot of the computer.
- Sometimes device settings can reset, so check in Preferences→ Sound & Media -> Voice→ Audio Device Settings, to be sure that the input and output are set correctly.
- HTTP fetching may be overloading your router; please try the suggestions given here; if they do not help, revert the changes made then return to this page and continue.
Never Been Able to Get Voice to Work
- Does your headset/microphone work outside of SL? ie when using Skype, Yahoo or MSN
- Does your headset/microphone work in Preferences→ Sound & Media -> Voice→ Audio Device Settings?
- Is your voice chat volume turned up and not muted?
- Is the SLVoice.exe (simply SLVoice on Mac) that is in the Firestorm folder in the exceptions/allowed list for your firewall? If your firewall is turned off, turn it on and add the SLVoice.exe (or SLVoice) anyway.
If your Firewall has SLVoice listed twice, then remove both instances, and allow it again. For Win10, make sure that SLVoice has Private unchecked, and Public checked. If you had these set differently, change them, then close the window, log out of SL, reboot.
- Check the bandwidth you are actually getting and what you have set in Preferences → Network & Files → Connection. Please refer to this page for specifics.
- Go to top menu, Advanced → Debug Settings, and in the window that opens, type: Cmdlinedisablevoice - then ensure this is set to FALSE. (Use Crtl-Alt-D to enable the Advanced menu, if it isn't.)
By Operating System
Windows
Some have issues with voice on Firestorm - specifically, “stuttering”, or SLVoice crashing when you unplug a USB device. The only work-around currently is to swap out the voice files.
- To this end, download this file; save it to your hard drive. Make sure you do not have Firestorm running. Then extract the files to your Firestorm install folder. (For Firestorm 32-bit viewer, this is typically located at C:\Program Files\Firestorm on 32 bit Windows, and C:\Program Files (x86)\Firestorm on Windows 64-bit. For Firestorm 64-bit Viewer, this is typically located at C:\Program Files\Firestorm.) When prompted, allow the replacement of existing files.
Windows Vista and Windows 7
Try disabling compatibility mode, if enabled:
- Locate your desktop shortcut for Firestorm (if you use the pinned application on the task bar, make sure you pin the Firestorm shortcut, not the running viewer)
- Right click on the icon and select Properties
- Select the Compatibility tab
- Find “Run this program in compatibility mode for:” if it is set then disable this
- Make sure “Run as Administrator” is enabled (if this is greyed out, then you're probably already running as administrator, so you can ignore this step).
- Click Apply.
- Now log back into the viewer, and see if voice works (do you have the white dot over your head?). If not, go to Preferences→ Sound & Media -> Voice and disable voice; wait a few moments, then re-enable. 1)
On Windows 7, if you find yourself being able to talk but not hear what others say, then a possible solution is to use the sound drivers from Vista. (This needs further confirmation.)
Mac
All Mac Operating Systems
If you are unable to connect to voice and you are also having problems with teleporting and/or loading your friends list, perhaps along with other things, then see the “Mac-specific” section of this page for instructions and more explanation.
Mountain Lion (10.8.x) Only
Some Mountain Lion users experience a problem with voice output, while input works fine (that is, you can hear but you can't speak). To fix this, open the voice preferences for your viewer (Preferences→ Sound & Media -> Voice in Firestorm). Click the device settings button and select “built-in microph” as the audio input device and click OK. Reopen Preferences and go back to the device settings button to ensure you're getting sound in on the mic.
linux
Every linux distro is different; and each distro may have more than one window manager to further complicate things. So tips can't be “absolute”; you will need to experiment and see what works for you. The following have been suggested by some as effective. But first….
In the Firestorm install directory, there's a text file (originally from LL) with tips on getting voice to work in linux. If you haven't read that, then you can try to see if it helps.
- Make sure you have ALSA and/or FMODEX available. FMODEX is supplied with Firestorm, normally. If you look at Help → About Firestorm, you should see a line that resembles this:
Audio Driver Version: OpenAL, version 1.1 ALSOFT 1.11.753 / OpenAL Community / OpenAL Soft: PulseAudio Software
If that says “none” then you have no audio driver available to Firestorm and need to install one.
- Edit the firestorm shell script and remove the #. That will force LL to use FMOD rather than ALSA. Some say this is how to get voice working.
#export LL_BAD_OPENAL_DRIVER=x
- Some swear that the problem is PulseAudio, so you can try to remove that from your system. Be warned, however, that this could cause more problems than it solves. Make sure you remove only Pulse and not half the OS.
- Be sure to have the correct devices select in Firestorm for voice:
Preferences → Sound & Media → Voice → Audio Device Settings (button) … input and output may not work if left at default; they may need to go to a specific device like “ALSA Capture on [device name]”.
Below are results for selected linux distros, based on input from Phoenix and Firestorm users. This will be updated as more information becomes available.
- ubuntu 16.04 64 bit + FS64: The following command installs a few 32-bit libs and voice works after. Maybe you need fewer 32-bit libs but that needs further investigation.
Apparently, arch requires these as well - or some of them - though the exact lib name may be different.
sudo apt-get install gstreamer0.10-pulseaudio:i386 libidn11:i386 libuuid1:i386 libstdc++6:i386
- A new option is a debug setting, FSLinuxEnableWin32VoiceProxy, which when enabled will cause Firestorm to launch the Windows version of SLVoice.exe via WINE. To use this, you need to ensure that WINE is installed; install WINE with your package manager. An existing WINE profile/prefix is not needed, but will be used if present. Depending on your system, it may take several seconds before voice comes up.
NOTES:
* If you disable voice and then re-enable too quickly, WINE may not successfully restart and voice may fail to re-enable. If you get the warning that there was a problem connecting, you will need to relog before voice will re-enable. Thirty seconds between disable and enable should be enough.
* There is a known related issue here
* To speed up the initial loading of voice, usewine-preloader $HOME/path/to/firestorm/bin/win32/SLVoice.exe
before launching Firestorm
fsg_gateway_team
Firestorm Gateway Team Members
Management
- Cat Herder:Jessica Lyon
- Manager:Miro Collas
- HR Manager (FSG Helpers):Dorrie Bellman
- Land Manager:Flossy Andrew
- Assistant Managers:Coral Sharpshire, Kio Feila
- RolePlay and Scifi Portal manager:Teresa Firelight
- Avatar Education:Kio Feila, Tracy Argus
- Small Events Planner:Jolie Serendipity
- FS Tour Guide:Fayleen Bellios
Senior Helpers
- Bluezy Bleac (French, German, Dutch)
- Cleopatra Antiesse (French)
- Kitty Beery (Dutch)
Helpers
- annailisa (German)
- Ardwenia (French, Portuguese)
- Arenae Rosewood (French)
- Ganaelle Aabye (French)
- Laura Azalee (French, Italian)
- Liane Maertens (Portuguese, Italian
- Liliana Darwinian (Portuguese)
- MacMaccee (German, English)
- Silver Frakture (German)
Roleplay & SciFi Portal Team
fs_compiling_firestorm_alexivy_debian_9
This page is very experimental. Don't rely on it unless you want to do a lot of pioneering yourself.
Building Firestorm 5.1 in 64-bit Debian Stretch
This procedure is used for building a 64-bit version of Firestorm 5.1 on 64-bit Debian systems. It was tested and verified on Debian 9.3. This procedure assumes that your system has been properly updated.
This procedure may not work on older versions of Debian, nor has it been tested on any other version of Debian or any other distribution/variant/derivative.
The build process requires at least 4GB RAM with swap, a modern dual-core CPU and 32GB available HDD space. Recommended 8GB or more RAM, quad-core CPU and 32GB available HDD space.
Establish your programming environment
This is needed for compiling any viewer based on the LL open source code and only needs to be done once.
Install Required Tools
The required tools, some of which may already be installed, are:
bison | bzip2 | cmake | curl | doxygen | flex | g++ | gdb | m4 (for make) |
mercurial (for hg) | moreutils (for additional build tools | pkg-config | python | python-dev | python-pip |
sudo apt upgrade # to make sure all installed packages are current sudo apt install --install-recommends bison bzip2 cmake curl doxygen flex g++ gdb m4 mercurial moreutils pkg-config \ python python-dev python-pip
(the –install-recommends flag tells apt-get to install all packages recommended by each named package.)
Install Optional Tools
If you build in a virtual machine (guest), you probably don't want to run the viewer from there, but rather from the host, or a different machine altogether. To simplify the process of sending the viewer oustide the guest, you will need rsync. Rsync will copy only the changed files, dramatically speeding up subsequent processes, and it will properly handle symbolic links.
Note that this procedure assumes you have correctly configured your guest and host, and that the destination path is accessible and writable from the guest.
sudo apt install --install-recommends rsync
Install Required Libraries
Firestorm 5.1, like Linden Lab's AlexIvy release, is built with the USESYSTEMLIBS flag set so that the libraries are installed on the user's system as needed and not shipped with - or maintained by - the viewer. This means that a large number of development libraries must be installed on the build system.
These libraries should all be available in the standard Debian repositories, and some may already be installed:
libalut-dev | libapr1-dev | libaprutil1-dev | libatk1.0-dev | libboost-all-dev | libcairo2-dev | libcollada-dom2.4-dp-dev | libcurl4-openssl-dev |
libdbus-glib-1-dev | libfreetype6-dev | libGL.so (libgl1-mesa-dev) | LibGLU.so (libglu1-mesa-dev) | libgtk2.0-dev | libjpeg-dev | ||
libjsoncpp-dev | libnghttp2-dev } libogg-dev | libopenal-dev | libpangox-1.0-dev | libpng-dev | libsdl1.2-dev | libssl-dev | |
libstdc++.so.6 (libstdc++6) | liburiparser-dev | libvorbis-dev | libX11.so (libx11-dev) | libxinerama-dev | |||
libxml2.so (libxml2-dev) | libxmlrpc-epi-dev | libXrender.so (libxrender-dev) | zlib1g-dev |
sudo apt install --install-recommends libalut-dev libapr1-dev libaprutil1-dev libatk1.0-dev libboost-all-dev libcairo2-dev \ libcollada-dom2.4-dp-dev libcurl4-openssl-dev libdbus-glib-1-dev libfreetype6-dev libgl1-mesa-dev \ libglu1-mesa-dev libgtk2.0-dev libjpeg-dev libjsoncpp-dev libnghttp2-dev libogg-dev libopenal-dev \ libpangox-1.0-dev libpng-dev libsdl1.2-dev libssl-dev libstdc++6 liburiparser-dev libvorbis-dev libx11-dev \ libxinerama-dev libxml2-dev libxmlrpc-epi-dev libxrender-dev zlib1g-dev
Install Autobuild
Autobuild is a Linden Lab resource that does all the hard work. Firestorm 5.1 uses a stock, unmodified version of autobuild from Linden Lab, version 1.1 or above.
sudo pip install --upgrade pip sudo pip install autobuild
This will install autobuild and add a link in the exec path.
Set up your source code tree
Plan your directory structure ahead of time. If you are going to be producing changes or patches you may be cloning a copy of an unaltered source code tree for every change or patch you make, so you might want to have all this work stored in its own directory on its own hard drive, or on a hard drive with lots of free space. Currently, the source code tree takes up over 1GB initially, 3GB after configuring and several times that after building the viewer. If you are a casual compiler and won't be producing any changes, you can use one directory. For this document, I will assume ~/src.
cd ~/src
There are several repositories but the one we are after is the lgpl (release) repository. You can grab all the sources if you wish, but keep in mind that each requires over 1GB initially.
hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl
This will create a folder called phoenix-firestorm-lgpl and add all the source files. If you desire, you can choose a different folder name by adding the name to the end of the command:
hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl firestorm-source
The rest of this document will assume the default directory, phoenix-firestorm-lgpl
This can take a bit, it's a rather large download. On a slow network, it may fail, and this script can help mitigate the issue:
- pull_in_chunks.sh
#!/bin/bash cd ~/src hg clone -r 10000 http://hg.phoenixviewer.com/phoenix-firestorm-lgpl cd phoenix-firestorm-lgpl for i in {15000..50000..5000} do echo "Grabbing to change $i" hg pull -u -r $i done echo "Grabbing to tip" hg pull -u cd ~/src
Set up autobuild build variables
Autobuild 1.1 uses a separate file to control compiler options, switches, and the like for different configurations. Ansariel Hiller maintains a Firestorm-specific version of this file and an associated convenience script. You will want to put this near your source code tree. The rest of these instructions will assume you put it in the source tree at the same level as your main source repository, using the default name.
cd ~src hg clone https://bitbucket.org/Ansariel/fs-build-variables
Preparing to configure and build
Autobuild 1.1 uses a series of environment variables to control the build process. The fs-build-variables reposirory includes a convenience script to set them. You will need to perform this step in any new shell window that you are going to run autobuild in.
cd ~/src/phoenix-firestorm-lgpl source ../fs-build-variables/convenience Release export AUTOBUILD_VARIABLES_FILE=$HOME/src/fs-build-variables/variables
Configuring the Viewer
Unlike previous versions of autobuild, version 1.1 requires the address size switch (-A) after the command, not before it. If you want a 32-bit build, you must specify that; there is no longer a default.
cd ~/src/phoenix-firestorm-lgpl autobuild configure -A 64 -c ReleaseFS_open
This will set up to compile with all defaults and without non-default libraries. It will fetch any additional necessary libraries.
Configuration Switches
There are a number of switches you can use to modify the configuration process. The name of each switch is followed by its type and then by the value you want to set.
- LL_TESTS (bool) controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or
more of them. - clean will cause autobuild to remove any previously compiled objects and fetched packages. It can be useful if you need to force a reload of all packages
- package will result in a bzip2 archive of the completed viewer. Enabled by default, you would have to use -DPACKAGE:BOOL=Off to disable it
- chan will set a unique channel (and the name) for the viewer, appending whatever is defined to “Firestorm-”. By default, the channel is “private” followed by your computer's name.
TIP: OFF and NO are the same as FALSE; anything else is considered to be TRUE
Examples:
autobuild configure -A 64 -c ReleaseFS_open -- -DLL_TESTS:BOOL=FALSE autobuild configure -A 64 -c ReleaseFS_open -- --clean autobuild configure -A 64 -c ReleaseFS_open -- --chan="MyBuild"
In the last example, the channel and resulting viewer name would be “Firestorm-MyBuild”.
The first time you configure, several additional files will be downloaded from Firestorm and Second Life sources. These are mostly binary packages maintained outisde the viewer development itself. And if you use the –clean switch, you will re-download them all.
Compiling the Viewer
autobuild build -A 64 -c ReleaseFS_open
Now, sit back, read War and Peace, calculate PI to 50 places, tour the country, whatever you desire. Compiling can take quite a bit of time depending on your computer's processing power.
NOTE: It is possible to use autobuild to do both the configure step (only needed once) and the build step with one command (autobuild build -A 64 -c ReleaseFS_open – –clean [more switches]). For clarity, they are mentioned separately.
Copy Out Of The Guest
If you build the viewer using a virtual machine (guest), you may want to copy the viewer files over to your host or to a different machine in order to use the viewer. Your guest may not have sufficient resources to run the viewer. The rsync program can make copying easy and accurate. And if you build the viewer again, the options included in the command example will cause rsync to only copy the new files, cutting down on the time needed to copy.
rsync -rptgoDLK --update --progress $HOME/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/* /path/to/host/machine
Again, we will assume that you have already made that destination accessible and writable by the guest.
Running your newly built viewer
Running from a menu item
Create the desktop launcher
cd ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/etc ./refresh_desktop_app_entry.sh
Then open your applications menu and look in the Internet or Network branch for the Firestorm launcher.
Running from command line or file browser
cd ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged ./firestorm
"Installing" the viewer
You can copy or move the contents of ~/src/phoenix-firestorm-lgpl/build-linux-i686/newview/packaged to another location if you choose, and then launch firestorm from there. Example:
mkdir ~/Firestorm cp -a ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/* ~/Firestorm cd ~/Firestorm ./firestorm # or etc/refresh_desktop_app_entry.sh to create a desktop launcher
Troubleshooting
Handling problems
If you encounter errors or run into problems, please first double check that you followed the steps correctly. One typo can break it. Then, check whether someone else already had the same issue. A solution might be known already.
- IRC: The #phoenixviewer-dev channel is the best place to look for solutions.
A lot of self-compilers and project developers hang out there and are ready to help you.
- Jira:JIRA may contain resolved tickets.
Search using the error you encountered.
- Included documentation: In the Firestorm root folder are several “README” documents. You should make yourself familiar with their content, even if they appear to be out of date.
If you found a procedural error in this document, please let us know in as much detail as you can, either contact the team (preferred) or discuss on IRC.
Common Issues/Bugs/Glitches And Solutions
- Missing libraries/applications/packages This may occur if you did not or could not install the listed packages. The packages do exist in the default Ubuntu repositories, so make sure you did not disable those. If you find that a library or application is in a different package for your system, contact the team with the name of the library or application, the name of its package and your Linux OS so that information can be checked and added here.
- Delayed sounds Some users have noted that OpenAL plays sounds from the viewer up to 20 seconds after they are triggered. There is no solution to this via the viewer, but there may be some solutions on the Internet
- No Sounds The viewer will try to use whatever sound service you have running, but might need a little coaxing. Read through the firestorm script inside the program folder, you will find various commended options. Uncommenting one or more may help restore sound.
- Voice Won't Connect It was observed in testing that voice would not connect unless “No Device” was chosen for the Input device (Preferences ⇒ Sound & Media ⇒ Voice ⇒ Audio Device Settings). This was resolved by replacing Firestorm/lib/libvivoxal.so.1 with a copy from release.
- Voice Won't Connect pt 2 The current version of the voice files may not function correctly in the Linux viewer, in which case you will see the red indicator on the Nearby Chat tab, and you may or may not get an error message. This is a known issue and is being addressed. Hopefully we can soon remove this as an issue. The workaround is to copy the win32 folder from our Release viewer's bin folder and paste it into your build's bin folder.
fs_compiling_firestorm_alexivy_ubuntu_18 - created
This page is very experimental. Don't rely on it unless you want to do a lot of pioneering yourself.
Building Firestorm 5.1 in 64-bit Ubuntu 18.04
This procedure is used for building a 64-bit version of Firestorm 5.1 on 64-bit Ubuntu systems. It was tested and verified on Ubuntu 18.04. This procedure assumes that your system has been properly updated.
This procedure will not work on older versions of Ubuntu, and has not been tested on any other version of Ubuntu or any other distribution/variant/derivative.
The build process requires at least 4GB RAM with swap, a modern dual-core CPU and 32GB available HDD space. Recommended 8GB or more RAM, quad-core CPU and 32GB available HDD space.
Establish your programming environment
This is needed for compiling any viewer based on the LL open source code and only needs to be done once.
Install Required Tools
The required tools, some of which may already be installed, are:
bison | bzip2 | cmake | curl | doxygen | flex | g++-6 | gdb | m4 (for make) |
mercurial (for hg) | moreutils (for additional build tools | pkg-config | python | python-dev | python-pip |
sudo apt upgrade # to make sure all installed packages are current sudo apt install --install-recommends bison bzip2 cmake curl doxygen flex g++-6 gdb m4 mercurial moreutils pkg-config \ python python-dev python-pip
(the –install-recommends flag tells apt-get to install all packages recommended by each named package.)
The build environment needs to know to use gcc 6
update-alternatives --remove-all gcc update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 6 \ --slave /usr/bin/g++ g++ /usr/bin/g++-6 \ --slave /usr/bin/gcov gcov /usr/bin/gcov-6 update-alternatives --config gcc
Note that this will “hide” the current gcc (v7) from the build environment, so you will want to add it as an alternative, then use the “update-alternatives –config gcc” command to switch versions as needed.
Install Optional Tools
If you build in a virtual machine (guest), you probably don't want to run the viewer from there, but rather from the host, or a different machine altogether. To simplify the process of sending the viewer oustide the guest, you will need rsync. Rsync will copy only the changed files, dramatically speeding up subsequent processes, and it will properly handle symbolic links.
Note that this procedure assumes you have correctly configured your guest and host, and that the destination path is accessible and writable from the guest.
sudo apt install --install-recommends rsync
Install Required Libraries
Firestorm 5.1, like Linden Lab's AlexIvy release, is built with the USESYSTEMLIBS flag set so that the libraries are installed on the user's system as needed and not shipped with - or maintained by - the viewer. This means that a large number of development libraries must be installed on the build system.
These libraries should all be available in the standard Debian repositories, and some may already be installed:
libalut-dev | libapr1-dev | libaprutil1-dev | libatk1.0-dev | libboost-all-dev | libcairo2-dev | libcollada-dom2.4-dp-dev | libcurl4-openssl-dev |
libdbus-glib-1-dev | libfreetype6-dev | libGL.so (libgl1-mesa-dev) | LibGLU.so (libglu1-mesa-dev) | libgtk2.0-dev | libjpeg-dev | ||
libjsoncpp-dev | libnghttp2-dev } libogg-dev | libopenal-dev | libpangox-1.0-dev | libpng-dev | libsdl1.2-dev | libssl-dev | |
libstdc++.so.6 (libstdc++6) | liburiparser-dev | libvorbis-dev | libX11.so (libx11-dev) | libxinerama-dev | |||
libxml2.so (libxml2-dev) | libxmlrpc-epi-dev | libXrender.so (libxrender-dev) | zlib1g-dev |
sudo apt install --install-recommends libalut-dev libapr1-dev libaprutil1-dev libatk1.0-dev libboost-all-dev libcairo2-dev \ libcollada-dom2.4-dp-dev libcurl4-openssl-dev libdbus-glib-1-dev libfreetype6-dev libgl1-mesa-dev \ libglu1-mesa-dev libgtk2.0-dev libjpeg-dev libjsoncpp-dev libnghttp2-dev libogg-dev libopenal-dev \ libpangox-1.0-dev libpng-dev libsdl1.2-dev libssl-dev libstdc++6 liburiparser-dev libvorbis-dev libx11-dev \ libxinerama-dev libxml2-dev libxmlrpc-epi-dev libxrender-dev zlib1g-dev
Install Autobuild
Autobuild is a Linden Lab resource that does all the hard work. Firestorm 5.1 uses a stock, unmodified version of autobuild from Linden Lab, version 1.1 or above.
sudo pip install --upgrade pip sudo pip install autobuild
This will install autobuild and add a link in the exec path.
Set up your source code tree
Plan your directory structure ahead of time. If you are going to be producing changes or patches you may be cloning a copy of an unaltered source code tree for every change or patch you make, so you might want to have all this work stored in its own directory on its own hard drive, or on a hard drive with lots of free space. Currently, the source code tree takes up over 1GB initially, 3GB after configuring and several times that after building the viewer. If you are a casual compiler and won't be producing any changes, you can use one directory. For this document, I will assume ~/src.
cd ~/src
There are several repositories but the one we are after is the lgpl (release) repository. You can grab all the sources if you wish, but keep in mind that each requires over 1GB initially.
hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl
This will create a folder called phoenix-firestorm-lgpl and add all the source files. If you desire, you can choose a different folder name by adding the name to the end of the command:
hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl firestorm-source
The rest of this document will assume the default directory, phoenix-firestorm-lgpl
This can take a bit, it's a rather large download. On a slow network, it may fail, and this script can help mitigate the issue:
- pull_in_chunks.sh
#!/bin/bash cd ~/src hg clone -r 10000 http://hg.phoenixviewer.com/phoenix-firestorm-lgpl cd phoenix-firestorm-lgpl for i in {15000..50000..5000} do echo "Grabbing to change $i" hg pull -u -r $i done echo "Grabbing to tip" hg pull -u cd ~/src
Set up autobuild build variables
Autobuild 1.1 uses a separate file to control compiler options, switches, and the like for different configurations. Ansariel Hiller maintains a Firestorm-specific version of this file and an associated convenience script. You will want to put this near your source code tree. The rest of these instructions will assume you put it in the source tree at the same level as your main source repository, using the default name.
cd ~src hg clone https://bitbucket.org/Ansariel/fs-build-variables
Preparing to configure and build
Autobuild 1.1 uses a series of environment variables to control the build process. The fs-build-variables reposirory includes a convenience script to set them. You will need to perform this step in any new shell window that you are going to run autobuild in.
cd ~/src/phoenix-firestorm-lgpl source ../fs-build-variables/convenience Release export AUTOBUILD_VARIABLES_FILE=$HOME/src/fs-build-variables/variables
Configuring the Viewer
Unlike previous versions of autobuild, version 1.1 requires the address size switch (-A) after the command, not before it. If you want a 32-bit build, you must specify that; there is no longer a default.
cd ~/src/phoenix-firestorm-lgpl autobuild configure -A 64 -c ReleaseFS_open
This will set up to compile with all defaults and without non-default libraries. It will fetch any additional necessary libraries.
Configuration Switches
There are a number of switches you can use to modify the configuration process. The name of each switch is followed by its type and then by the value you want to set.
- LL_TESTS (bool) controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or
more of them. - clean will cause autobuild to remove any previously compiled objects and fetched packages. It can be useful if you need to force a reload of all packages
- package will result in a bzip2 archive of the completed viewer. Enabled by default, you would have to use -DPACKAGE:BOOL=Off to disable it
- chan will set a unique channel (and the name) for the viewer, appending whatever is defined to “Firestorm-”. By default, the channel is “private” followed by your computer's name.
TIP: OFF and NO are the same as FALSE; anything else is considered to be TRUE
Examples:
autobuild configure -A 64 -c ReleaseFS_open -- -DLL_TESTS:BOOL=FALSE autobuild configure -A 64 -c ReleaseFS_open -- --clean autobuild configure -A 64 -c ReleaseFS_open -- --chan="MyBuild"
In the last example, the channel and resulting viewer name would be “Firestorm-MyBuild”.
The first time you configure, several additional files will be downloaded from Firestorm and Second Life sources. These are mostly binary packages maintained outisde the viewer development itself. And if you use the –clean switch, you will re-download them all.
Compiling the Viewer
autobuild build -A 64 -c ReleaseFS_open
Now, sit back, read War and Peace, calculate PI to 50 places, tour the country, whatever you desire. Compiling can take quite a bit of time depending on your computer's processing power.
NOTE: It is possible to use autobuild to do both the configure step (only needed once) and the build step with one command (autobuild build -A 64 -c ReleaseFS_open – –clean [more switches]). For clarity, they are mentioned separately.
Copy Out Of The Guest
If you build the viewer using a virtual machine (guest), you may want to copy the viewer files over to your host or to a different machine in order to use the viewer. Your guest may not have sufficient resources to run the viewer. The rsync program can make copying easy and accurate. And if you build the viewer again, the options included in the command example will cause rsync to only copy the new files, cutting down on the time needed to copy.
rsync -rptgoDLK --update --progress $HOME/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/* /path/to/host/machine
Again, we will assume that you have already made that destination accessible and writable by the guest.
Running your newly built viewer
Running from a menu item
Create the desktop launcher
cd ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/etc ./refresh_desktop_app_entry.sh
Then open your applications menu and look in the Internet or Network branch for the Firestorm launcher.
Running from command line or file browser
cd ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged ./firestorm
"Installing" the viewer
You can copy or move the contents of ~/src/phoenix-firestorm-lgpl/build-linux-i686/newview/packaged to another location if you choose, and then launch firestorm from there. Example:
mkdir ~/Firestorm cp -a ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/* ~/Firestorm cd ~/Firestorm ./firestorm # or etc/refresh_desktop_app_entry.sh to create a desktop launcher
Troubleshooting
Handling problems
If you encounter errors or run into problems, please first double check that you followed the steps correctly. One typo can break it. Then, check whether someone else already had the same issue. A solution might be known already.
- IRC: The #phoenixviewer-dev channel is the best place to look for solutions.
A lot of self-compilers and project developers hang out there and are ready to help you.
- Jira:JIRA may contain resolved tickets.
Search using the error you encountered.
- Included documentation: In the Firestorm root folder are several “README” documents. You should make yourself familiar with their content, even if they appear to be out of date.
If you found a procedural error in this document, please let us know in as much detail as you can, either contact the team (preferred) or discuss on IRC.
Common Issues/Bugs/Glitches And Solutions
- Missing libraries/applications/packages This may occur if you did not or could not install the listed packages. The packages do exist in the default Ubuntu repositories, so make sure you did not disable those. If you find that a library or application is in a different package for your system, contact the team with the name of the library or application, the name of its package and your Linux OS so that information can be checked and added here.
- Delayed sounds Some users have noted that OpenAL plays sounds from the viewer up to 20 seconds after they are triggered. There is no solution to this via the viewer, but there may be some solutions on the Internet
- No Sounds The viewer will try to use whatever sound service you have running, but might need a little coaxing. Read through the firestorm script inside the program folder, you will find various commended options. Uncommenting one or more may help restore sound.
- Voice Won't Connect It was observed in testing that voice would not connect unless “No Device” was chosen for the Input device (Preferences ⇒ Sound & Media ⇒ Voice ⇒ Audio Device Settings). This was resolved by replacing Firestorm/lib/libvivoxal.so.1 with a copy from release.
- Voice Won't Connect pt 2 The current version of the voice files may not function correctly in the Linux viewer, in which case you will see the red indicator on the Nearby Chat tab, and you may or may not get an error message. This is a known issue and is being addressed. Hopefully we can soon remove this as an issue. The workaround is to copy the win32 folder from our Release viewer's bin folder and paste it into your build's bin folder.
fs_compiling_firestorm
area_search_find_tab
Area Search: Find Tab
Use the fields in this tab to narrow the search down according to various attributes:
- Name
- Description
- Owner
- Group
- Creator
- Last Owner
Supply partial or full text in one or more of those fields to search on them. Click Search at the bottom to start the search - which will switch you back to the List tab. click Clear to clear all fields.
Once you have filled out the fields you are interested in, click Search to start searching, which switches you to the List tab.
The above is expected behavior, and not a bug.
Advanced Searching
It is also possible to use Regular expressions in these fields, by clicking the checkbox. Regular expressions are too complex to explain here, so please refer to:
Here are some examples to get you started: 1)
- Find anything beginning with “demo”
demo.*
- Find anything containing “demo” somewhere
.*demo.*
- Find anything containing “demo” somewhere, case-insensitive
(?i).*demo.*
- Find all lucky chairs and midnight mania's
(?i).*((lucky)|(midnight))+.*
area_search_filter_tab
Area Search: Filter Tab
This tab offers even more powerful selection criteria for narrowing down the types of objects to search for.
- List only objects that are: Allows you to restrict the search by certain object characteristics.
- Locked
- Physical
- Phantom
- Temporary
- Attachment
- Shared Media
- For Sale between… List only objects that are set for sale, and at a price between the two given values.
- Mouse click action: shows only objects that have specific actions set when left clicked:
- No action
- Any action (any of the ones below)
- Touch
- Sit
- Buy
- Pay
- Open
- Play
- Open media
- Zoom
- Distance between: Allows you to specify a range of distance; only objects within that range will be listed.
- Exclude objects that are: Don't list objects of this type (if any of these are enabled, the corresponding checkbox in List only objects that are above will be greyed out).
- Attachment
- Physical
- Temporary
- Child Prim
- Neighboring Regions
Once you have selected your search criteria, click Apply to begin searching.
area_search_options_tab
fs_area_search
Area Search: List Tab
The Area Search window may be opened from the top menu bar, World → Area Search.
It allows you to search for objects in the region. It is extremely flexible, and allows you not just to visually locate objects, but also to interact with them at a distance.
When you open the Area Search window, you start with the list view, as yet unpopulated. To do a full scan of all objects right away, click the Refresh button at the bottom of the window. Otherwise, you may first narrow your search criteria on the other tabs. These are described below.
If you want, you can filter out specific categories of objects; refer to Filter Tab for more on this.
Once you have a list of objects displayed, you can right click any one for a menu, which allows “long distance” interaction with the selected object:
- Script Info: Shows current script information for the object; same asif you right-clicked it and select Script Info from the menu.
- Touch: Simulates a left click on the object, a “touch”.
- Teleport To: As it suggests, you are teleported to the selected object.
- Inspect: Brings up the Inspect window for the object, showing object details.
- Edit: Edits the selected object.
- Return: Returns the object to its owner.
- Delete: Deletes the objects
- Blacklist: Adds the object to the Asset Blacklist - ie, it derenders it.
- Buy Object: allows you to buy the object - assuming it is for sale.
At the lower right of the window is Show Beacons; this displays a crosshair beacon on all of the objects in the list. Useful mainly if you first narrowed your search criteria.
The above is expected behavior, and not a bug.
fs_compiling_firestorm_alexivy_ubuntu_16 - old revision restored (2018/05/28 19:20)
This page is very experimental. Don't rely on it unless you want to do a lot of pioneering yourself.
Building Firestorm 5.1 in 64-bit Ubuntu 16.04
This procedure is used for building a 64-bit version of Firestorm 5.1 on 64-bit Ubuntu systems. It was tested and verified on Ubuntu 16.04. This procedure assumes that your system has been properly updated.
This procedure will not work on other versions of Ubuntu, and has not been tested on any other version of Ubuntu or any other distribution/variant/derivative.
The build process requires at least 4GB RAM with swap, a modern dual-core CPU and 32GB available HDD space. Recommended 8GB or more RAM, quad-core CPU and 32GB available HDD space.
Establish your programming environment
This is needed for compiling any viewer based on the LL open source code and only needs to be done once.
Add The Toolchain Updates Repository
This repository is needed so that gcc version 6 can be installed.
sudo add-apt-repository "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main" sudo apt update
Install Required Tools
The required tools, some of which may already be installed, are:
bison | bzip2 | cmake | curl | doxygen | flex | g++-6 | gdb | m4 (for make) |
mercurial (for hg) | moreutils (for additional build tools | pkg-config | python | python-dev | python-pip |
sudo apt upgrade # to make sure all installed packages are current sudo apt install --install-recommends bison bzip2 cmake curl doxygen flex g++-6 gdb m4 mercurial moreutils pkg-config \ python python-dev python-pip
(the –install-recommends flag tells apt-get to install all packages recommended by each named package.)
The build environment needs to know to use gcc 6
update-alternatives --remove-all gcc update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 6 \ --slave /usr/bin/g++ g++ /usr/bin/g++-6 \ --slave /usr/bin/gcov gcov /usr/bin/gcov-6 update-alternatives --config gcc
Note that this will “hide” the current gcc (v7) from the build environment, so you will want to add it as an alternative, then use the “update-alternatives –config gcc” command to switch versions as needed.
Install Optional Tools
If you build in a virtual machine (guest), you probably don't want to run the viewer from there, but rather from the host, or a different machine altogether. To simplify the process of sending the viewer oustide the guest, you will need rsync. Rsync will copy only the changed files, dramatically speeding up subsequent processes, and it will properly handle symbolic links.
Note that this procedure assumes you have correctly configured your guest and host, and that the destination path is accessible and writable from the guest.
sudo apt install --install-recommends rsync
Install Required Libraries
Firestorm 5.1, like Linden Lab's AlexIvy release, is built with the USESYSTEMLIBS flag set so that the libraries are installed on the user's system as needed and not shipped with - or maintained by - the viewer. This means that a large number of development libraries must be installed on the build system.
These libraries should all be available in the standard Debian repositories, and some may already be installed:
libalut-dev | libapr1-dev | libaprutil1-dev | libatk1.0-dev | libboost-all-dev | libcairo2-dev | libcollada-dom2.4-dp-dev | libcurl4-openssl-dev |
libdbus-glib-1-dev | libfreetype6-dev | libGL.so (libgl1-mesa-dev) | LibGLU.so (libglu1-mesa-dev) | libgtk2.0-dev | libjpeg-dev | ||
libjsoncpp-dev | libnghttp2-dev } libogg-dev | libopenal-dev | libpangox-1.0-dev | libpng-dev | libsdl1.2-dev | libssl-dev | |
libstdc++.so.6 (libstdc++6) | liburiparser-dev | libvorbis-dev | libX11.so (libx11-dev) | libxinerama-dev | |||
libxml2.so (libxml2-dev) | libxmlrpc-epi-dev | libXrender.so (libxrender-dev) | zlib1g-dev |
sudo apt install --install-recommends libalut-dev libapr1-dev libaprutil1-dev libatk1.0-dev libboost-all-dev libcairo2-dev \ libcollada-dom2.4-dp-dev libcurl4-openssl-dev libdbus-glib-1-dev libfreetype6-dev libgl1-mesa-dev \ libglu1-mesa-dev libgtk2.0-dev libjpeg-dev libjsoncpp-dev libnghttp2-dev libogg-dev libopenal-dev \ libpangox-1.0-dev libpng-dev libsdl1.2-dev libssl-dev libstdc++6 liburiparser-dev libvorbis-dev libx11-dev \ libxinerama-dev libxml2-dev libxmlrpc-epi-dev libxrender-dev zlib1g-dev
Install Autobuild
Autobuild is a Linden Lab resource that does all the hard work. Firestorm 5.1 uses a stock, unmodified version of autobuild from Linden Lab, version 1.1 or above.
sudo pip install --upgrade pip sudo pip install autobuild
This will install autobuild and add a link in the exec path.
Set up your source code tree
Plan your directory structure ahead of time. If you are going to be producing changes or patches you may be cloning a copy of an unaltered source code tree for every change or patch you make, so you might want to have all this work stored in its own directory on its own hard drive, or on a hard drive with lots of free space. Currently, the source code tree takes up over 1GB initially, 3GB after configuring and several times that after building the viewer. If you are a casual compiler and won't be producing any changes, you can use one directory. For this document, I will assume ~/src.
cd ~/src
There are several repositories but the one we are after is the lgpl (release) repository. You can grab all the sources if you wish, but keep in mind that each requires over 1GB initially.
hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl
This will create a folder called phoenix-firestorm-lgpl and add all the source files. If you desire, you can choose a different folder name by adding the name to the end of the command:
hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl firestorm-source
The rest of this document will assume the default directory, phoenix-firestorm-lgpl
This can take a bit, it's a rather large download. On a slow network, it may fail, and this script can help mitigate the issue:
- pull_in_chunks.sh
#!/bin/bash cd ~/src hg clone -r 10000 http://hg.phoenixviewer.com/phoenix-firestorm-lgpl cd phoenix-firestorm-lgpl for i in {15000..50000..5000} do echo "Grabbing to change $i" hg pull -u -r $i done echo "Grabbing to tip" hg pull -u cd ~/src
Set up autobuild build variables
Autobuild 1.1 uses a separate file to control compiler options, switches, and the like for different configurations. Ansariel Hiller maintains a Firestorm-specific version of this file and an associated convenience script. You will want to put this near your source code tree. The rest of these instructions will assume you put it in the source tree at the same level as your main source repository, using the default name.
cd ~src hg clone https://bitbucket.org/Ansariel/fs-build-variables
Preparing to configure and build
Autobuild 1.1 uses a series of environment variables to control the build process. The fs-build-variables reposirory includes a convenience script to set them. You will need to perform this step in any new shell window that you are going to run autobuild in.
cd ~/src/phoenix-firestorm-lgpl source ../fs-build-variables/convenience Release export AUTOBUILD_VARIABLES_FILE=$HOME/src/fs-build-variables/variables
Configuring the Viewer
Unlike previous versions of autobuild, version 1.1 requires the address size switch (-A) after the command, not before it. If you want a 32-bit build, you must specify that; there is no longer a default.
cd ~/src/phoenix-firestorm-lgpl autobuild configure -A 64 -c ReleaseFS_open
This will set up to compile with all defaults and without non-default libraries. It will fetch any additional necessary libraries.
Configuration Switches
There are a number of switches you can use to modify the configuration process. The name of each switch is followed by its type and then by the value you want to set.
- LL_TESTS (bool) controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or
more of them. - clean will cause autobuild to remove any previously compiled objects and fetched packages. It can be useful if you need to force a reload of all packages
- package will result in a bzip2 archive of the completed viewer. Enabled by default, you would have to use -DPACKAGE:BOOL=Off to disable it
- chan will set a unique channel (and the name) for the viewer, appending whatever is defined to “Firestorm-”. By default, the channel is “private” followed by your computer's name.
TIP: OFF and NO are the same as FALSE; anything else is considered to be TRUE
Examples:
autobuild configure -A 64 -c ReleaseFS_open -- -DLL_TESTS:BOOL=FALSE autobuild configure -A 64 -c ReleaseFS_open -- --clean autobuild configure -A 64 -c ReleaseFS_open -- --chan="MyBuild"
In the last example, the channel and resulting viewer name would be “Firestorm-MyBuild”.
The first time you configure, several additional files will be downloaded from Firestorm and Second Life sources. These are mostly binary packages maintained outisde the viewer development itself. And if you use the –clean switch, you will re-download them all.
Compiling the Viewer
autobuild build -A 64 -c ReleaseFS_open
Now, sit back, read War and Peace, calculate PI to 50 places, tour the country, whatever you desire. Compiling can take quite a bit of time depending on your computer's processing power.
NOTE: It is possible to use autobuild to do both the configure step (only needed once) and the build step with one command (autobuild build -A 64 -c ReleaseFS_open – –clean [more switches]). For clarity, they are mentioned separately.
Copy Out Of The Guest
If you build the viewer using a virtual machine (guest), you may want to copy the viewer files over to your host or to a different machine in order to use the viewer. Your guest may not have sufficient resources to run the viewer. The rsync program can make copying easy and accurate. And if you build the viewer again, the options included in the command example will cause rsync to only copy the new files, cutting down on the time needed to copy.
rsync -rptgoDLK --update --progress $HOME/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/* /path/to/host/machine
Again, we will assume that you have already made that destination accessible and writable by the guest.
Running your newly built viewer
Running from a menu item
Create the desktop launcher
cd ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/etc ./refresh_desktop_app_entry.sh
Then open your applications menu and look in the Internet or Network branch for the Firestorm launcher.
Running from command line or file browser
cd ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged ./firestorm
"Installing" the viewer
You can copy or move the contents of ~/src/phoenix-firestorm-lgpl/build-linux-i686/newview/packaged to another location if you choose, and then launch firestorm from there. Example:
mkdir ~/Firestorm cp -a ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/* ~/Firestorm cd ~/Firestorm ./firestorm # or etc/refresh_desktop_app_entry.sh to create a desktop launcher
Troubleshooting
Handling problems
If you encounter errors or run into problems, please first double check that you followed the steps correctly. One typo can break it. Then, check whether someone else already had the same issue. A solution might be known already.
- IRC: The #phoenixviewer-dev channel is the best place to look for solutions.
A lot of self-compilers and project developers hang out there and are ready to help you.
- Jira:JIRA may contain resolved tickets.
Search using the error you encountered.
- Included documentation: In the Firestorm root folder are several “README” documents. You should make yourself familiar with their content, even if they appear to be out of date.
If you found a procedural error in this document, please let us know in as much detail as you can, either contact the team (preferred) or discuss on IRC.
Common Issues/Bugs/Glitches And Solutions
- Missing libraries/applications/packages This may occur if you did not or could not install the listed packages. The packages do exist in the default Ubuntu repositories, so make sure you did not disable those. If you find that a library or application is in a different package for your system, contact the team with the name of the library or application, the name of its package and your Linux OS so that information can be checked and added here.
- Delayed sounds Some users have noted that OpenAL plays sounds from the viewer up to 20 seconds after they are triggered. There is no solution to this via the viewer, but there may be some solutions on the Internet
- No Sounds The viewer will try to use whatever sound service you have running, but might need a little coaxing. Read through the firestorm script inside the program folder, you will find various commended options. Uncommenting one or more may help restore sound.
- Voice Won't Connect It was observed in testing that voice would not connect unless “No Device” was chosen for the Input device (Preferences ⇒ Sound & Media ⇒ Voice ⇒ Audio Device Settings). This was resolved by replacing Firestorm/lib/libvivoxal.so.1 with a copy from release.
- Voice Won't Connect pt 2 The current version of the voice files may not function correctly in the Linux viewer, in which case you will see the red indicator on the Nearby Chat tab, and you may or may not get an error message. This is a known issue and is being addressed. Hopefully we can soon remove this as an issue. The workaround is to copy the win32 folder from our Release viewer's bin folder and paste it into your build's bin folder.
fs_compiling_firestorm_windows
Firestorm Windows Builds
This page describes all necessary steps to build the Firestorm viewer for Windows, using the updated build infrastructure introduced with Linden Lab's project Alex Ivy.
Install required development tools
This is needed for compiling any viewer based on the Linden Lab open source code and only needs to be done once.
All installations are done with default settings (unless told explicitly) - if you change that, you're on your own!
Windows
- Install Windows 10 Pro 64bit using your own product key
- Alternatively: Install Windows 7 or 8.1 Pro 64bit
Microsoft Visual Studio 2013 Professional
- Install Visual Studio 2013 Professional
- Note: If you don't own a copy of Visual Studio 2013 Professional, you might consider installing the Community version (requires creating a Microsoft account if you do not already have one ) (If the download link for 2013 on visualstudio.com leads to a dead page even after logging in and out and back in again, try Googling “Visual Studio 2013 Community update 5 download” for a direct link. MS has recently changed things with accounts and the free subscriptions.)
- Run the installer as Administrator (right click, “Run as administrator”)
- Uncheck all the “Optional features to install:” - they are not required
DirectX SDK
- Download and install DirectX SDK (June 2010)
- Run the installer as Administrator (right click, “Run as administrator”)
- At the Installation Options screen, set everything except the DirectX Headers and Libs to “This feature will not be installed”
Tortoise Hg
- Download and install TortoiseHg 3.2.3 or newer (64bit)
- Note: No option available to install as Administrator
- Use default options (path, components etc.)
- Add the following directory to your path:
C:\Program Files\TortoiseHG
CMake
- Download and install at least CMake 3.4.3 (32bit is only option)
- Run the installer as Administrator (right click, “Run as administrator”)
- At the “Install options” screen, select “Add CMake to the system PATH for all users”
- For everything else, use the default options (path, etc.)
- Make sure that the following directory was added to your path:
C:\Program Files (x86)\CMake\bin
Cygwin
- Download and install Cygwin 64 (64bit)
- Run the installer as Administrator (right click, “Run as administrator”)
- Use default options (path, components etc.) *until* you get to the “Select Packages” screen
- Add additional packages:
- Devel/patch
- Use default options for everything else
- Make sure that the following directory was added to your path.:
C:\Cygwin64\bin
Python
- Download and install the most recent version of Python 2.7 (32bit)
- Linden Lab advises to use the 32bit version as the VMP requires it. However, Firestorm currently doesn't use VMP, so the 64bit version might work (use at own risk!)
- Note: No option available to install as Administrator
- Use default options (path, components etc.) until you get to the “Customize Python” screen
- Change “Add python.exe to Path” to “Will be installed on local hard drive”
- Add the Python installation dir to the system path:
C:\Python27
Intermediate check
Confirm things are installed properly so far by opening a Cygwin terminal and enter:
cmake --version hg --version python --version
If they all report sensible values and not “Command not found” errors, then you are in good shape.
Set up Autobuild and Python
- Install Boostrip pip
- Download (Save As) get-pip.py and copy to a temp folder
- Open Windows Command Prompt
- Switch to that temp folder and execute it:
python get-pip.py
- Pip will be installed
- Add the following directory to your path:
C:\Python27\Scripts
- Install Autobuild
- Open Windows Command Prompt and enter:
pip install hg+https://bitbucket.org/lindenlab/autobuild-1.1#egg=autobuild
- Autobuild will be installed. Earlier versions of Autobuild could be made to work by just putting the source files into your path correctly; this is no longer true - Autobuild must be installed as described here.
- Set environment variable AUTOBUILD_VSVER to 120
- Check Autobuild version to be 1.1.7 or higher:
autobuild --version
NSIS (Unicode)
- You must install the Unicode version here and not the one from the NSIS page
- Not required unless you need to build an actual viewer installer for distribution, or change the NSIS installer package logic itself
Setup viewer build variables
In order to make it easier to build collections of related packages (such as the viewer and all the library packages that it imports) with the same compilation options, Autobuild expects a file of variable definitions. This can be set using the environmenat variable AUTOBUILD_VARIABLES_FILE.
- Clone the build variables repository:
hg clone https://hg.phoenixviewer.com/fs-build-variables <path-to-your-variables-file>
- Set the environment variable AUTOBUILD_VARIABLES_FILE to
<path-to-your-variables-file>\variables
Configure Visual Studio 2013 (optional)
- Start the IDE
- Navigate to Tools> Options> Projects and Solutions> Build and Run and set maximum number of parallel projects builds to 1.
Set up your source code tree
Plan your directory structure ahead of time. If you are going to be producing changes or patches you will be cloning a copy of an unaltered source code tree for every change or patch you make, so you might want to have all this work stored in its own directory. If you are a casual compiler and won't be producing any changes, you can use one directory. For this document, it is assumed that you created a folder c:\firestorm.
c: cd \firestorm hg clone https://hg.phoenixviewer.com/phoenix-firestorm-lgpl
This can take a bit, it's a rather large download.
Prepare third party libraries
Most third party libraries needed to build the viewer will be automatically downloaded for you and installed into the build directory within your source tree during compilation. Some need to be manually prepared and are not normally required when using an open source configuration (ReleaseFS_open).
FMOD Studio using Autobuild
If you want to use FMOD Studio to play sounds within the viewer, you will have to download your own copy. FMOD Studio can be downloaded here (requires creating an account to access the download section).
c: cd \firestorm hg clone https://bitbucket.org/Ansariel/3p-fmodstudio
- After you have cloned the repository, copy the downloaded FMOD Studio installer file to C:\Firestorm
- If you downloaded a different version of FMOD Studio that is currently used in the viewer, you will have to modify the file build-cmd.sh in the root of the repository. Right at the top, you find the version number of FMOD Studio you want to package (one short version without separator and one long version). Change these values to the version you downloaded:
FMOD_VERSION="11005" FMOD_VERSION_PRETTY="1.10.05"
Continue on the Windows command line:
c: cd \firestorm\3p-fmodstudio autobuild build --all autobuild package
While running the Autobuild build command, Windows might ask if you want to allow making changes to the computer. This is because of the FMOD Studio installer being executed. Allow these changes to be made.
Near the end of the output you will see the package name written and the md5 hash below it:
wrote C:\firestorm\3p-fmodstudio\fmodstudio-{version#}-windows-{build_id}.tar.bz2
md5 c3f696412ef74f1559c6d023efe3a087
where {version#} is the version of FMOD Studio (like 1.10.02) and {build_id} is an internal build id of the package.
cd \firestorm\phoenix-firestorm-lgpl cp autobuild.xml my_autobuild.xml set AUTOBUILD_CONFIG_FILE=my_autobuild.xml
Copy the FMOD Studio path and md5 value from the package process into this command:
autobuild installables edit fmodstudio platform=windows hash=<md5 value> url=file:///<fmodstudio path>
For example:
autobuild installables edit fmodstudio platform=windows hash=c3f696412ef74f1559c6d023efe3a087 url=file:///C:\firestorm\3p-fmodstudio\fmodstudio-1.10.02-windows-180191431.tar.bz2
Configuring the viewer
Open the Windows command prompt.
If you are building with FMOD Studio and have followed the previous FMOD Studio setup instructions AND you are now using a new terminal you will need to reset the environment variable first by entering
set AUTOBUILD_CONFIG_FILE=my_autobuild.xml
Then enter:
c: cd \firestorm\phoenix-firestorm-lgpl autobuild configure -c ReleaseFS_open
This will configure Firestorm to be built with all defaults and without third party libraries.
autobuild configure -v -c ReleaseFS_open
Configuration switches
There are a number of switches you can use to modify the configuration process. The name of each switch is followed by its type and then by the value you want to set.
- -A <architecture> sets the target architecture, that is if you want to build a 32bit or 64bit viewer (32bit is default if omitted).
- –fmodstudio controls if the FMOD Studio package is incorporated into the viewer. You must have performed the FMOD Studio installation steps in FMOD Studio using Autobuild for this to work.
- –package makes sure all files are copied into viewers output directory. You won't be able to start your compiled viewer if you don't enable package or do 'compile' it in VS.
- –chan <channel name> lets you define a custom channel name for the viewer
- -LL_TESTS:BOOL=<bool> controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or
more of them.
Examples:
- To build a 32bit viewer with FMOD Studio and to create an installer package, run this command in the Windows command window:
autobuild configure -c ReleaseFS_open -- --fmodstudio --package --chan MyViewer -DLL_TESTS:BOOL=FALSE
- To build a 64bit viewer without FMOD Studio and without installer package, run this command:
autobuild configure -A 64 -c ReleaseFS_open -- --chan MyViewer -DLL_TESTS:BOOL=FALSE
Building the viewer
There are two ways to build the viewer: Via Windows command line or from within Visual Studio.
Building from the Windows command line
If you are building with FMOD Studio and have followed the previous FMOD Studio setup instructions AND you are now using a new terminal you will need to reset the environment variable with
set AUTOBUILD_CONFIG_FILE=my_autobuild.xml
Then run the Autobuild build command. Make sure you include the same architecture parameter you used while configuring the viewer:
autobuild build -A 64 -c ReleaseFS_open --no-configure
Now, sit back, read War and Peace, calculate PI to 50 places, tour the country, whatever you desire. Compiling will take quite a bit of time.
Building from within Visual Studio
Inside the Firestorm source folder, you will find a folder named build-vc120-<architecture>, with <architecture> either being 32 or 64, depending on what you chose during the configuration step. Inside the folder is the Visual Studio solution file for Firestorm, called Firestorm.sln.
- Double-click Firestorm.sln to open the Firestorm solution in Visual Studio.
- From the menu, choose Build → Build Solution
- Wait until the build is finished
Parallel building of pre Alex Ivy viewers
Older versions of the viewer before the merge of Linden Lab's project Alex Ivy use Autobuild 1.0 that is incompatible with the build process as it is now. By default it is not possible to install two different versions of Autobuild on the same computer at the same time. Making use of virtualenv will overcome this problem, allowing simultaneous installations of Autobuild 1.0 and Autobuild 1.1 in two distinct “virtual” Python environments.
Install virtualenv
Install virtualenv by opening a Windows command prompt and enter:
pip install virtualenv
This requires the Boostrip pip already installed. After virtualenv has been installed, you can create virtual Python environments using the command
virtualenv <virtual-environment-name>
This will create the directory <virtual-environment-name> within the Python installation folder and add some required folders and files. Among these files is a batch file called activate.bat in the folder Scripts. To switch to the newly created virtual environment execute the activate.bat batch file. After switching to the virtual environment, your command prompt will be prepended by the name of the virtual environment.
In this example we will create a virtual environment called “Autobuild11”:
virtualenv Autobuild11 c:\Python27\Autobuild11\Scripts\Activate.bat
Your command prompt should look like this now:
(Autobuild11) C:\
After you switched to a particular virtual environment, you can now install as described in Set up Autobuild and Python.
Complete example:
virtualenv Autobuild11 c:\Python27\Autobuild11\Scripts\Activate.bat pip install hg+https://bitbucket.org/lindenlab/autobuild-1.1#egg=autobuild
Configuring and building the viewer
Configuring and building the viewer from the Windows command line is basically identical as described in Building from the Windows command line with the difference that you now have to call the activate script first:
c: \Python27\Autobuild11\Scripts\Activate.bat cd \firestorm\phoenix-firestorm-lgpl autobuild configure -c ReleaseFS_open -- --fmodstudio --package --chan MyViewer -DLL_TESTS:BOOL=FALSE autobuild build -A 64 -c ReleaseFS_open --no-configure
If you plan to build the viewer from within Visual Studio, you will have to configure the viewer the same way as if you were to build from the Windows command line:
c: \Python27\Autobuild11\Scripts\Activate.bat cd \firestorm\phoenix-firestorm-lgpl autobuild configure -c ReleaseFS_open -- --fmodstudio --package --chan MyViewer -DLL_TESTS:BOOL=FALSE
To be able to build from Visual Studio, you will have to set a Windows environment variable called VIRTUAL_ENV pointing at the virtual Python environment to use, in our example “C:\Python27\Autobuild11”. Now open the Firestorm Visual Studio solution to start Visual Studio and build the viewer.
joystick - [SpaceNavigator]
Joystick Configuration
This window is accessed via Preferences→ Move & View -> Movement→ Joystick Configuration (button).
“Joystick” refers to compatible USB input devices, which can be used to control Second Life in exciting ways for exploration, moviemaking, and more. Examples are the 3Dconnexion SpaceNavigator, other joysticks, gamepads, and so on.
Assuming you have a 3D movement device installed and configured, Joystick Flycam mode is enabled by pressing Alft-Shift-F. This moves your camera, rather than your avatar.
This window is fairly technical, although the default settings generally work well with no or minimal changes. For details, see this SL Wiki page.
SpaceNavigator
One user, Xente Aeon, makes the following recommendations for the SpaceNavigator (in this JIRA):
- In the preferences of the SpaceNavigator, apply “reverse” on the button called “zoom” that actually controls the movement up and down.
- In the Joystick preferences, change some, like this:
- X Axis Mapping: 0
- Y Axis Mapping: 1
- Z Axis Mapping: 2
- Pitch Mapping: 3
- Yaw Mapping: 4
- Roll Mapping: 0
- Zoom Mapping: -1
- Leave unchecked: Direct 3D Zoom and Cursor, but check “Auto Level”
Refer to this page in the SL wiki for other info, including known issues.
Steelseries 3GC Controller
Logitech Gamepad
See the official SLLogitech Gamepad page.
linux
linux users do not need a 3dconnexion driver in order for the device to work in Firestorm. In fact, if you have a driver installed, it will conflict with the built-in support for the 3dconnexion device. So if you do not need the 3dconnexion device for anything else, uninstall the driver.
Alternately,you can stop it before running Firestorm. If you are using the free spacenavd driver, you can stop it by giving the following command in terminal:
sudo /etc/init.d/spacenavd stop
gw_feedback:start
Gateway Feedback
Pages in this namespace:
No pages in this namespace.
login_screen_layout
Firestorm Login Screen Layout
On the Top (menu) Bar
- Viewer and Help (shows by default)
- Ctrl-Alt-D - brings up the Debug menu
Viewer
- Exit Firestorm
Help
- Firestorm help (F1) - Opens the viewer wiki in your web browser
- About Firestorm - Shows a window with information about your system, viewer credits and licenses.
Debug
NOTE we do not recommend using this unless you know what you are doing.
- Show Debug Settings
- UI/Color Settings
- XUI Preview Tool (Ctrl-T)
- Set Window Size
- Show TOS
- Show Critical Message
- Web Browser Test
Bottom bar
- Username: Type in your full user name here.
- Password: Type in the password associated with the user name entered.
- Rememebr password: Enable this if you wish the viewer to store your password for the next time you log in.
- Log In: Click this button to start the log in process.
- Default Settings: (Viewer Mode) Please refer to this page for more information.
- Start at: Here you can select whether to log into your home location, your last location in-world, or a specific region (type in the name).
- Log onto Grid: (If you cannot see this field, press Shift-Ctrl-G) This allows you to select which grid you wish to log into. Grids may be configured via Preferences→ OpenSim tab.
panel_region_general_tab
Region Details - Region Tab
This tab gives access to options specific to the current region. (Estate-wide options are set in the Estate tab.)
The first lines give information about the region:
- Name: Shows the name of the region.
- Version: Shows the version of simulator software currently running the region.
- Type: Regions may be Mainland or Estate, and Full, Homestead, or Openspace. (For an overview of what regions and estates are, and the types of region, please refer to this SL Wiki page.)
- Estate ID: Indicates the region ID.
- Grid Position: Coordinates of the region in the SL grid.
Following this are a number of options. On the left:
- Block Terraform: If enabled, residents will be unable to terraform their parcels. This overrides anything that might be set in About Land→ Options. The estate owner and managers can always terraform, regardless of this setting.
- Block Fly: Disables flying for residents in the region. If someone enters from an adjacent region while flying, they will be able to fly until they land.
- Block Parcel Fly Over: Enabling this prevents people from flying over parcels.
- Allow Damage: Enables combat 1) on the region. Parcel owners may override this in About Land→ Options by disabling the Safe Option.
- Restrict Pushing: Disables Push scripts 2) in the region, to combat griefing.
- Allow Land Resell: Allows parcel owners to resell their land to others. Estate owners and managers can always resell parcels, regardless of this setting.
- Allow Land Join/Subdivide: When enabled, parcels owners may join/subdivide parcels they own; for group owned land, other group members might also be able to do so if their group role permits it.
- Block Land Show in Search: If enabled, this prohibits parcel owners from flagging their parcels to show in search in About Land→ Options.
- Agent Limit: Sets the maximum number of people allowed in the region. When the limit is reached, incoming teleports fail with a message explaining why. Vary the number according to need; normally this will be around 30-50.
- Object Bonus: Sets the Object Bonus 3) factor for the region.
- Rating: Sets the region's maturity rating. Be sure to set this with care so as to not violate the SLCommunity Standards.
- Teleport Home One Resident: Opens the Avatar Picker so that you can select someone to teleport out of the region. Used to remove people who are being disruptive. To prevent their return, add the person to the list of banned residents in the Estate Tab.
- Teleport Home All Residents: Sends all other people home.
- Send Message to Region: Send a notification to everyone on the region. Use sparingly, to give important information.
To the right is a button:
- Manage Telehub: Opens the Telehub window to control where people arrive when they teleport in. Telehubs are enabled in the Estate Tab, by disabling Direct Teleport.
hud_issues
HUD Issues
HUDs (Attachments) Are Not Working
Possible reasons why HUDs and/or scripted attachements may stop working:
- Disconnected during a teleport after restarting a region. See BUG-5034.
- Script (running) state is lost when logged out during forced teleport. See BUG-41379.
- There are griefing objects that can be rezzed on a region; anyone who goes there will have their HUDs and all other scripted attachments put into a non-running state. For instance: a HUD for a mesh body, and all the mesh body parts you are wearing, may be broken at the same time.
Note: While this issue most commonly affects HUDs, it can also affect any and all other scripted attachments you were wearing when the breakage happened.
There are a few things you can try to get the items working again.
First of all:
- Go to Top Menu → Avatar → Avatar Health → Refresh Attachments. See if that fixes the items.
- Relog then test the items again. That may be enough. If not, read on.
Things to try:
- Check for location issues:
- Make sure you are in a region that has scripts enabled.
- Go to other regions and test the items there. This will rule out technical problems with the original region.
- If you have RLV enabled, disable it (Preferences → Firestorm → Extras, top option), relog, then try again.
Stay in a script-enabled region to do all of the following:
- Attempt to get scripts running:
- Try removing and reattaching the items.
- If the items are modifiable, try resetting them or setting their scripts to running: Inventory, right-click the item → Edit, and while it is in Edit, go to Build menu → Scripts → Reset Scripts, or Build menu → Scripts→ Set Scripts to Running).
- Identify broken items:
- Try removing all the HUDs and other attachments and testing them one at a time: test each one, then remove it, then test another.
- If you have original copies of the items, try detaching the ones you are currently wearing and using a fresh copy from the original.
- If an item is no-mod and you can't get it to start running again, and you don't have another copy, you will need to request a new copy from the creator.
- Note: If the non-working HUDs are for your mesh body parts (or other scripted attachments), you probably will need to use fresh copies of the original HUDS and the body parts – every part, from scratch (not copies of the broken ones).
- Check for interference:
- Look in Inventory > Current Outfit folder, and see if you are wearing any HUDs you were not aware of. (Note: HUDS do not necessarily have “HUD” in the name.) This could include temporary “Experience” HUDS that you may not be aware were attached. (Temp HUDs have been known to freeze other HUDs on the same attachment point.)
- Check that HUDs are not overlapping each other on the screen (and so preventing you from clicking).
- Check for issues with attachment points:
- If any HUDs are sharing the same HUD attachment point, try moving them to separate HUD attachment points:
Inventory → Right-click → Detach from Yourself, then Inventory → Right-click → Attach to HUD, and choose an unused point. - Even if they are not sharing attachment points, try moving them to different attachment points.
- Test basic functionality:
- Rez a fresh cube
- Add the default script to it
- Take it into inventory
- Attach it to a HUD point
- Touch the HUD and see if there is script output in Local chat.
HUDs Not Showing
A HUD's orientation data (position and rotation) data is stored with the HUD when it's detached. It is relative to the attach point, not to the viewer. (Any attached object has its orientation data saved when it's detached) When you attach a HUD to a new attach point, the previous position data is applied relative to the new attach point and the rotation data is reset to zero, and this can cause the HUD to be out of position or rotated incorrectly. To fix a HUD's position:
- Attach the HUD to its original attach point
or - Edit the HUD (right click it in Inventory, choose Edit) and set the position data to zero and then adjust from there
or - Edit the HUD and then scroll down with the mouse wheel to zoom out the HUD Layer, represented by a white rectangle. Drag the HUD so that it's inside the rectangle, then zoom in and finish adjusting.
If the HUD can't be seen but its position is correct, you may have to adjust the rotation. Edit the HUD, then change the rotation values or drag the rotation rings.
logo.png - created
