Building Flightgear - Raspbian
Preparation
An installation of Raspbian Buster Lite is needed
Requirements
All the commands are run in bash
as normal pi
user (not root
). The pi
user needs sudo
access to install packages.
The following packages need to be install on the the system before starting the build of FlightGear. The packages can be install using the apt
command:
sudo apt install libplib-dev cmake g++ libboost-all-dev libopenal-dev libglew-dev \ libcurl4-openssl-dev libfreetype6-dev
Setup pbuilder
First, pbuilder
has to be installed:
sudo apt install pbuilder quilt
Create a base chroot image tar-ball if it has not been created before:
sudo pbuilder create \ --distribution "buster" \ --basetgz "/var/cache/pbuilder/base-buster-armhf.tgz" \ --debootstrapopts --keyring=/usr/share/keyrings/raspbian-archive-keyring.gpg
If the base chroot image tar-ball has been created before, update it:
sudo pbuilder \ --update \ --basetgz "/var/cache/pbuilder/base-buster-armhf.tgz"
libcollada-dom2.4
libcollada-dom2.4-dp0 has been build for Raspbian 9 not 10. The package has still dependencies to libboost-filesystem1.58.0 and libboost-system1.58.0 [1].
The package needs to be rebuild using for example pbuilder
:
apt source libcollada-dom2.4-dp0 pushd -- collada-dom-2.4.4+ds1 dpkg-buildpackage -S -d -us -uc popd rm -Rf -- collada-dom-2.4.4+ds1 sudo pbuilder --build --basetgz /var/cache/pbuilder/base-buster-armhf.tgz collada-dom_2.4.4+ds1-2.dsc
and then installed:
sudo dpkg --install /var/cache/pbuilder/result/libcollada-dom2.4-dp0_2.4.4+ds1-2_armhf.deb \ /var/cache/pbuilder/result/libcollada-dom2.4-dp-dev_2.4.4+ds1-2_armhf.deb
OpenSceneGraph
The osgPlugins-3.4.1/osgdb_png.so is not compiled on ARM due to the flag OSG_CPP_EXCEPTIONS_AVAILABLE:BOOL=OFF. The package needs to be rebuild using for example pbuilder
after changing OSG_CPP_EXCEPTIONS_AVAILABLE:BOOL=ON [2]:
apt-get source openscenegraph-3.4 pushd -- openscenegraph-3.4-3.4.1+dfsg1
Now modify the debian/rules
file:
nano debian/rules
and change OSG_CPP_EXCEPTIONS_AVAILABLE:BOOL=OFF
by OSG_CPP_EXCEPTIONS_AVAILABLE:BOOL=ON
.
dpkg-buildpackage -S -d -us -uc popd rm -Rf -- openscenegraph-3.4-3.4.1+dfsg1 sudo pbuilder --build --basetgz /var/cache/pbuilder/base-buster-armhf.tgz openscenegraph-3.4_3.4.1+dfsg1-5.dsc
and then installed:
sudo dpkg --install libopenscenegraph-3.4-131_3.4.1+dfsg1-5_armhf.deb \ openscenegraph-3.4_3.4.1+dfsg1-5_armhf.deb \ openscenegraph-3.4-examples_3.4.1+dfsg1-5_all.deb \ libopenscenegraph-3.4-dev_3.4.1+dfsg1-5_armhf.deb
Compiling
When compiling Simgear, the following flag has to be added to cmake
:
-DSIMGEAR_HEADLESS=ON