Ubuntu: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(Update list of required packages for Ubuntu 13.04)
(remove old osg first)
 
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{stub}}
{{stub}}
Following steps walk through downloading the FlightGear source code, compile and run on Ubuntu 13.04 (x86_64)


== Required Packages ==
== Required Packages ==


This is a list of all the apt-get commands I had to do while compiling FG, SG, and OSG on a mostly clean '''Ubuntu (13.04) x86_64''' system. It is a list of all the libraries you and your computer needs to compile FG, SG, OSG, and PLib. All you have to do is copy the full command, paste it in Terminal, enter your password, and it will download all the packages for you, and install them too. The full command is at the bottom, and I hope someone finds it useful :) sub-dependencies (dependencies of the dependencies) are not included as they are installed automatically by apt-get. If anyone sees something missing, please add it.
Install the following packages and libraries to be able to compile FlightGear:
<pre>
sudo apt-get remove libopenscenegraph-dev libopenscenegraph100v5 # osg in apt is too old
sudo add-apt-repository ppa:openmw/openmw
sudo apt update
sudo apt install openscenegraph-3.4 libopenscenegraph-3.4-dev
 
sudo apt-get install git subversion build-essential cmake cmake-curses-gui libpng12-dev libfreetype6-dev libjpeg-dev libgif-dev libtiff5-dev libxmu-dev libxi-dev freeglut3-dev libalut-dev libxft-dev libxinerama-dev libboost-dev libplib-dev libopenscenegraph-dev libsvn-dev libudev-dev libfontconfig1-dev glew-utils libglew-dev qtbase5-private-dev qtdeclarative5-private-dev libcurl3-dev
</pre>
 
== Download source ==
 
Create a fgsrc directory and get the source code with git:
<pre>mkdir ~/fgsrc
cd ~/fgsrc
git clone git://git.code.sf.net/p/flightgear/simgear simgear
git clone git://git.code.sf.net/p/flightgear/flightgear
git clone git://git.code.sf.net/p/flightgear/fgdata
</pre>
 
== Compile ==


{|
Create directory to install FlightGear in and create environment variable:
! Package
<pre>export prefix=$HOME/FG-install && mkdir $prefix</pre>
! Description
|-
| git
| Distributed revision control system (to get SG and FG source code)
|-
| subversion
| revision control system (to get [[OSG]])
|-
| build-essential
| standard build tools (includes gcc)
|-
| cmake
| cross-platform, open-source make system
|-
| cmake-curses-gui
| curses based user interface for CMake
|-
| libpng12-dev
| PNG library
|-
| libfreetype6-dev
| FreeType 2 font engine
|-
| libjpeg-dev
| JPEG library
|-
| libgif-dev
| GIF library
|-
| libtiff5-dev
| TIFF library
|-
| libxmu-dev
| X11 miscellaneous utility library
|-
| libxi-dev
| X11 Input extension library
|-
| freeglut3-dev
| OpenGL Utility Toolkit
|-
| libalut-dev
| OpenAL Utility Toolkit
|-
| libboost-dev
| Boost C++ Libraries
|-
| automake
| Tool for generating GNU Standards-compliant Makefiles
|-
| autoconf
| automatic configure script builder
|-
| libfltk1.1-dev
| Fast Light Toolkit
|}


Create a build directory for each package and run cmake from there:


Command line to install all of the above listed packages:  
SimGear:  
<pre>
<pre>cd ~/fgsrc
sudo apt-get install git subversion build-essential cmake cmake-curses-gui libpng12-dev libfreetype6-dev
mkdir build-sg
libjpeg-dev libgif-dev libtiff5-dev libxmu-dev libxi-dev libglut3-dev libalut-dev
cd build-sg
libboost-dev automake autoconf libfltk1.1-dev
cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" ~/fgsrc/simgear
make -j2 install
</pre>
</pre>


NOTE: On a '''Linux Mint 9''' (Ubuntu 10.04) system this is the command I used:
FlightGear:  
<pre>
<pre>cd ~/fgsrc
sudo apt-get install git-core subversion build-essential cmake cmake-curses-gui libpng-dev libfreetype6-dev libjpeg-dev libungif4-dev
mkdir build-fg
libtiff-dev libxmu-dev libxi-dev libglut3-dev libalut-dev libboost-dev ''automake autoconf'' libfltk1.1-dev libplib-dev libopenscenegraph-dev
cd build-fg
cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" ~/fgsrc/flightgear
make -j2 install
</pre>
</pre>
You just need to copy that long line into a terminal and you should have all the packages you need to compile Flightgear and Simgear.
 
== Run ==
 
Link fgdata to the data directory in FG-install
<pre>cd $prefix
ln -s ~/fgsrc/fgdata data</pre>
 
Run executable:
<pre>$prefix/bin/fgfs --fg-root=$prefix/data</pre>


== Troubleshooting ==
== Troubleshooting ==
; Link error undefined reference to symbol 'dlopen@@GLIBC_2.2.5
: Uninstall fltk 1.3 library <pre>sudo apt-get remove libfltk1.3-dev</pre> See the [http://forum.flightgear.org/viewtopic.php?f=45&t=20164 forum]
; Only-a-black-screen problem:
; Only-a-black-screen problem:
: If you are a nvidia user and only get a black screen at startup, you might suffer from Ubuntu bug [https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers/+bug/982485 982485]. Have a look at comment [https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers/+bug/982485/comments/24 #24] for a possible workaround.
: If you are a nvidia user and only get a black screen at startup, you might suffer from Ubuntu bug [https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers/+bug/982485 982485]. Have a look at comment [https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers/+bug/982485/comments/24 #24] for a possible workaround.
; Ubuntu 14.04 LTS could not compile simgear (error with codecvt include)
: As of 2017-10-29 C++11 is enforced in simgear ([https://sourceforge.net/p/flightgear/simgear/ci/2642299d772a3b88264d5fb05086817d0742ced7/ commit log]). Ubuntu 14.04 shipped with GCC 4.8 could not handle full C++11 compatibility. In order to change GCC to newer version use ubuntu-toolchain PPA repository like:
: <pre>sudo add-apt-repository ppa:ubuntu-toolchain-r/test</pre>
: <pre>sudo apt-get update</pre>
: <pre>sudo apt-get install gcc-5 g++-5</pre>
: <pre>sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5</pre>

Latest revision as of 23:00, 15 November 2017

This article is a stub. You can help the wiki by expanding it.


Following steps walk through downloading the FlightGear source code, compile and run on Ubuntu 13.04 (x86_64)

Required Packages

Install the following packages and libraries to be able to compile FlightGear:

sudo apt-get remove libopenscenegraph-dev libopenscenegraph100v5 # osg in apt is too old
sudo add-apt-repository ppa:openmw/openmw
sudo apt update
sudo apt install openscenegraph-3.4 libopenscenegraph-3.4-dev

sudo apt-get install git subversion build-essential cmake cmake-curses-gui libpng12-dev libfreetype6-dev libjpeg-dev libgif-dev libtiff5-dev libxmu-dev libxi-dev freeglut3-dev libalut-dev libxft-dev libxinerama-dev libboost-dev libplib-dev libopenscenegraph-dev libsvn-dev libudev-dev libfontconfig1-dev glew-utils libglew-dev qtbase5-private-dev qtdeclarative5-private-dev libcurl3-dev

Download source

Create a fgsrc directory and get the source code with git:

mkdir ~/fgsrc 
cd ~/fgsrc
git clone git://git.code.sf.net/p/flightgear/simgear simgear
git clone git://git.code.sf.net/p/flightgear/flightgear
git clone git://git.code.sf.net/p/flightgear/fgdata

Compile

Create directory to install FlightGear in and create environment variable:

export prefix=$HOME/FG-install && mkdir $prefix

Create a build directory for each package and run cmake from there:

SimGear:

cd ~/fgsrc
mkdir build-sg
cd build-sg 
cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" ~/fgsrc/simgear 
make -j2 install

FlightGear:

cd ~/fgsrc
mkdir build-fg
cd build-fg 
cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" ~/fgsrc/flightgear 
make -j2 install

Run

Link fgdata to the data directory in FG-install

cd $prefix
ln -s ~/fgsrc/fgdata data

Run executable:

$prefix/bin/fgfs --fg-root=$prefix/data

Troubleshooting

Link error undefined reference to symbol 'dlopen@@GLIBC_2.2.5
Uninstall fltk 1.3 library
sudo apt-get remove libfltk1.3-dev
See the forum
Only-a-black-screen problem
If you are a nvidia user and only get a black screen at startup, you might suffer from Ubuntu bug 982485. Have a look at comment #24 for a possible workaround.
Ubuntu 14.04 LTS could not compile simgear (error with codecvt include)
As of 2017-10-29 C++11 is enforced in simgear (commit log). Ubuntu 14.04 shipped with GCC 4.8 could not handle full C++11 compatibility. In order to change GCC to newer version use ubuntu-toolchain PPA repository like:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5