Skip to content

Commit

Permalink
[gui] Add information about EGLFS and Raspberry Pi 5 board
Browse files Browse the repository at this point in the history
  • Loading branch information
goldyfruit committed Mar 20, 2024
1 parent 31dcb8f commit 783f568
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 23 deletions.
48 changes: 25 additions & 23 deletions docs/getting-started/docker/composition.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,29 +28,31 @@ A Docker or Podman environment file contains lines about environment variables t

Some variables might need to be tuned to match your setup such as the `TZ`, `XDG_RUNTIME_DIR`, etc...

| Variable | Default | Platforms | Description |
| ----------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
| `DISPLAY` | `:0` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | Display used by X or Wayland |
| `GPIO_GID` | `997` | :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `gpio` group ID on Raspberry Pi |
| `HIVEMIND_CONFIG_FOLDER` | `~/hivemind/config` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | HiveMind configuration directory |
| `HIVEMIND_CONFIG_PHAL_FOLDER` | `~/hivemind/config/phal` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | HiveMind PHAL configuration directory |
| `HIVEMIND_SHARE_FOLDER` | `~/hivemind/share` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | HiveMind shared directory |
| `HIVEMIND_USER` | `hivemind` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | User running in the container |
| `I2C_GID` | `994` | :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `i2c` group ID on Raspberry Pi |
| `INPUT_GID` | `102` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `input` group ID |
| `OVOS_CONFIG_FOLDER` | `~/ovos/config` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | OVOS configureation directory |
| `OVOS_CONFIG_PHAL_FOLDER` | `~/ovos/config/phal` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | OVOS PHAL configureation directory |
| `OVOS_SHARE_FOLDER` | `~/ovos/share` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | OVOS shared directory |
| `OVOS_USER` | `ovos` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | User running in the container |
| `PULL_POLICY` | `always` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | Policy to pull Docker images |
| `QT_QPA_PLATFORM` | `eglfs` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | QT platform plugin to use |
| `RENDER_GID` | `106` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `render` group ID |
| `SPI_GID` | `995` | :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `spi` group ID on Raspberry Pi |
| `TMP_FOLDER` | `~/ovos/tmp` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | OVOS temporary directory |
| `TZ` | `America/Montreal` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | Timezone to set in the container |
| `VERSION` | `alpha` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | Container image tag to pull |
| `VIDEO_GID` | `44` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `video` group ID |
| `XDG_RUNTIME_DIR` | `/run/user/1000` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | Path to XDG runtime directory |
| Variable | Default | Platforms | Description |
| ----------------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
| `DISPLAY` | `:0` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | Display used by X or Wayland |
| `GPIO_GID` | `997` | :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `gpio` group ID on Raspberry Pi |
| `HIVEMIND_CONFIG_FOLDER` | `~/hivemind/config` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | HiveMind configuration directory |
| `HIVEMIND_CONFIG_PHAL_FOLDER` | `~/hivemind/config/phal` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | HiveMind PHAL configuration directory |
| `HIVEMIND_SHARE_FOLDER` | `~/hivemind/share` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | HiveMind shared directory |
| `HIVEMIND_USER` | `hivemind` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | User running in the container |
| `I2C_GID` | `994` | :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `i2c` group ID on Raspberry Pi |
| `INPUT_GID` | `102` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `input` group ID |
| `OVOS_CONFIG_FOLDER` | `~/ovos/config` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | OVOS configureation directory |
| `OVOS_CONFIG_PHAL_FOLDER` | `~/ovos/config/phal` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | OVOS PHAL configureation directory |
| `OVOS_SHARE_FOLDER` | `~/ovos/share` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | OVOS shared directory |
| `OVOS_USER` | `ovos` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | User running in the container |
| `PULL_POLICY` | `always` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | Policy to pull Docker images |
| `QT_QPA_EGLFS_INTEGRATION` | `eglfs` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | QT preferred backend to use for EGLFS |
| `QT_QPA_EGLFS_KMS_CONFIG` | `/home/$OVOS_USER/.config/mycroft/ovos-eglfs.json` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | QT KSM backend configuration for WGLFS |
| `QT_QPA_PLATFORM` | `eglfs` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | QT platform plugin to use |
| `RENDER_GID` | `106` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `render` group ID |
| `SPI_GID` | `995` | :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `spi` group ID on Raspberry Pi |
| `TMP_FOLDER` | `~/ovos/tmp` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | OVOS temporary directory |
| `TZ` | `America/Montreal` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | Timezone to set in the container |
| `VERSION` | `alpha` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-apple:{ .lg title="Mac OS" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | Container image tag to pull |
| `VIDEO_GID` | `44` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } | `video` group ID |
| `XDG_RUNTIME_DIR` | `/run/user/1000` | :fontawesome-brands-linux:{ .lg title="Linux" } :fontawesome-brands-raspberry-pi:{ .lg title="Raspberry Pi" } :fontawesome-brands-windows:{ .lg title="Windows WSL2" } | Path to XDG runtime directory |

!!! bug "Do not change `OVOS_USER` or `HIVEMIND_USER`"

Expand Down
15 changes: 15 additions & 0 deletions docs/getting-started/docker/installation/gui.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,21 @@ When using EGLFS, the `DISPLAY` variable from the `.env` [composition environmen

**If not running on a Raspberry Pi 4 or 5 then the CPU might be used to render the GUI which will result in a high CPU consumption and a poor user exprience.**

## EGLFS on Raspberry Pi 5

The Raspberry Pi 5 board doesn't use `/dev/dri/card0` by default anymore for the GPU rendering. The solution to this issue is to create an EGLFS configuration referencing the right card to use.

```json title="~/ovos/config/ovos-eglfs.json"
{
"device": "/dev/dri/card1",
"hwcursor": false
}
```

The `QT_QPA_EGLFS_INTEGRATION` variable must be set to `eglfs_ksm` and `QT_QPA_EGLFS_KMS_CONFIG` variable must be set to `/home/$OVOS_USER/.config/mycroft/ovos-eglfs.json` in the `.env` file.

Please check the [composition environment file](../composition.md#environment-files) section for more details.

## Configuration

The `ovos-gui-messagebus` component must be configured in order to receive the QML files from the skill containers. Because of these file transfers, the `ovos-message-bus` component must be configured to allow bigger payload.
Expand Down

0 comments on commit 783f568

Please sign in to comment.