# Building a Linux image for NavQ

## HoverGames-Linux Distros

We have two separate Linux distributions that you can build for NavQ. There are pros and cons to both.

## \[1] HoverGames-BSP

The HoverGames-BSP image is based on NXP's Yocto BSP for i.MX 8M Mini. This distro is not as easy to use, and requires much more effort to get a working system, but currently it is the only system that is allowed for use if you want to use NavQ commercially. If you need tight integration and a small system that has only the packages you need installed on it, or if you're a company looking to use the NavQ in production, this is the one for you.

## \[2] HoverGames-Demo

The HoverGames-Demo image comes with the APT package manager as well as some other pre-installed software specific to i.MX 8M Mini. This distro is the easiest to use due to it's great compatibility with pre-existing binaries coming from official repositories. You can install ROS, OpenCV, and more on this image just as you would on a normal desktop computer. This makes the Demo image great for quick development and iteration. To use this image, you must agree to a Demo license stating that you will not use NavQ comercially with this distribution.

## Building the Linux images for NavQ

### Prerequisites

#### Recommended Specs

You'll need to use a computer with Ubuntu 18.04 installed, and we recommend a high amount of cores + RAM to build these images in a decent time frame. You will also need a large HDD or SSD (>500GB) to store the build files. A table of recommended specs are below:

| Component        | Recommended Hardware                                                                                          |
| ---------------- | ------------------------------------------------------------------------------------------------------------- |
| CPU              | Recent 6-core Intel i-Series or AMD Ryzen processor with HyperThreading or SMT (Simultaneous Multi-Threading) |
| RAM              | 16GB DDR4 or more                                                                                             |
| Storage          | 500GB SSD recommended, HDD will suffice but will be slow                                                      |
| Operating System | Ubuntu 18.04 (Not 20.04!)                                                                                     |

#### Install Yocto build tools

Follow the guide at Yocto's [website](https://www.yoctoproject.org/docs/2.4.2/yocto-project-qs/yocto-project-qs.html) to install the necessary build tools for Ubuntu/Debian, or just install the list of packages below:

```
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
     xz-utils debianutils iputils-ping libsdl1.2-dev xterm
```

### Running the build script

We have a GitHub repo with instructions for both the HoverGames-BSP and HoverGames-Demo images. The BSP image can be built using the `master` branch, whereas the Demo image can be built using the `demo` branch. The link to the repo is below.

{% embed url="<https://github.com/NXPmicro/meta-nxp-hovergames>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nxp.gitbook.io/8mmnavq/navq-developer-guide/building-a-linux-image-for-navq.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
