Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Website Display

Sharven Raabe
Registered User
Join date: 6 Oct 2006
Posts: 15
08-22-2008 12:31
Hello,

I use precompiled binary viewers directly from Linden Labs to access second life. I never had the ability to display websites with this, so the "new" search wouldn't work and more and more ingame features utilizing direct website display. Never cared much about, since I thought that it was just not implemented yet.

However, I tested some SL versions that were made available from third parties and those had the website display working fine. (But other serious technical problems that made utilizing them problematic)

Now I wonder, what do I have to do to get it working on an Ubuntu Hardy Heron (64bit) system? I think what's wrong is this llMozLib library, isn't it? Is there a way to retrieve a precompiled package? Can one compile it for 64 bit systems and if not or not without major effort, how can I get my hands on a 32 bit version? Maybe I can compile it on my notebook computer, a 32 bit Hardy Heron (which is too slow for SL itsself)? And where would I have to put, or is it enough to have it in my LDLIBRARY path?

Searchless greetings
Sharven

PS: Think I found a lead in the Secondlife Wiki - ldd revealed some libs that are missing. I just skipped the section in the wiki so far since it is titled "if the viewer doesn't start". So as soon as I can reach packages.ubuntu.org again I should be able to get further (I'll try find a mirror for now)
Sharven Raabe
Registered User
Join date: 6 Oct 2006
Posts: 15
08-22-2008 14:17
I was missing the following libraries:
libmozjs.so, libnspr4.so libplc4.so libplds4.os libxul.so

They were all included in the packages libxul0d, libnspr4 and libmozjs0d. However, when I simply copy those under /usr/lib32 as explained in the secondlife wiki that changes nothing at all. If I copy all the files I need individuall from /usr/lib32/xulrunner/ then ldd doesn't complain anymore, but secondlife crashes on startup. Was it possible that the libxul version I installed is different from that, that SL was compiled against?

Here goes the stack trace...

0: ELF(do_elfio_glibc_backtrace()+0x10c) [0x80e7f4c]
1: ELF(LLAppViewer::handleSyncViewerCrash()+0x13) [0x80b6053]
2: ELF(LLApp::runSyncErrorHandler()+0x20) [0x9bcdcf0]
3: ELF(LLApp::setError()+0x20) [0x9bcde00]
4: ELF(default_unix_signal_handler(int, siginfo*, void*)+0x1a5) [0x9bce8b5]
5: [0xffffe600]
6: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so(_ZN13nsCOMPtr_baseD2Ev+0x11) [0xf6e4fb11]
7: ELF(nsCOMPtr<nsIToolkit>::~nsCOMPtr()+0xe) [0x9c64a52]
8: ELF(LLEmbeddedBrowserWindow::enableToolkitObserver(int)+0x2a0) [0x9c633ac]
9: ELF(LLEmbeddedBrowserWindow::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, unsigned int)+0x46) [0x9c5f5b0]
10: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf753a11f]
11: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf753a79f]
12: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf753a891]
13: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf6f61ee8]
14: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf6f5c9a1]
15: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf75360d4]
16: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf7536c21]
17: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf751a5dd]
18: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf751e49f]
19: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf752b096]
20: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf751c8f9]
21: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf752bcc9]
22: /home/sharven/SecondLife_i686_1_20_15_92456/lib/libxul.so [0xf757acd3]
23: ELF(LLEmbeddedBrowser::createBrowserWindow(int, int)+0x2b8) [0x9c5c956]
24: ELF(LLMozLib::createBrowserWindow(int, int)+0x24) [0x9c59c08]
25: ELF(LLMediaImplLLMozLib::init()+0x74) [0x982a2f4]
26: ELF(LLMediaManager::createSourceFromMimeType(std::string, std::string)+0xc7) [0x981e327]
27: ELF(LLWebBrowserCtrl::LLWebBrowserCtrl(std::string const&, LLRectBase<int> const&;)+0x234) [0x96a8604]
28: ELF(LLWebBrowserCtrl::fromXML(LLPointer<LLXMLNode>, LLView*, LLUICtrlFactory*)+0x21b) [0x96a8f1b]
29: ELF(LLUICtrlFactory::createCtrlWidget(LLPanel*, LLPointer<LLXMLNode>;)+0xb0) [0x9a5e0c0]
30: ELF(LLUICtrlFactory::createWidget(LLPanel*, LLPointer<LLXMLNode>;)+0x55) [0x9a5a385]
31: ELF(LLPanel::initChildrenXML(LLPointer<LLXMLNode>, LLUICtrlFactory*)+0xcd) [0x9988dcd]
32: ELF(LLPanel::initPanelXML(LLPointer<LLXMLNode>, LLView*, LLUICtrlFactory*)+0x127) [0x998af77]
33: ELF(LLUICtrlFactory::buildPanel(LLPanel*, LLStringBase<char> const&, std::map<LLStringBase<char>, LLCallbackMap, std::less<LLStringBase<char> >, std::allocator<std::pair<LLStringBase<char> const, LLCallbackMap> > > const*)+0x115) [0x9a5bfd5]
34: ELF(LLPanelLogin::LLPanelLogin(LLRectBase<int> const&, int, void (*)(int, void*), void*)+0x316) [0x8d792a6]
35: ELF(LLPanelLogin::show(LLRectBase<int> const&, int, void (*)(int, void*), void*)+0x3e) [0x8d7bebe]
36: ELF(login_show()+0x8d) [0x8fc2a2d]
37: ELF(idle_startup()+0x12e7) [0x8fd4487]
38: ELF(LLAppViewer::idle()+0xbad) [0x80bd3cd]
39: ELF(LLAppViewer::mainLoop()+0x28d) [0x80d5abd]
Sharven Raabe
Registered User
Join date: 6 Oct 2006
Posts: 15
08-22-2008 23:26
I've solved the problem for now using a 32 bit chroot environment to run second life. My problem now is serious performance issues - some optional yet important library seems to be missing. Could anyone imagine what that is?

To get it running I installed:
libgtk2.0-0
libglu1-mesa
xulrunner
libxul-dev

into the chroot environment. To speed it up I tried (for my geForce 8800 GTX):
nvidia-glx

However, for now it is extremely unstable. Is there a way to find out what libraries are missing?

PS: Ok, I got it now. :) For nvidia cards you take nvidia-glx-new instead of nvidia-glx. Also you need to install esound (and not pulseaudio) even when outside the chroot pulseaudio with a compatibility plugin for esound is working. (The problem is that pulseaudio depends on the dbus daemon and hal, which cannot run twice it seems).

The list of packages I installed into my chroot environment (plus dependencies):
libgtk2.0-0
libglu1-mesa
xulrunner
libxul-dev
nvidia-glx-new
gstreamer0.10-plugins-base
gstreamer0.10-plugins-good
esound
Michelle2 Zenovka
Registered User
Join date: 6 Jan 2008
Posts: 63
08-23-2008 02:28
Sharven,

As you are on ubuntu why not try my debs that are build for 32 AND 64bit systems, it will save you a world of pain in a chroot.

http://www.byteme.org.uk/secondlife-amd64/apt-get-a-secondlife.htm

Don't for get for your chroot case you need the nvidia gfx drivers installed on your host system as that is a kernel module that is needed to be run and your xserver needs to have driver="nvidia" to load this. The chroot needs the nvidia gl libs still and I am not 100% sure if this will even work.

Also note the versions of xulrunner/mozilla supplied by the lindens in the offical build are modifed, DO NOT try to use these with a linden build, it will crash as you have seen. If you are trying to build secondlife your self you either have to use the lindens supplied mozilla libraries OR look in my debs to see how i build against system xulrunner which requires patching the viewer source and creating a shared libllmozlib to work.

For maximum performance with my debs you also need the nvidia driver installed (or no 3d acceleration)

Hope this helps

M2
Sharven Raabe
Registered User
Join date: 6 Oct 2006
Posts: 15
08-23-2008 02:57
hmm... I tried the version at byteme.prg before but the sound didn't work well (probably using oss instead of the esound driver). From what I've seen the packages there are meant to be used on Debian not Ubuntu system. While you still can use it I guess all the different library versions make it difficult.

Additionally, I can imagine that getting second life to properly work with a 64 bit verion of gstreamer would become seriously messy in oovie playback. No, in the chroot, it just works for me.

Now I got the chroot environment up and ready and it does everything I want it to, so I see little reason to try something different.

Plus I do not have to wait for required updates for a maintainer to provide, but can just download it from the website.

The only thing that was a bit problematic was that aptitude (as opposed to apt-get) constantly wanted to install the dbus daemon and hal within the chroot environment, which wouldn't work of course. But I managed to avoid that pretty easy...

Additionally I need a chroot environment sooner or later anyway - I badly need a Firefox with an original Sun Java Plugin, and that's a little difficult under 64 bit. I can install the 2 bit Firefox directly of course, but it's a whole lot easier with the chroot... the thing is, once you've set it up it is not difficult at all anymore.

About the driver: I do run a 64 bit nvidia kernael driver of course. The thing is that you need the libraries on the 32 bit side, too, to have GLX properly working, but you do not need the actual 32 bit kernel module.