next fixes

pull/600/head
cronyx 2023-01-17 19:25:09 +03:00
parent 2f334e5f64
commit 5f0e2ea6cd
17 changed files with 53 additions and 114 deletions

View File

@ -52,8 +52,11 @@ clean:
prepare: $(BR_DIR)
$(ROOT_DIR)/buildroot-$(BR_VER).tar.gz:
wget -O $@ -nv \
--retry-connrefused --continue --timeout=15 \
http://buildroot.org/downloads/buildroot-$(BR_VER).tar.gz
--retry-connrefused --continue --timeout=3 \
http://buildroot.org/downloads/buildroot-$(BR_VER).tar.gz || \
wget -O $@ -nv \
--retry-connrefused --continue --timeout=3 \
https://github.com/buildroot/buildroot/archive/refs/tags/$(BR_VER).tar.gz
$(BR_DIR): $(ROOT_DIR)/buildroot-$(BR_VER).tar.gz
tar -C $(ROOT_DIR) -xf buildroot-$(BR_VER).tar.gz

View File

@ -100,7 +100,7 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
# FPV
BR2_PACKAGE_WIFIBROADCAST=y
# BR2_PACKAGE_MAVLINK_ROUTER is not set
BR2_PACKAGE_MAVLINK_ROUTER=y
BR2_PACKAGE_MAVFWD=y
# DEBUG

View File

@ -100,7 +100,7 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
# FPV
BR2_PACKAGE_WIFIBROADCAST=y
# BR2_PACKAGE_MAVLINK_ROUTER is not set
BR2_PACKAGE_MAVLINK_ROUTER=y
BR2_PACKAGE_MAVFWD=y
# DEBUG

View File

@ -100,7 +100,7 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
# FPV
BR2_PACKAGE_WIFIBROADCAST=y
# BR2_PACKAGE_MAVLINK_ROUTER is not set
BR2_PACKAGE_MAVLINK_ROUTER=y
BR2_PACKAGE_MAVFWD=y
# DEBUG

View File

@ -100,7 +100,7 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
# FPV
BR2_PACKAGE_WIFIBROADCAST=y
# BR2_PACKAGE_MAVLINK_ROUTER is not set
BR2_PACKAGE_MAVLINK_ROUTER=y
BR2_PACKAGE_MAVFWD=y
# DEBUG

View File

@ -92,7 +92,7 @@ log_and_run() {
clone() {
sudo apt-get update -y
sudo apt-get install -y automake autotools-dev bc build-essential curl fzf git libtool rsync unzip
sudo apt-get install -y automake make wget cpio file autotools-dev bc build-essential curl fzf git libtool rsync unzip
git clone --depth=1 https://github.com/OpenIPC/firmware.git
}
@ -139,7 +139,8 @@ fresh() {
log_and_run "cp -rvf ${SRC_CACHE_DIR}/* buildroot-${BR_VER}/dl/"
echo_c 34 "Done.\n"
make prepare
# prevent to double download buildroot
# make prepare
echo_c 33 "Start building OpenIPC Firmware ${OPENIPC_VER} for ${SOC}."
echo "The start-stop times" >/tmp/openipc_buildtime.txt

View File

@ -2,7 +2,7 @@
TcpServerPort = 0
[UartEndpoint drone]
Device = /dev/ttyAMA2
Device = /dev/ttyAMA0
Baud = 115200
[UdpEndpoint telemetry_tx]

View File

@ -3,8 +3,7 @@
# rtl8812au-openipc
#
################################################################################
RTL8812AU_OPENIPC_VERSION = 92433c4e9cf37ff67dd69df8ddbb32198ec3c6fd
RTL8812AU_OPENIPC_VERSION = 01616b79358f1225d4def42af34d842a63777495
RTL8812AU_OPENIPC_SITE = $(call github,svpcom,rtl8812au,$(RTL8812AU_OPENIPC_VERSION))
RTL8812AU_OPENIPC_LICENSE = GPL-2.0
RTL8812AU_OPENIPC_LICENSE_FILES = COPYING

View File

@ -1,71 +1,11 @@
--- a/Makefile 2022-09-12 12:30:23.273638715 +0300
+++ b/Makefile 2022-09-12 12:37:26.310596402 +0300
@@ -1,58 +1,29 @@
ARCH ?= $(shell uname -i)
-PYTHON ?= /usr/bin/python3
-COMMIT ?= $(shell git rev-parse HEAD)
-VERSION ?= $(shell $(PYTHON) ./version.py $(shell git show -s --format="%ct" $(shell git rev-parse HEAD)) $(shell git rev-parse --abbrev-ref HEAD))
+VERSION ?= $(shell git rev-parse HEAD)
SOURCE_DATE_EPOCH ?= $(shell git show -s --format="%ct" $(shell git rev-parse HEAD))
export VERSION COMMIT SOURCE_DATE_EPOCH
-_LDFLAGS := $(LDFLAGS) -lrt -lpcap -lsodium
-_CFLAGS := $(CFLAGS) -Wall -O2 -DWFB_VERSION='"$(VERSION)-$(shell /bin/bash -c '_tmp=$(COMMIT); echo $${_tmp::8}')"'
+LDFLAGS := -lrt -lpcap -lsodium
+CFLAGS := -Wall -O2 -DWFB_VERSION='"$(VERSION)"'
--- a/Makefile 2023-01-17 00:40:51.000000000 +0300
+++ b/Makefile 2023-01-17 15:05:24.252471083 +0300
@@ -9,7 +9,7 @@
_LDFLAGS := $(LDFLAGS) -lrt -lpcap -lsodium
_CFLAGS := $(CFLAGS) -Wall -O2 -DWFB_VERSION='"$(VERSION)-$(shell /bin/bash -c '_tmp=$(COMMIT); echo $${_tmp::8}')"'
-all: all_bin gs.key test
-
-env:
- virtualenv env --python=$(PYTHON)
- ./env/bin/pip install --upgrade pip setuptools stdeb
-
-all_bin: wfb_rx wfb_tx wfb_keygen
-
-gs.key: wfb_keygen
- @if ! [ -f gs.key ]; then ./wfb_keygen; fi
+all: wfb_rx wfb_tx wfb_keygen
src/%.o: src/%.c src/*.h
- $(CC) $(_CFLAGS) -std=gnu99 -c -o $@ $<
+ $(CC) $(CFLAGS) -std=gnu99 -c -o $@ $<
src/%.o: src/%.cpp src/*.hpp src/*.h
- $(CXX) $(_CFLAGS) -std=gnu++11 -c -o $@ $<
+ $(CXX) $(CFLAGS) -std=gnu++11 -c -o $@ $<
wfb_rx: src/rx.o src/radiotap.o src/fec.o src/wifibroadcast.o
- $(CXX) -o $@ $^ $(_LDFLAGS)
+ $(CXX) -o $@ $^ $(LDFLAGS)
wfb_tx: src/tx.o src/fec.o src/wifibroadcast.o
- $(CXX) -o $@ $^ $(_LDFLAGS)
+ $(CXX) -o $@ $^ $(LDFLAGS)
wfb_keygen: src/keygen.o
- $(CC) -o $@ $^ $(_LDFLAGS)
-
-test:
- PYTHONPATH=`pwd` trial3 wfb_ng.tests
-
-rpm: all_bin env
- rm -rf dist
- ./env/bin/python ./setup.py bdist_rpm --force-arch $(ARCH)
- rm -rf wfb_ng.egg-info/
-
-deb: all_bin env
- rm -rf deb_dist
- ./env/bin/python ./setup.py --command-packages=stdeb.command bdist_deb
- rm -rf wfb_ng.egg-info/ wfb-ng-$(VERSION).tar.gz
-
-bdist: all_bin
- rm -rf dist
- $(PYTHON) ./setup.py bdist --plat-name linux-$(ARCH)
- rm -rf wfb_ng.egg-info/
+ $(CC) -o $@ $^ $(LDFLAGS)
clean:
- rm -rf env wfb_rx wfb_tx wfb_keygen dist deb_dist build wfb_ng.egg-info wfb-ng-*.tar.gz _trial_temp *~ src/*.o
+ rm -rf wfb_rx wfb_tx wfb_keygen *~ src/*.o
+all: all_bin
env:
virtualenv env --python=$(PYTHON)

View File

@ -1,5 +1,8 @@
config BR2_PACKAGE_WIFIBROADCAST
bool "wifibroadcast"
select BR2_PACKAGE_LIBPCAP
select BR2_PACKAGE_LIBSODIUM
select BR2_PACKAGE_IW
help
Transmit hd video over wifi for the UAV.

View File

@ -27,8 +27,9 @@ detect_wifi_card() {
;;
"148f:3070")
driver="ralink"
modprobe rt2800usb
modprobe mac80211
modprobe rt2x00usb
modprobe rt2800usb
;;
esac
done

View File

@ -13,7 +13,7 @@ start_telemetry() {
ln -s /usr/bin/wfb_tx /usr/bin/telemetry_tx ; chmod +x /usr/bin/telemetry_tx
else
if [ ${one_way} = "false" ]; then
telemetry_rx -p ${stream_rx} -u ${port_rx} -K ${keydir}/drone.key -k ${fec_k} -n ${fec_n} -i ${link_id} ${wlan} &
telemetry_rx -p ${stream_rx} -u ${port_rx} -K ${keydir}/drone.key -i ${link_id} ${wlan} &
fi
telemetry_tx -p ${stream_tx} -u ${port_tx} -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} -L ${ldpc} -G ${guard_interval} -k ${fec_k} -n ${fec_n} -T ${fec_timeout} -i ${link_id} ${wlan} &
fi
@ -21,20 +21,24 @@ start_telemetry() {
case "$1" in
start)
echo "Loading MAVLink telemetry service..."
echo "Loading MAVLink telemetry service..."
if [ ${router} -eq 1 ]; then
/usr/bin/mavlink-routerd &
else
mavfwd --master ${serial} --baudrate ${baud} --out 127.0.0.1:${port_tx} --in 127.0.0.1:${port_rx} &
fi
start_telemetry
start_telemetry
echo "Done."
;;
echo "Done."
;;
stop)
echo "Stopping telemetry service..."
kill -9 $(pidof telemetry_rx)
kill -9 $(pidof telemetry_tx)
;;
echo "Stopping telemetry service..."
kill -9 $(pidof telemetry_rx)
kill -9 $(pidof telemetry_tx)
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
echo "Usage: $0 {start|stop}"
exit 1
esac

View File

@ -15,3 +15,5 @@ fec_n=2
fec_timeout=0
guard_interval=long
one_way=false
### router: use simple mavfwd (0) or classic mavlink-routerd (1)
router=0

View File

@ -27,6 +27,8 @@ all_other() {
# change fps 25 -> 30
sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/imx307_i2c_2l_1080p.ini
sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/smtsec_imx307_i2c_4l_1080p.ini
# disable mavlink routerd autostart
sed -i "s!/usr/bin/mavlink-routerd &!#/usr/bin/mavlink-routerd &!g" /etc/init.d/S97mavlink
# majestic basic settings
${cli} -s .isp.slowShutter disabled
${cli} -s .isp.drc 350
@ -34,7 +36,7 @@ all_other() {
# ${cli} -s .isp.dis true
${cli} -s .image.contrast 50
${cli} -s .image.luminance 50
${cli} -s .video0.bitrate 5120
${cli} -s .video0.bitrate 4096
${cli} -s .video0.codec h264
${cli} -s .video0.rcMode cbr
${cli} -s .video0.gopSize 0.2
@ -43,7 +45,7 @@ all_other() {
${cli} -s .jpeg.enabled false
# lowdelay support only imx307 sensor
if [ ${sensor} = "imx307" ]; then
# ${cli} -s .video0.size 1280x720
${cli} -s .video0.size 1280x720
# ${cli} -s .video0.fps 30
${cli} -s .isp.lowDelay true
# ${cli} -s .video0.sliceUnits 4

View File

@ -6,12 +6,6 @@
daemon=1
```
указать используемый драйвер:
```
driver=rtl или driver=ath
```
нужный wlan если их больше одного, если адаптер один, то оставить как есть:
```
@ -27,21 +21,14 @@ region=BO
канал:
```
channel=6
channel=14
```
В конец /etc/majestic.yaml добавить секцию:
```
outgoing:
- udp://127.0.0.1:5600
```
Выполнить настройки majestic, отключить все лишнее кроме необходимого потока, выполнить настройки по битрейту и ключевым кадрам, после чего перезапустить камеру.
Выполнить настройки majestic по разрешению, битрейту и ключевым кадрам, после чего перезапустить камеру.
При первом запуске сгенерируются ключи drone.key и gs.key, ключ для наземной станции находится по пути /etc/gs.key, копируем его.
Изменить канал при необходимости можно стандартными командами из консоли:
Изменить канал (до первой перезагрузки), при необходимости, можно стандартными командами из консоли:
```
iwconfig wlan0 channel X
@ -51,8 +38,6 @@ iwconfig wlan0 channel X
Включается в /etc/wfb.conf, настройки в /etc/telemetry.conf
Важно! Для работы телеметрии, придется экспериментировать с выделением памяти для системы. Отключить ВСЕ не нужное в камере кроме основного потока, проверить сколько свободной памяти осталось после выделения видео подсистеме и передать свободную в OS. (для GK7205v300: fw_setenv osmem 64M)
P.S. Это минимальная обвязка, возможно что-то не учтено или сделано не так как хотелось бы, все предложения приветствуются в issues.

View File

@ -3,9 +3,8 @@
# wifibroadcast
#
################################################################################
WIFIBROADCAST_VERSION = c00f4ca0817919e6ba5780212781e03dada206a6
WIFIBROADCAST_SITE = $(call github,svpcom,wfb-ng,$(WIFIBROADCAST_VERSION))
WIFIBROADCAST_VERSION = 23.01
WIFIBROADCAST_SITE = $(call github,svpcom,wfb-ng,wfb-ng-$(WIFIBROADCAST_VERSION))
WIFIBROADCAST_LICENSE = GPL-2.0
WIFIBROADCAST_DEPENDENCIES += libpcap libsodium iw