Hard Light Productions Forums

General FreeSpace => FreeSpace & FreeSpace Open Support => Topic started by: Iiari on September 13, 2016, 09:37:01 am

Title: Silly Linux Noob Question - What next?
Post by: Iiari on September 13, 2016, 09:37:01 am
Hi all,

     New to Linux and returning to gaming after about 15 years.  I read FS2 is still the gold standard for space sims and wanted to try the mods.  I already have JAVA installed.  I bought FS2 from GOG, downloaded the FSO .jar installer, launched it successfully, did the 30 GB or so complete installation, all files successful.  But...  Now what?

      I look in my Freespace 2 directory in my home directory, and there are Windows EXE files that launch via wine, and some executables starting with "fs" (one a debug) that don't do anything when I click them and typing their name into the command line does nothing.  I read references to a FSO launcher, but I don't see any file by that name at all. 

      After the installer is done, what do I do next on Linux to run the launcher, and the game?  Thanks!
Title: Re: Silly Linux Noob Question - What next?
Post by: X3N0-Life-Form on September 13, 2016, 09:53:13 am
What you are looking for is wxLauncher (http://www.hard-light.net/forums/index.php?topic=67950.0).

I think the release post contains build instructions for linux, so you might want to look into that.
Title: Re: Silly Linux Noob Question - What next?
Post by: Phantom Hoover on September 13, 2016, 10:53:56 am
No, don't bother installing wxlauncher by itself!  The FSO installer (http://www.fsoinstaller.com/) will do everything you need and runs on Linux (it needs Java, if you need help setting that up we're happy to provide it).
Title: Re: Silly Linux Noob Question - What next?
Post by: Iiari on September 13, 2016, 11:49:39 am
No, don't bother installing wxlauncher by itself!  The FSO installer (http://www.fsoinstaller.com/) will do everything you need and runs on Linux (it needs Java, if you need help setting that up we're happy to provide it).
Well, I already had Java installed, and the installer worked well, it seemingly installed all of the core and mod files completely.  But I just don't know what to do next.  What file to launch?  There is a wxlauncher directory (the version number is part of the directory name).  Am I supposed to be launching something in there?  Some online guides I have seen reference a file with the name "launcher" in the Freespace 2 directory after using the installer.  I don't have anything by that name.

Does wxlauncher have a deb/package install that doesn't need to be built?
Title: Re: Silly Linux Noob Question - What next?
Post by: Phantom Hoover on September 13, 2016, 11:57:48 am
There should be a wxLauncher executable somewhere in your installed files but I can't say anything more specific or helpful than that right now. What distro are you using? Some of the common ones have wxlauncher packages you can install, which is probably the easiest way of running it.
Title: Re: Silly Linux Noob Question - What next?
Post by: X3N0-Life-Form on September 13, 2016, 12:23:10 pm
Hmm, looking at what the installer downloads for linux, there doesn't seem to be any precompiled binary...

So your best bet is either this :
Some of the common ones have wxlauncher packages you can install, which is probably the easiest way of running it.


Or try to compile it yourself (warning: requires opening the terminal) :
Quote from: wxLauncher readme
Building - Linux (has been tested on Ubuntu)
=========================
Command line
-----------
- Download the wxLauncher source
- sudo apt-get install build-essential libopenal-dev libwxgtk2.8-dev
libwxgtk2.8-dbg python-markdown
- Download and install the cmake 2.8 .debs for your platform from:
<https://launchpad.net/ubuntu/+source/cmake>.  You will need cmake-data, and
cmake-2.8.0* for your platform, plus cmake-curses-gui or cmake-qt-gui
- cd <source directory>
- mkdir build
- cd build
To prevent error messages like "The launcher is expecting (/home/foo/bar) to
contain the resource images." from occurring, either type:
- cmake -DUSE_OPENAL=1 -DDEVELOPMENT_MODE=1 -DCMAKE_INSTALL_PREFIX=/usr/local ../
- make
Or instead type:
- cmake -DUSE_OPENAL=1 -DCMAKE_INSTALL_PREFIX=/usr/local ../
- make
- make install (with root privileges)

CMake selects the wrong python
------------------------------
If CMake selects the wrong version of python (should be version 2), you
can set the version yourself by setting PYTHON_EXECUTABLE when you run CMake by
adding "-DPYTHON_EXECUTABLE=</path/to/python2>" to your command line, for
example "-DPYTHON_EXECUTABLE=/usr/bin/python2".

Although someone with a linux rig might be able to give you proper instructions :/
I can't say anything more specific or helpful than that right now either.
Title: Re: Silly Linux Noob Question - What next?
Post by: Phantom Hoover on September 13, 2016, 01:34:47 pm
I wouldn't try to build it yourself except as a last resort because of the potential dependency management nightmares.
Title: Re: Silly Linux Noob Question - What next?
Post by: Iiari on September 13, 2016, 02:34:48 pm
There should be a wxLauncher executable somewhere in your installed files but I can't say anything more specific or helpful than that right now. What distro are you using? Some of the common ones have wxlauncher packages you can install, which is probably the easiest way of running it.
I'll check.  I'm using Gallium OS, a derivative of XFCE (and thus Ubuntu) which is optimized for Chromebooks.  Even if the distro doesn't offer it, maybe there's a PPA out there?
Title: Re: Silly Linux Noob Question - What next?
Post by: Phantom Hoover on September 13, 2016, 02:53:23 pm
Well the stock Ubuntu package is freespace2-launcher-wxlauncher (http://packages.ubuntu.com/search?keywords=freespace2-launcher-wxlauncher) so see if that's in your package manager to install.
Title: Re: Silly Linux Noob Question - What next?
Post by: Iiari on September 13, 2016, 09:50:51 pm
OK!  I downloaded the launcher from the Ubuntu App Store and started it successfully.  I went to the went to the basic settings to select the Freespace 2 directory where the installer placed all of the mods and files, and I get an "Assertion Failed" error  :(  Here's the backtrack text.   

ASSERT INFO:
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type

BACKTRACE:
[1] wxFileConfig::Parse(wxTextBuffer const&, bool)
[2] wxFileConfig::wxFileConfig(wxInputStream&, wxMBConv const&)
[3] ModList::ParseModIni(wxString const&, wxString const&, bool)
[4] ModList::ModList(wxWindow*, wxSize&, wxString)
[5] ModsPage::OnTCChanged(wxCommandEvent&)
[6] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[7] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[8] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[9] wxEvtHandler::TryHereOnly(wxEvent&)
[10] wxEvtHandler::ProcessEventLocally(wxEvent&)
[11] wxEvtHandler::ProcessEvent(wxEvent&)
[12] wxEvtHandler::ProcessPendingEvents()
[13] wxAppConsoleBase::ProcessPendingEvents()
[14] wxApp::DoIdle()
[15] g_main_context_dispatch
[16] g_main_loop_run
[17] gtk_main
[18] wxGUIEventLoop::DoRun()
[19] wxEventLoopBase::Run()
[20] wxAppConsoleBase::MainLoop()
[21] wxEntry(int&, wchar_t**)
[22] main
[23] __libc_start_main
[24] _start


Can anyone help me with this?  If I cancel out the error window, I can see the mods listed in "mods," but it won't let me launch or play anything without more errors :(

ASSERT INFO:
../src/common/ffile.cpp(143): assert "IsOpened()" failed in Write(): can't write to closed file

BACKTRACE:
[1] wxFFile::Write(void const*, unsigned long)
[2] wxFFileOutputStream::OnSysWrite(void const*, unsigned long)
[3] wxOutputStream::Write(void const*, unsigned long)
[4] wxFileConfig::Save(wxOutputStream&, wxMBConv const&)
[5] FilePushProfile(wxFileConfig*)
[6] ProMan::PushCurrentProfile()
[7] MainWindow::OnStart(wxButton*, bool)
[8] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[9] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[10] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[11] wxEvtHandler::TryHereOnly(wxEvent&)
[12] wxEvtHandler::ProcessEventLocally(wxEvent&)
[13] wxEvtHandler::ProcessEvent(wxEvent&)
[14] wxWindowBase::TryAfter(wxEvent&)
[15] wxWindowBase::TryAfter(wxEvent&)
[16] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[17] g_signal_emit_valist
[18] g_signal_emit
[19] g_signal_emit_valist
[20] g_signal_emit
[21] g_closure_invoke
[22] g_signal_emit_valist
[23] g_signal_emit
[24] gtk_propagate_event
[25] gtk_main_do_event
[26] g_main_context_dispatch
[27] g_main_loop_run
[28] gtk_main
[29] wxGUIEventLoop::DoRun()
[30] wxEventLoopBase::Run()
[31] wxAppConsoleBase::MainLoop()
[32] wxEntry(int&, wchar_t**)
[33] main
[34] __libc_start_main
[35] _start


  HELP!
Title: Re: Silly Linux Noob Question - What next?
Post by: niffiwan on September 13, 2016, 10:06:37 pm
Kinda looks like wxLauncher is having problems reading a mods configuration file (i.e. mod.ini). That shouldn't be fatal though, so hitting continue should be OK. What mod and what FS2 Open Executable do you have selected when you get the 2nd assertion? (which is one I haven't seen before)
Title: Re: Silly Linux Noob Question - What next?
Post by: Iiari on September 13, 2016, 10:37:06 pm
I'm selecting FS 2 Open 3.7.4 for the executable.  The Advanced tab, no matter what mod I select, says "The executable did not generate a flag file.   Make sure the executable is an FS Open executable." 

Sigh, this is why Linux hasn't taken over the desktop yet. 
Title: Re: Silly Linux Noob Question - What next?
Post by: niffiwan on September 13, 2016, 11:47:51 pm
I hardly think a few rough edges in FSOs packaging/delivery materially affect the uptake of Linux on the desktop :D

Could you run the following commands in a terminal?

Code: [Select]
$ cd your/GoG/installation/directory
$ file fs2_open_3.7.5_DEBUG_master-3d5682a  (replace the filename with the name of the Linux executable the installer downloaded for you)
fs2_open_3.7.5_DEBUG_master-3d5682a: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=7b7b76141a75f9cf5261d358cd9fb26943a95472, not stripped
$ uname -a
Linux skywalker 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ ./fs2_open_3.7.5_DEBUG_master-3d5682a  (replace the filename with the name of the Linux executable the installer downloaded for you)

thanks!
Title: Re: Silly Linux Noob Question - What next?
Post by: Phantom Hoover on September 14, 2016, 08:17:44 pm
Although perhaps before that you should try just running the fs2_open_<whatever> binary that the installer created for you from the command-line and see what that does. It should just start up with retail assets on a clean install, and if it doesn't then we know the bug's not with wxlauncher.
Title: Re: Silly Linux Noob Question - What next?
Post by: Iiari on September 15, 2016, 01:16:15 am
Could you run the following commands in a terminal?
Thank  you for the assistance.  Here's the results. 

First command results:
fs2_open_3.7.4_DEBUG: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=61ca419a377969066a3348e4ca99db372aaca7e2, not stripped

Second terminal command results:
Linux chrx 4.4.6-galliumos #2 SMP PREEMPT Fri Apr 29 13:30:57 MDT 2016 x86_64 x86_64 x86_64 GNU/Linux

When trying to run any executable, it said "Permission Denied."  I went into root, verified I was the owner, and changed the file to executable.  Then, it gives me:
error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory

FYI, I can run the game via the Windows wxlauncher via Wine just fine.  Unfortunately, the HUD flickers badly with that, making the game unplayable.   I *really* want to get the Linux native version running, if for no other reason than to clarify instructions to make it possible for other Linux owners.  Oh, BTW, I confirmed there IS NO WXLAUNCHER automatically set up by the FSO installer.  It still needs to be built from scratch for Linux.  I did a fresh install, but haven't tried that yet (as all prior instructions to do that before I've seen have failed). 
Title: Re: Silly Linux Noob Question - What next?
Post by: niffiwan on September 15, 2016, 01:36:21 am
Ah; you need to install some of FSO's dependencies. Try running the following command from a terminal:

Code: (http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux/Installing_the_Development_Libraries) [Select]
$ sudo apt-get install libopenal-dev libogg-dev libvorbis-dev build-essential automake1.10 autoconf libsdl2-dev libtheora-dev libreadline6-dev libpng12-dev libjpeg62-dev liblua5.1-0-dev libjansson-dev libtool

Technically that's going to install more than you need to play, since it installs all the development libraries. But, I don't have a handy reference to install just the runtime libraries.

If you don't want to install all the development stuff; then you should be able to install the latest version available in the official ubuntu repositories. Installing that should install all the runtime dependencies that you need. See this pic for the package name. 

(http://i.imgur.com/ruLMzD7.png)

The screenshot is taken from synaptic, the Ubuntu App Store should also work, or lastly you can install using the command line with:

Code: [Select]
$ sudo apt-get install freespace2

Don't actually run this version, it's just there to install the dependencies for you.
Title: Re: Silly Linux Noob Question - What next?
Post by: Iiari on September 15, 2016, 01:51:55 am
Ah; you need to install some of FSO's dependencies. Try running the following command from a terminal:

I installed that entire line of dependencies, ran update, and still get the same error.  I wonder if they're all up to date.  I had, even before that, run the lines in the instruction file for 32 bit dependencies. 

I'll try the Ubuntu repositories tomorrow and report back.  Thanks again!

Title: Re: Silly Linux Noob Question - What next?
Post by: Iiari on September 15, 2016, 01:55:38 am
Actually, found an old forum post saying to load the following dependencies:
liblua5.1-0:i386
libtheora-bin:i386
libvorbisfile3:i386

That seemed to fix the first error, but now I get:
error while loading shared libraries: libjansson.so.4: cannot open shared object file: No such file or directory

Title: Re: Silly Linux Noob Question - What next?
Post by: niffiwan on September 15, 2016, 02:34:21 am
Try running this command:

Code: [Select]
$ sudo apt-get install libjansson4:i386

And if it still doesn't run, try running this command and pasting the output.

Code: [Select]
$ ldd fs2_open_3.7.4_DEBUG | grep not

If you feel like it you could even have a go at figuring out the names of the other packages that you need i386 version of installed.
Title: Re: Silly Linux Noob Question - What next?
Post by: Iiari on September 15, 2016, 09:24:23 pm
Try running this command:

I installed the library and get a new error:
error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory

I also entered the command you listed.  Here is the output:
libjpeg.so.62 => not found

Thanks!
Title: Re: Silly Linux Noob Question - What next?
Post by: niffiwan on September 15, 2016, 10:52:23 pm
OK, try this command, hopefully it's the last dependency that you'll need:

Code: [Select]
$ sudo apt-get install libjpeg8:i386
Title: Re: Silly Linux Noob Question - What next?
Post by: Phantom Hoover on September 16, 2016, 10:52:51 am
Uh, could he not just try installing the 32-bit version of FSO and get all the appropriate 32-bit dependencies?
Title: Re: Silly Linux Noob Question - What next?
Post by: niffiwan on September 16, 2016, 07:03:26 pm
yeah, I suggested that a few posts back, but by this point it should be one command either way.  This

Code: [Select]
$ sudo apt-get install libjpeg8:i386

Or this

Code: [Select]
$ sudo apt-get install freespace2
Title: Re: Silly Linux Noob Question - What next?
Post by: Phantom Hoover on September 16, 2016, 07:10:06 pm
Surely that'd install 64-bit dependencies and wouldn't help with the 32-bit version the installer's apparently used?
Title: Re: Silly Linux Noob Question - What next?
Post by: niffiwan on September 16, 2016, 08:37:34 pm
 :banghead:  I am a dunce, you are quite correct. So this is probably what would be required (I just haven't tested it myself)

This

Code: [Select]
$ sudo apt-get install libjpeg8:i386

or this

Code: [Select]
$ sudo apt-get install freespace2:i386
Title: Re: Silly Linux Noob Question - What next?
Post by: Phantom Hoover on September 16, 2016, 08:42:05 pm
More importantly: the installer should not be using 32-bit Linux binaries in this day and age.