@@ -13,11 +13,47 @@ This project is based on a unique frozen development [FPVue_rk](https://github.c
1313
1414Tested on RK3566 (Radxa Zero 3W) and RK3588s (Orange Pi 5).
1515
16- ## Compilation
16+ ## Installation
17+
18+ It can be installed as a binary DEB package or built from source.
19+
20+ ### DEB package
21+
22+ Currently we have packages for Debian Bookworm (12).
23+ First you need to add a repository that contains ` wfb-ng ` dependency
24+
25+ ```
26+ curl -s https://apt.wfb-ng.org/public.asc | sudo gpg --dearmor --yes -o /usr/share/keyrings/wfb-ng.gpg
27+ echo "deb [signed-by=/usr/share/keyrings/wfb-ng.gpg] https://apt.wfb-ng.org/ $(lsb_release -cs) master" | sudo tee /etc/apt/sources.list.d/wfb-ng.list
28+ sudo apt update
29+ ```
30+ Also make sure Radxa's repositories are enabled
31+
32+ ```
33+ $ ls /etc/apt/sources.list.d/*radxa*.list
34+ /etc/apt/sources.list.d/70-radxa.list /etc/apt/sources.list.d/80-radxa-rk3566.list
35+ $ cat /etc/apt/sources.list.d/*radxa*.list
36+ deb [signed-by="/usr/share/keyrings/radxa-archive-keyring.gpg"] https://radxa-repo.github.io/bookworm bookworm main
37+ deb [signed-by="/usr/share/keyrings/radxa-archive-keyring.gpg"] https://radxa-repo.github.io/rk3566-bookworm rk3566-bookworm main
38+ ```
39+
40+ Then download the latest ` .deb ` package from "releases" section on Github and install it:
41+
42+ ```
43+ sudo apt install ./pixelpilot-rk_*_arm64.deb
44+ ```
45+
46+ Configuration files are:
47+
48+ * ` /etc/pixelpilot/pixelpilot.yaml ` - GPIO settings etc
49+ * ` /etc/pixelpilot/osd_config.json ` - OSD configuration
50+ * ` /etc/default/pixelpilot ` - systemd overrides / command line parameters
51+
52+ ### Build from source
1753
1854Build on the Rockchip linux system directly.
1955
20- ## Install dependencies
56+ #### Install dependencies
2157
2258- drm, cairo, mpp, logging, json, msgpack, gpiod, yaml-cpp
2359
@@ -31,7 +67,7 @@ sudo apt install libdrm-dev libcairo-dev librockchip-mpp-dev libspdlog-dev nlohm
3167sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev
3268```
3369
34- ## Build Instructions
70+ #### Build Instructions
3571
3672Build and run application in production environment:
3773
@@ -63,6 +99,27 @@ Build and run gsmenu SDL simulator locally
6399Simulator has w,a,s,d,Enter input.
64100Press t to toggle drone detection.
65101
102+ ### Build from source for arm64
103+
104+ To build it on a non-ARM host machine, it is possible to build with QEMU emulator.
105+
106+ ```
107+ sudo apt-get install qemu-user-static
108+ ```
109+ and then either build the binary:
110+
111+ ```
112+ make qemu_build
113+ ls -l pixelpilot
114+ ```
115+
116+ or build .deb package:
117+
118+ ```
119+ make qemu_build_deb
120+ ls -l pixelpilot-rk_*.deb
121+ ```
122+
66123## Usage
67124
68125Show command line options:
@@ -73,7 +130,7 @@ pixelpilot --help
73130### OSD config
74131
75132OSD is set-up declaratively in ` /etc/pixelpilot/config_osd.json ` file (or whatever is set via ` --osd-config `
76- command line key.
133+ command line key) .
77134
78135OSD is described as an array of widgets which may subscribe to fact updates (they receive each fact
79136update they subscribe to) and those widgets are periodically rendered on the screen (in the order they
@@ -285,7 +342,8 @@ Pixelpilot starts several threads:
285342
286343## Release
287344
288- * update project version in ` CMakeList.txt ` , ` project(pixelpilot, VERSION <X.Y.Z>) ` , commit
345+ * update project version in ` CMakeList.txt ` : ` project(pixelpilot, VERSION <X.Y.Z>) ` , in
346+ ` Makefile ` : ` DEB_VERSION ` , and update ` debian/changelog ` (with ` dch -v <X.Y.Z> ` ). Commit
289347* push that commit to master (either directly or with PR)
290348* tag the tip of the master branch with the same ` <X.Y.Z> ` version
291- * run ` git push --tags ` ; it will publish a new GitHub release
349+ * run ` git push --tags ` ; it will trigger a build job that would publish a new GitHub release
0 commit comments