mirror of https://github.com/OpenIPC/firmware.git
rework fpv scripts for use wfb or lte transport (#693)
parent
a38084bab6
commit
fa92f2a2ae
|
@ -3,6 +3,7 @@ source "$BR2_EXTERNAL_GOKE_PATH/package/goke_patcher/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/aura-httpd/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/aura-httpd/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/baresip-openipc/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/baresip-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/comgt/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/comgt/Config.in"
|
||||||
|
source "$BR2_EXTERNAL_GOKE_PATH/package/datalink/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/dropbear-openipc/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/dropbear-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/df_sdwan_edge/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/df_sdwan_edge/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/fdk-aac-openipc/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/fdk-aac-openipc/Config.in"
|
||||||
|
|
|
@ -99,6 +99,7 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
||||||
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
||||||
|
|
||||||
# FPV
|
# FPV
|
||||||
|
BR2_PACKAGE_DATALINK=y
|
||||||
BR2_PACKAGE_WIFIBROADCAST=y
|
BR2_PACKAGE_WIFIBROADCAST=y
|
||||||
BR2_PACKAGE_MAVLINK_ROUTER=y
|
BR2_PACKAGE_MAVLINK_ROUTER=y
|
||||||
BR2_PACKAGE_MAVFWD=y
|
BR2_PACKAGE_MAVFWD=y
|
||||||
|
@ -107,7 +108,5 @@ BR2_PACKAGE_MAVFWD=y
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
||||||
#
|
|
||||||
# Compression and decompression
|
# Compression and decompression
|
||||||
#
|
|
||||||
BR2_PACKAGE_LIBZIP=y
|
BR2_PACKAGE_LIBZIP=y
|
||||||
|
|
|
@ -99,15 +99,17 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
||||||
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
||||||
|
|
||||||
# FPV
|
# FPV
|
||||||
|
BR2_PACKAGE_DATALINK=y
|
||||||
BR2_PACKAGE_WIFIBROADCAST=y
|
BR2_PACKAGE_WIFIBROADCAST=y
|
||||||
BR2_PACKAGE_MAVLINK_ROUTER=y
|
BR2_PACKAGE_MAVLINK_ROUTER=y
|
||||||
BR2_PACKAGE_MAVFWD=y
|
BR2_PACKAGE_MAVFWD=y
|
||||||
|
|
||||||
|
# ZEROTIER
|
||||||
|
# BR2_PACKAGE_ZEROTIER_ONE is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
||||||
#
|
|
||||||
# Compression and decompression
|
# Compression and decompression
|
||||||
#
|
|
||||||
BR2_PACKAGE_LIBZIP=y
|
BR2_PACKAGE_LIBZIP=y
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../../general/package/datalink
|
|
@ -5,6 +5,7 @@ source "$BR2_EXTERNAL_HISILICON_PATH/package/hisi_patcher/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/aura-httpd/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/aura-httpd/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/baresip-openipc/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/baresip-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/comgt/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/comgt/Config.in"
|
||||||
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/datalink/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/dropbear-openipc/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/dropbear-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/f2fs-tools-openipc/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/f2fs-tools-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/fdk-aac-openipc/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/fdk-aac-openipc/Config.in"
|
||||||
|
|
|
@ -99,6 +99,7 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
||||||
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
||||||
|
|
||||||
# FPV
|
# FPV
|
||||||
|
BR2_PACKAGE_DATALINK=y
|
||||||
BR2_PACKAGE_WIFIBROADCAST=y
|
BR2_PACKAGE_WIFIBROADCAST=y
|
||||||
BR2_PACKAGE_MAVLINK_ROUTER=y
|
BR2_PACKAGE_MAVLINK_ROUTER=y
|
||||||
BR2_PACKAGE_MAVFWD=y
|
BR2_PACKAGE_MAVFWD=y
|
||||||
|
@ -107,7 +108,5 @@ BR2_PACKAGE_MAVFWD=y
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
||||||
#
|
|
||||||
# Compression and decompression
|
# Compression and decompression
|
||||||
#
|
|
||||||
BR2_PACKAGE_LIBZIP=y
|
BR2_PACKAGE_LIBZIP=y
|
||||||
|
|
|
@ -99,15 +99,17 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
||||||
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
||||||
|
|
||||||
# FPV
|
# FPV
|
||||||
|
BR2_PACKAGE_DATALINK=y
|
||||||
BR2_PACKAGE_WIFIBROADCAST=y
|
BR2_PACKAGE_WIFIBROADCAST=y
|
||||||
BR2_PACKAGE_MAVLINK_ROUTER=y
|
BR2_PACKAGE_MAVLINK_ROUTER=y
|
||||||
BR2_PACKAGE_MAVFWD=y
|
BR2_PACKAGE_MAVFWD=y
|
||||||
|
|
||||||
|
# ZEROTIER
|
||||||
|
# BR2_PACKAGE_ZEROTIER_ONE is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
||||||
#
|
|
||||||
# Compression and decompression
|
# Compression and decompression
|
||||||
#
|
|
||||||
BR2_PACKAGE_LIBZIP=y
|
BR2_PACKAGE_LIBZIP=y
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../../general/package/datalink
|
|
@ -0,0 +1,4 @@
|
||||||
|
config BR2_PACKAGE_DATALINK
|
||||||
|
bool "datalink"
|
||||||
|
help
|
||||||
|
Base package for build video link over wifi or lte.
|
|
@ -0,0 +1,27 @@
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# datalink
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
DATALINK_VERSION =
|
||||||
|
DATALINK_SITE =
|
||||||
|
DATALINK_LICENSE = GPL-2.0
|
||||||
|
|
||||||
|
define DATALINK_INSTALL_TARGET_CMDS
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
||||||
|
cp ../general/package/datalink/files/datalink.conf $(TARGET_DIR)/etc
|
||||||
|
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
||||||
|
cp ../general/package/datalink/files/telemetry.conf $(TARGET_DIR)/etc
|
||||||
|
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
|
||||||
|
cp ../general/package/datalink/files/S98datalink $(TARGET_DIR)/etc/init.d
|
||||||
|
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
||||||
|
cp ../general/package/datalink/files/telemetry $(TARGET_DIR)/usr/bin
|
||||||
|
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
||||||
|
cp ../general/package/datalink/files/tweaksys $(TARGET_DIR)/usr/bin
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(generic-package))
|
|
@ -0,0 +1,55 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Start fpv datalink
|
||||||
|
#
|
||||||
|
|
||||||
|
. /etc/datalink.conf
|
||||||
|
|
||||||
|
chip=$(ipcinfo -c)
|
||||||
|
cli="yaml-cli -i /etc/majestic.yaml"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
if ! [ -f /etc/system.ok ]; then
|
||||||
|
killall majestic
|
||||||
|
tweaksys ${chip}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Starting FPV datalink..."
|
||||||
|
|
||||||
|
if [ ${transport} = "lte" ]; then
|
||||||
|
if [ ${usb_modem} = "true" ]; then
|
||||||
|
echo "Starting lte modem configuration..."
|
||||||
|
echo "Running usb_modswitch or other shit here..."
|
||||||
|
fi
|
||||||
|
# for the future
|
||||||
|
#cli -s .outgoing.url1 udp://${gs_ipaddr}:${gs_port}
|
||||||
|
if [ ${use_zt} = "true" ]; then
|
||||||
|
echo "Starting ZeroTier-One daemon..."
|
||||||
|
/usr/sbin/zerotier-one -d &
|
||||||
|
if [ ! -f /var/lib/zerotier-one/networks.d/${zt_netid}.conf ]; then
|
||||||
|
sleep 8
|
||||||
|
zerotier-cli join ${zt_netid} &> /dev/null
|
||||||
|
echo "Don't forget authorize in the my.zerotier.com!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ ${telemetry} = "true" ]; then
|
||||||
|
/usr/bin/telemetry start
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Starting wifibroadcast service..."
|
||||||
|
/usr/bin/wifibroadcast start
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
echo "Stopping all services..."
|
||||||
|
kill -9 $(pidof wfb_tx)
|
||||||
|
kill -9 $(pidof telemetry_rx)
|
||||||
|
kill -9 $(pidof telemetry_tx)
|
||||||
|
kill -9 $(pidof mavlink-routerd)
|
||||||
|
kill -9 $(pidof mavfwd)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop}"
|
||||||
|
exit 1
|
||||||
|
esac
|
|
@ -0,0 +1,11 @@
|
||||||
|
daemon=1
|
||||||
|
transport=wfb
|
||||||
|
telemetry=true
|
||||||
|
|
||||||
|
usb_modem=false
|
||||||
|
gs_ipaddr=127.0.0.1
|
||||||
|
gs_port=5600
|
||||||
|
|
||||||
|
# firmware for 8Mb flash do not contain zerotier
|
||||||
|
use_zt=false
|
||||||
|
zt_netid=
|
|
@ -3,6 +3,7 @@
|
||||||
# Start telemetry
|
# Start telemetry
|
||||||
#
|
#
|
||||||
|
|
||||||
|
. /etc/datalink.conf
|
||||||
. /etc/telemetry.conf
|
. /etc/telemetry.conf
|
||||||
|
|
||||||
keydir="/etc"
|
keydir="/etc"
|
||||||
|
@ -23,20 +24,22 @@ case "$1" in
|
||||||
start)
|
start)
|
||||||
echo "Loading MAVLink telemetry service..."
|
echo "Loading MAVLink telemetry service..."
|
||||||
|
|
||||||
if [ ${router} -eq 1 ]; then
|
if [ ${router} -eq 1 ] || [ ${transport} = "lte" ]; then
|
||||||
/usr/bin/mavlink-routerd &
|
/usr/bin/mavlink-routerd &
|
||||||
else
|
else
|
||||||
mavfwd --master ${serial} --baudrate ${baud} --out 127.0.0.1:${port_tx} --in 127.0.0.1:${port_rx} &
|
mavfwd --master ${serial} --baudrate ${baud} --out 127.0.0.1:${port_tx} --in 127.0.0.1:${port_rx} &
|
||||||
fi
|
fi
|
||||||
|
if [ ${transport} = "wfb" ]; then
|
||||||
start_telemetry
|
start_telemetry
|
||||||
|
fi
|
||||||
echo "Done."
|
echo "Done."
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
echo "Stopping telemetry service..."
|
echo "Stopping telemetry services..."
|
||||||
kill -9 $(pidof telemetry_rx)
|
kill -9 $(pidof telemetry_rx)
|
||||||
kill -9 $(pidof telemetry_tx)
|
kill -9 $(pidof telemetry_tx)
|
||||||
|
kill -9 $(pidof mavlink-routerd)
|
||||||
|
kill -9 $(pidof mavfwd)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 {start|stop}"
|
echo "Usage: $0 {start|stop}"
|
|
@ -1,6 +1,9 @@
|
||||||
serial=/dev/ttyAMA0
|
serial=/dev/ttyAMA0
|
||||||
wlan=wlan0
|
|
||||||
baud=115200
|
baud=115200
|
||||||
|
### router: use simple mavfwd (0) or classic mavlink-routerd (1)
|
||||||
|
router=0
|
||||||
|
|
||||||
|
wlan=wlan0
|
||||||
bandwidth=20
|
bandwidth=20
|
||||||
stbc=1
|
stbc=1
|
||||||
ldpc=1
|
ldpc=1
|
||||||
|
@ -15,5 +18,3 @@ fec_n=2
|
||||||
fec_timeout=0
|
fec_timeout=0
|
||||||
guard_interval=long
|
guard_interval=long
|
||||||
one_way=false
|
one_way=false
|
||||||
### router: use simple mavfwd (0) or classic mavlink-routerd (1)
|
|
||||||
router=0
|
|
|
@ -50,6 +50,11 @@ all_other() {
|
||||||
${cli} -s .isp.lowDelay true
|
${cli} -s .isp.lowDelay true
|
||||||
# ${cli} -s .video0.sliceUnits 4
|
# ${cli} -s .video0.sliceUnits 4
|
||||||
fi
|
fi
|
||||||
|
# tune socket buffer
|
||||||
|
cat >> /etc/sysctl.conf << EOF
|
||||||
|
net.core.rmem_default=524288
|
||||||
|
net.core.rmem_max=2048000
|
||||||
|
EOF
|
||||||
# add outgoing rtp stream to udp
|
# add outgoing rtp stream to udp
|
||||||
cat >> /etc/majestic.yaml << EOF
|
cat >> /etc/majestic.yaml << EOF
|
||||||
outgoing:
|
outgoing:
|
|
@ -3,6 +3,7 @@ config BR2_PACKAGE_WIFIBROADCAST
|
||||||
select BR2_PACKAGE_LIBPCAP
|
select BR2_PACKAGE_LIBPCAP
|
||||||
select BR2_PACKAGE_LIBSODIUM
|
select BR2_PACKAGE_LIBSODIUM
|
||||||
select BR2_PACKAGE_IW
|
select BR2_PACKAGE_IW
|
||||||
|
select BR2_PACKAGE_DATALINK
|
||||||
help
|
help
|
||||||
Transmit hd video over wifi for the UAV.
|
Transmit hd video over wifi for the UAV.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
daemon=1
|
|
||||||
wlan=wlan0
|
wlan=wlan0
|
||||||
region=BO
|
region=BO
|
||||||
channel=14
|
channel=14
|
||||||
|
@ -15,4 +14,3 @@ fec_k=8
|
||||||
fec_n=12
|
fec_n=12
|
||||||
fec_timeout=0
|
fec_timeout=0
|
||||||
guard_interval=long
|
guard_interval=long
|
||||||
telemetry=true
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Start wifibroadcast
|
# Start wifibroadcast
|
||||||
#
|
#
|
||||||
|
|
||||||
|
. /etc/datalink.conf
|
||||||
. /etc/wfb.conf
|
. /etc/wfb.conf
|
||||||
|
|
||||||
keydir="/etc"
|
keydir="/etc"
|
||||||
|
@ -83,11 +84,6 @@ start_wfb() {
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
if ! [ -f /etc/system.ok ]; then
|
|
||||||
killall majestic
|
|
||||||
/usr/bin/tweaksys ${chip}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${daemon} -eq 1 ]; then
|
if [ ${daemon} -eq 1 ]; then
|
||||||
|
|
||||||
echo "Loading modules and wifi card driver..."
|
echo "Loading modules and wifi card driver..."
|
||||||
|
@ -124,8 +120,12 @@ case "$1" in
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
echo "Stopping wifibroadcast service..."
|
echo "Stopping all services..."
|
||||||
kill -9 $(pidof wfb_tx)
|
kill -9 $(pidof wfb_tx)
|
||||||
|
kill -9 $(pidof telemetry_rx)
|
||||||
|
kill -9 $(pidof telemetry_tx)
|
||||||
|
kill -9 $(pidof mavlink-routerd)
|
||||||
|
kill -9 $(pidof mavfwd)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 {start|stop}"
|
echo "Usage: $0 {start|stop}"
|
|
@ -1,43 +0,0 @@
|
||||||
# Настройка
|
|
||||||
|
|
||||||
В конфигурационном файле /etc/wfb.conf включить автозапуск сервиса:
|
|
||||||
|
|
||||||
```
|
|
||||||
daemon=1
|
|
||||||
```
|
|
||||||
|
|
||||||
нужный wlan если их больше одного, если адаптер один, то оставить как есть:
|
|
||||||
|
|
||||||
```
|
|
||||||
wlan=wlan0
|
|
||||||
```
|
|
||||||
|
|
||||||
страна:
|
|
||||||
|
|
||||||
```
|
|
||||||
region=BO
|
|
||||||
```
|
|
||||||
|
|
||||||
канал:
|
|
||||||
|
|
||||||
```
|
|
||||||
channel=14
|
|
||||||
```
|
|
||||||
|
|
||||||
Выполнить настройки majestic по разрешению, битрейту и ключевым кадрам, после чего перезапустить камеру.
|
|
||||||
|
|
||||||
При первом запуске сгенерируются ключи drone.key и gs.key, ключ для наземной станции находится по пути /etc/gs.key, копируем его.
|
|
||||||
|
|
||||||
Изменить канал (до первой перезагрузки), при необходимости, можно стандартными командами из консоли:
|
|
||||||
|
|
||||||
```
|
|
||||||
iwconfig wlan0 channel X
|
|
||||||
```
|
|
||||||
|
|
||||||
# Телеметрия
|
|
||||||
|
|
||||||
Включается в /etc/wfb.conf, настройки в /etc/telemetry.conf
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
P.S. Это минимальная обвязка, возможно что-то не учтено или сделано не так как хотелось бы, все предложения приветствуются в issues.
|
|
|
@ -25,17 +25,8 @@ define WIFIBROADCAST_INSTALL_TARGET_CMDS
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
||||||
cp ../general/package/wifibroadcast/files/wfb.conf $(TARGET_DIR)/etc
|
cp ../general/package/wifibroadcast/files/wfb.conf $(TARGET_DIR)/etc
|
||||||
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
|
|
||||||
cp ../general/package/wifibroadcast/files/S98wfb $(TARGET_DIR)/etc/init.d
|
|
||||||
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
||||||
cp ../general/package/wifibroadcast/files/telemetry $(TARGET_DIR)/usr/bin
|
cp ../general/package/wifibroadcast/files/wifibroadcast $(TARGET_DIR)/usr/bin
|
||||||
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
|
||||||
cp ../general/package/wifibroadcast/files/tweaksys $(TARGET_DIR)/usr/bin
|
|
||||||
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
|
||||||
cp ../general/package/wifibroadcast/files/telemetry.conf $(TARGET_DIR)/etc
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(generic-package))
|
$(eval $(generic-package))
|
||||||
|
|
Loading…
Reference in New Issue