CentOS.md 2.66 KB
Newer Older
Gus Grubba's avatar
Gus Grubba committed
1 2 3 4
## Building QGC on a stock CentOS:

These were the options used to setup a CentOS development system. Use it as a guideline.

Gus Grubba's avatar
Gus Grubba committed
5 6 7 8 9 10
#### CentOS Installation
![CentOS Installation](https://github.com/mavlink/qgroundcontrol/blob/master/resources/CentOS/CentOS-installation.png)

#### CentOS Software Selection
![CentOS Software Selection](https://github.com/mavlink/qgroundcontrol/blob/master/resources/CentOS/CentOS-sw-selection.png)

Gus Grubba's avatar
Gus Grubba committed
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
Once the system is fully installed and running, we need to set it up for QGC development. First, we need to update GStreamer to a more recent version. This guide follows Alice Wonder's tips found here: https://media.librelamp.com

#### Update to a more current GStreamer
```
sudo yum install epel-release
wget http://awel.domblogger.net/7/media/x86_64/awel-media-release-7-6.noarch.rpm
sudo yum localinstall awel-media-release-7-6.noarch.rpm
sudo yum clean all
sudo yum update
sudo yum install gstreamer1*
```
Make sure these are installed (vaapi for Intel GPUs)
```
sudo yum install gstreamer1-vaapi
sudo yum install gstreamer1-libav
```

#### Installing SDL2

SDL2 is used for joystick support.

```
sudo yum install SDL2
sudo yum install SDL2-devel
```

#### Installing Qt
Gus Grubba's avatar
Gus Grubba committed
38
```
Gus Grubba's avatar
Gus Grubba committed
39 40
mkdir ~/devel
cd ~/devel
Gus Grubba's avatar
Gus Grubba committed
41
```
Gus Grubba's avatar
Gus Grubba committed
42 43 44 45 46 47 48 49

Install Qt 5.12.4 from the Qt installation script which can be downloaded [here](https://www.qt.io/download-thank-you?os=linux&hsLang=en). Once downloaded, make it executable and run it:
```
chmod +x qt-unified-linux-x64-3.1.1-online.run
./qt-unified-linux-x64-3.1.1-online.run
```

Select the following options and install it under ~/devel/Qt
Gus Grubba's avatar
Gus Grubba committed
50
![Qt Software Selection](https://github.com/mavlink/qgroundcontrol/blob/master/resources/CentOS/Qt-Setup.png)
Gus Grubba's avatar
Gus Grubba committed
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

#### Clone and Build QGC
```
git clone --recursive https://github.com/mavlink/qgroundcontrol.git
mkdir build
cd build
```
For a debug/test build:
```
../Qt/5.12.4/gcc_64/bin/qmake ../qgroundcontrol/qgroundcontrol.pro -spec linux-g++ CONFIG+=debug
```
For a release build:
```
../Qt/5.12.4/gcc_64/bin/qmake ../qgroundcontrol/qgroundcontrol.pro spec linux-g++ CONFIG+=qtquickcompiler
```
Build it: (use the appropriate number of CPU cores for you machine)
```
make -j32
```

You can alternativelly launch QtCreator (found under `~/devel/Qt/Tools/QtCreator/bin/qtcreator`), load the `qgroundcontro.pro` project and build/debug from within its IDE.

Gus Grubba's avatar
Gus Grubba committed
73 74
By default, this will build the regular QGC. To build the sample, customized UI version, follow [these instructions](https://github.com/mavlink/qgroundcontrol/blob/master/custom-example/README.md).

Gus Grubba's avatar
Gus Grubba committed
75 76 77 78
#### Running QGC
Before launching QGC, you need to make sure the current user has access to the dialout group (serial port access permission):
```
sudo usermod -a -G dialout $USER
Gus Grubba's avatar
Gus Grubba committed
79
```