mirror of https://github.com/OpenIPC/firmware.git
commit
ef3e9a0bda
br-ext-chip-sigmastar/configs
general/package
majestic-plugins
majestic
mavfwd
mavlink-router
rtl8733bu-openipc
wifibroadcast-ng
|
@ -31,6 +31,8 @@ BR2_PACKAGE_UBOOT_TOOLS=y
|
||||||
BR2_PACKAGE_ZLIB=y
|
BR2_PACKAGE_ZLIB=y
|
||||||
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
|
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
|
||||||
BR2_PACKAGE_WIRELESS_TOOLS=y
|
BR2_PACKAGE_WIRELESS_TOOLS=y
|
||||||
|
BR2_PACKAGE_WPA_SUPPLICANT=y
|
||||||
|
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
|
||||||
BR2_TARGET_ROOTFS_CPIO=y
|
BR2_TARGET_ROOTFS_CPIO=y
|
||||||
BR2_TARGET_ROOTFS_SQUASHFS=y
|
BR2_TARGET_ROOTFS_SQUASHFS=y
|
||||||
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
|
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
|
||||||
|
@ -61,7 +63,7 @@ BR2_PACKAGE_MBEDTLS_OPENIPC=y
|
||||||
BR2_PACKAGE_MSPOSD=y
|
BR2_PACKAGE_MSPOSD=y
|
||||||
BR2_PACKAGE_OPUS_OPENIPC=y
|
BR2_PACKAGE_OPUS_OPENIPC=y
|
||||||
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
|
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
|
||||||
BR2_PACKAGE_RTL88X2EU_OPENIPC=y
|
BR2_PACKAGE_RTL8733BU_OPENIPC=y
|
||||||
BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
||||||
BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6E=y
|
BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6E=y
|
||||||
BR2_PACKAGE_VTUND_OPENIPC=y
|
BR2_PACKAGE_VTUND_OPENIPC=y
|
||||||
|
|
|
@ -4,9 +4,12 @@
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
MAJESTIC_PLUGINS_SITE = $(call github,openipc,majestic-plugins,$(MAJESTIC_PLUGINS_VERSION))
|
MAJESTIC_PLUGINS_SITE_METHOD = git
|
||||||
|
MAJESTIC_PLUGINS_SITE = https://github.com/openipc/majestic-plugins
|
||||||
MAJESTIC_PLUGINS_VERSION = HEAD
|
MAJESTIC_PLUGINS_VERSION = HEAD
|
||||||
|
|
||||||
|
MAJESTIC_PLUGINS_GIT_SUBMODULES = YES
|
||||||
|
|
||||||
define MAJESTIC_PLUGINS_BUILD_CMDS
|
define MAJESTIC_PLUGINS_BUILD_CMDS
|
||||||
$(MAKE) CC=$(TARGET_CC) TARGET=$(OPENIPC_SOC_VENDOR) -C $(@D) -B
|
$(MAKE) CC=$(TARGET_CC) TARGET=$(OPENIPC_SOC_VENDOR) -C $(@D) -B
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
config BR2_PACKAGE_MAJESTIC
|
config BR2_PACKAGE_MAJESTIC
|
||||||
bool "Majestic streamer"
|
bool "Majestic streamer"
|
||||||
default n
|
|
||||||
help
|
help
|
||||||
Tiny but powerful IPC streaming software
|
Tiny but powerful IPC streaming software
|
||||||
(non-commercial version for personal use only)
|
(non-commercial version for personal use only)
|
||||||
|
|
|
@ -5,9 +5,6 @@ PIDFILE="/var/run/$DAEMON.pid"
|
||||||
DAEMON_ARGS="-s"
|
DAEMON_ARGS="-s"
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
ulimit -c unlimited
|
|
||||||
echo "/tmp/core.majestic" > /proc/sys/kernel/core_pattern
|
|
||||||
|
|
||||||
echo -n "Starting $DAEMON: "
|
echo -n "Starting $DAEMON: "
|
||||||
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "$DAEMON" -- $DAEMON_ARGS
|
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "$DAEMON" -- $DAEMON_ARGS
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
|
|
|
@ -19,11 +19,6 @@ MAJESTIC_DEPENDENCIES += \
|
||||||
opus-openipc \
|
opus-openipc \
|
||||||
json-c
|
json-c
|
||||||
|
|
||||||
MAJESTIC_FILTER = hi3516ev200 gk7205v200 infinity6b0 infinity6e t31
|
|
||||||
ifneq ($(filter $(MAJESTIC_FILTER),$(MAJESTIC_FAMILY)),)
|
|
||||||
MAJESTIC_DEPENDENCIES += majestic-plugins
|
|
||||||
endif
|
|
||||||
|
|
||||||
define MAJESTIC_INSTALL_TARGET_CMDS
|
define MAJESTIC_INSTALL_TARGET_CMDS
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
||||||
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(@D)/majestic.yaml
|
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(@D)/majestic.yaml
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
config BR2_PACKAGE_MAVFWD
|
config BR2_PACKAGE_MAVFWD
|
||||||
bool "mavfwd"
|
bool "mavfwd"
|
||||||
default n
|
|
||||||
select BR2_PACKAGE_LIBEVENT_OPENIPC
|
|
||||||
select BR2_PACKAGE_DATALINK
|
|
||||||
help
|
help
|
||||||
mavfwd - Cool and awesome mavlink forwader for FPV
|
Simple mavlink forwarder.
|
||||||
|
|
||||||
https://github.com/OpenIPC/mavfwd
|
https://github.com/OpenIPC/mavfwd
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
config BR2_PACKAGE_MAVLINK_ROUTER
|
config BR2_PACKAGE_MAVLINK_ROUTER
|
||||||
bool "mavlink-router"
|
bool "mavlink-router"
|
||||||
select BR2_PACKAGE_DATALINK
|
|
||||||
help
|
help
|
||||||
MAVLink Router is an application to distribute MAVLink messages between multiple endpoints (connections). It distributes packets to a single port or multiple endpoints depending on the target address. Connections can be made via UART, UDP or TCP.
|
MAVLink Router is an application to distribute MAVLink messages between multiple endpoints (connections). It distributes packets to a single port or multiple endpoints depending on the target address. Connections can be made via UART, UDP or TCP.
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
RTL8733BU_OPENIPC_SITE = $(call github,openipc,realtek-wlan,$(RTL8733BU_OPENIPC_VERSION))
|
RTL8733BU_OPENIPC_SITE = $(call github,openipc,realtek-wlan,$(RTL8733BU_OPENIPC_VERSION))
|
||||||
ifeq ($(OPENIPC_VARIANT),fpv)
|
ifneq ($(findstring fpv,$(OPENIPC_VARIANT)),)
|
||||||
RTL8733BU_OPENIPC_VERSION = rtl8733bu_fpv
|
RTL8733BU_OPENIPC_VERSION = rtl8733bu_fpv
|
||||||
else
|
else
|
||||||
RTL8733BU_OPENIPC_VERSION = rtl8733bu
|
RTL8733BU_OPENIPC_VERSION = rtl8733bu
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
config BR2_PACKAGE_RUBYFPV
|
config BR2_PACKAGE_RUBYFPV
|
||||||
bool "rubyfpv"
|
bool "rubyfpv"
|
||||||
select BR2_PACKAGE_IW
|
select BR2_PACKAGE_IW
|
||||||
default n
|
|
||||||
help
|
help
|
||||||
Ruby package
|
Ruby package
|
||||||
|
|
||||||
|
|
|
@ -6,24 +6,27 @@
|
||||||
chip=$(ipcinfo -c)
|
chip=$(ipcinfo -c)
|
||||||
fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2)
|
fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2)
|
||||||
echo "Chip: " > /tmp/ruby_boot.log
|
echo "Chip: " > /tmp/ruby_boot.log
|
||||||
echo ${chip} >> /tmp/ruby_boot.log
|
echo "$chip" >> /tmp/ruby_boot.log
|
||||||
echo "Firmware: " >> /tmp/ruby_boot.log
|
echo "Firmware: " >> /tmp/ruby_boot.log
|
||||||
echo ${fw} >> /tmp/ruby_boot.log
|
echo "$fw" >> /tmp/ruby_boot.log
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
if ! [ -f /etc/system.ok ]; then
|
if [ ! -f /etc/system.ok ]; then
|
||||||
tweaksys ${chip}
|
tweaksys "$chip"
|
||||||
fi
|
exit 0
|
||||||
|
fi
|
||||||
|
echo "Starting Ruby..." >> /tmp/ruby_boot.log
|
||||||
|
/usr/sbin/ruby_start &
|
||||||
|
;;
|
||||||
|
|
||||||
echo "Starting Ruby..." >> /tmp/ruby_boot.log
|
stop)
|
||||||
/usr/sbin/ruby_start &
|
echo "Stopping Ruby..." >> /tmp/ruby_boot.log
|
||||||
;;
|
/usr/sbin/ruby_stop.sh
|
||||||
stop)
|
;;
|
||||||
echo "Stopping Ruby..." >> /tmp/ruby_boot.log
|
|
||||||
/usr/sbin/ruby_stop.sh
|
*)
|
||||||
;;
|
echo "Usage: $0 {start|stop}"
|
||||||
*)
|
exit 1
|
||||||
echo "Usage: $0 {start|stop}"
|
;;
|
||||||
exit 1
|
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -0,0 +1,187 @@
|
||||||
|
#!/bin/sh
|
||||||
|
chip=$(ipcinfo -c)
|
||||||
|
family=$(ipcinfo -f)
|
||||||
|
vendor=$(ipcinfo -v)
|
||||||
|
|
||||||
|
if [ ! "$chip" = "hi3536dv100" ]; then
|
||||||
|
sensor=$(ipcinfo -s)
|
||||||
|
fi
|
||||||
|
|
||||||
|
basic() {
|
||||||
|
# set boot delay
|
||||||
|
fw_setenv bootdelay 0
|
||||||
|
|
||||||
|
# free uart for telemetry
|
||||||
|
sed -i "s!console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL!#console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL!g" /etc/inittab
|
||||||
|
|
||||||
|
# tune socket buffer
|
||||||
|
echo "net.core.rmem_default=512000" >> /etc/sysctl.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
prefix=${family}
|
||||||
|
|
||||||
|
hisi_goke() {
|
||||||
|
if [ "$vendor" = "hisilicon" ]; then
|
||||||
|
prefix="open"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# remove unneeded modules
|
||||||
|
sed -i "s!insmod ${prefix}_rgn.ko!#insmod ${prefix}_rgn.ko!g" "/usr/bin/load_${vendor}"
|
||||||
|
sed -i "s!insmod ${prefix}_jpege.ko!#insmod ${prefix}_jpege.ko!g" "/usr/bin/load_${vendor}"
|
||||||
|
sed -i "s!insmod ${prefix}_ive.ko save_power=0!#insmod ${prefix}_ive.ko save_power=0!g" "/usr/bin/load_${vendor}"
|
||||||
|
sed -i "s!insmod ${prefix}_aio.ko!#insmod ${prefix}_aio.ko!g" "/usr/bin/load_${vendor}"
|
||||||
|
sed -i "s!insmod ${prefix}_ai.ko!#insmod ${prefix}_ai.ko!g" "/usr/bin/load_${vendor}"
|
||||||
|
sed -i "s!insmod ${prefix}_ao.ko!#insmod ${prefix}_ao.ko!g" "/usr/bin/load_${vendor}"
|
||||||
|
sed -i "s!insmod ${prefix}_aenc.ko!#insmod ${prefix}_aenc.ko!g" "/usr/bin/load_${vendor}"
|
||||||
|
sed -i "s!insmod ${prefix}_adec.ko!#insmod ${prefix}_adec.ko!g" "/usr/bin/load_${vendor}"
|
||||||
|
sed -i "s!insmod ${prefix}_acodec.ko!#insmod ${prefix}_acodec.ko!g" "/usr/bin/load_${vendor}"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/imx335_i2c_4M.ini
|
||||||
|
}
|
||||||
|
|
||||||
|
sigmastar() {
|
||||||
|
sed -i "s!serial=/dev/ttyAMA0!serial=/dev/ttyS0!g" /etc/telemetry.conf
|
||||||
|
sed -i "s!Device = /dev/ttyAMA0!Device = /dev/ttyS0!g" /etc/mavlink.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
majestic_generic() {
|
||||||
|
# digital image stabilization
|
||||||
|
#cli -s .isp.dis true
|
||||||
|
|
||||||
|
cli -s .isp.slowShutter disabled
|
||||||
|
cli -s .image.contrast 50
|
||||||
|
cli -s .image.luminance 50
|
||||||
|
cli -s .video0.size 1920x1080
|
||||||
|
cli -s .video0.fps 30
|
||||||
|
cli -s .video0.bitrate 5120
|
||||||
|
cli -s .video0.codec h264
|
||||||
|
cli -s .video0.rcMode cbr
|
||||||
|
cli -s .video0.gopSize 1.5
|
||||||
|
|
||||||
|
# lowdelay support only imx307 sensor
|
||||||
|
if [ "$sensor" = "imx307" ]; then
|
||||||
|
cli -s .isp.lowDelay true
|
||||||
|
#cli -s .video0.sliceUnits 4
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$sensor" = "imx335" ]; then
|
||||||
|
cli -s .isp.drc 350
|
||||||
|
cli -s .isp.sensorConfig /etc/sensors/imx335_i2c_4M.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
cli -s .hls.enabled false
|
||||||
|
cli -s .netip.enabled false
|
||||||
|
cli -s .jpeg.enabled false
|
||||||
|
}
|
||||||
|
|
||||||
|
majestic_sigmastar() {
|
||||||
|
cli -s .isp.sensorConfig /etc/sensors/imx415_fpv.bin
|
||||||
|
cli -s .isp.exposure 10
|
||||||
|
cli -s .video0.codec h265
|
||||||
|
cli -s .video0.size 1920x1080
|
||||||
|
cli -s .video0.fps 60
|
||||||
|
cli -s .video0.rcMode cbr
|
||||||
|
cli -s .jpeg.enabled false
|
||||||
|
}
|
||||||
|
|
||||||
|
streamer() {
|
||||||
|
if [ -f /usr/bin/majestic ]; then
|
||||||
|
if [ "$vendor" = "sigmastar" ]; then
|
||||||
|
majestic_sigmastar
|
||||||
|
else
|
||||||
|
majestic_generic
|
||||||
|
fi
|
||||||
|
|
||||||
|
# outgoing rtp stream
|
||||||
|
cli -s .outgoing.enabled true
|
||||||
|
cli -s .outgoing.server udp://127.0.0.1:5600
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /usr/bin/venc ]; then
|
||||||
|
if [ "$sensor" = "imx335" ]; then
|
||||||
|
sed -i "s!version=200_imx307B!version=300_imx335B!g" /etc/venc.conf
|
||||||
|
sed -i "s!size=720p!size=1292x972!g" /etc/venc.conf
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
finish() {
|
||||||
|
# complete tweaks and add flag
|
||||||
|
fw_setenv wlandev
|
||||||
|
touch /etc/system.ok
|
||||||
|
echo "Restart system to apply fpv changes..."
|
||||||
|
reboot
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
gk7205v200 | gk7205v210 | hi3516ev200)
|
||||||
|
echo "Preparing system tweaks for ${chip}..."
|
||||||
|
|
||||||
|
# set custom config
|
||||||
|
if [ "$chip" = "gk7205v200" ] && [ "$sensor" = "imx307" ]; then
|
||||||
|
echo "switch to custom sensor config"
|
||||||
|
#cli -s .isp.sensorConfig /etc/sensors/60fps/720p_imx307_i2c_2l.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# fix osmem in bootargs
|
||||||
|
bootargs=$(fw_printenv -n bootargs)
|
||||||
|
if echo "$bootargs" | grep -q "32M"; then
|
||||||
|
newbootargs="mem=\${osmem} "$(echo "$bootargs" | cut -d " " -f2-)
|
||||||
|
fw_setenv bootargs "$newbootargs"
|
||||||
|
fw_setenv osmem 40M
|
||||||
|
fi
|
||||||
|
|
||||||
|
# remove unneeded scripts
|
||||||
|
rm -f /etc/init.d/S60crond /etc/init.d/S49ntpd /etc/init.d/S02klogd
|
||||||
|
|
||||||
|
basic
|
||||||
|
hisi_goke
|
||||||
|
streamer
|
||||||
|
finish
|
||||||
|
;;
|
||||||
|
|
||||||
|
gk7205v300 | hi3516ev300)
|
||||||
|
echo "Preparing system tweaks for $chip..."
|
||||||
|
|
||||||
|
# increase osmem
|
||||||
|
mem=$(fw_printenv -n osmem) && [ "$mem" = "32M" ] && fw_setenv osmem 64M && set_allocator cma || echo "Memory allocated for the system:" "$mem"
|
||||||
|
|
||||||
|
# set sensor config for smtsec board
|
||||||
|
if [ "$chip" = "gk7205v300" ] && [ "$sensor" = "imx307" ]; then
|
||||||
|
cli -s .isp.sensorConfig /etc/sensors/smtsec_imx307_i2c_4l_1080p.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
basic
|
||||||
|
hisi_goke
|
||||||
|
streamer
|
||||||
|
finish
|
||||||
|
;;
|
||||||
|
|
||||||
|
t31l | t31n | t31x | t31zx)
|
||||||
|
echo "Preparing system tweaks for $chip..."
|
||||||
|
basic
|
||||||
|
streamer
|
||||||
|
finish
|
||||||
|
;;
|
||||||
|
|
||||||
|
hi3536dv100)
|
||||||
|
echo "Preparing system tweaks for $chip..."
|
||||||
|
finish
|
||||||
|
;;
|
||||||
|
|
||||||
|
ssc33x)
|
||||||
|
echo "Preparing system tweaks for $chip..."
|
||||||
|
basic
|
||||||
|
sigmastar
|
||||||
|
streamer
|
||||||
|
finish
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {gk7205v200|gk7205v210|gk7205v300|hi3516ev200|hi3516ev300|t31l|t31n|t31x|t31zx|hi3536dv100|ssc33x}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -1 +1 @@
|
||||||
10.0
|
10.1
|
||||||
|
|
|
@ -1,12 +1,18 @@
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# rubyfpv
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
RUBYFPV_SITE_METHOD = git
|
RUBYFPV_SITE_METHOD = git
|
||||||
RUBYFPV_SITE = https://github.com/PetruSoroaga/RubyFPV
|
RUBYFPV_SITE = https://github.com/PetruSoroaga/RubyFPV
|
||||||
RUBYFPV_VERSION = 5ec137401ec338c9273e48a7cb9402d96010b9dd
|
RUBYFPV_VERSION = 2a290ac1ad257c105af7870740297d4409c1af43
|
||||||
|
|
||||||
RUBYFPV_DEPENDENCIES += libpcap iw
|
RUBYFPV_DEPENDENCIES += libpcap iw
|
||||||
|
|
||||||
RUBYFPV_MAKE_OPTS = \
|
RUBYFPV_MAKE_OPTS = \
|
||||||
CC="$(TARGET_CC)" \
|
CC="$(TARGET_CC)" \
|
||||||
CXX="$(TARGET_CXX)"
|
CXX="$(TARGET_CXX)"
|
||||||
|
|
||||||
define RUBYFPV_BUILD_CMDS
|
define RUBYFPV_BUILD_CMDS
|
||||||
$(MAKE) $(RUBYFPV_MAKE_OPTS) -C $(@D) vehicle RUBY_BUILD_ENV=openipc
|
$(MAKE) $(RUBYFPV_MAKE_OPTS) -C $(@D) vehicle RUBY_BUILD_ENV=openipc
|
||||||
|
@ -16,6 +22,15 @@ define RUBYFPV_INSTALL_TARGET_CMDS
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(RUBYFPV_PKGDIR)/files/S73ruby
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(RUBYFPV_PKGDIR)/files/S73ruby
|
||||||
|
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/root/ruby/licenses
|
||||||
|
$(INSTALL) -m 644 -t $(TARGET_DIR)/root/ruby/licenses $(@D)/licenses/*
|
||||||
|
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/firmware/ath9k_htc
|
||||||
|
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/firmware/ath9k_htc $(RUBYFPV_PKGDIR)/files/htc_9271.fw.3
|
||||||
|
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
||||||
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(RUBYFPV_PKGDIR)/files/tweaksys
|
||||||
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(@D)/ruby_start
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(@D)/ruby_start
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(@D)/ruby_logger
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(@D)/ruby_logger
|
||||||
|
@ -23,14 +38,6 @@ define RUBYFPV_INSTALL_TARGET_CMDS
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(@D)/ruby_tx_telemetry
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(@D)/ruby_tx_telemetry
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(RUBYFPV_PKGDIR)/files/ruby_stop.sh
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(RUBYFPV_PKGDIR)/files/ruby_stop.sh
|
||||||
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/sbin $(RUBYFPV_PKGDIR)/files/version_ruby_base.txt
|
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/sbin $(RUBYFPV_PKGDIR)/files/version_ruby_base.txt
|
||||||
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(DATALINK_PKGDIR)/files/tweaksys
|
|
||||||
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/root/ruby/licenses
|
|
||||||
$(INSTALL) -m 644 -t $(TARGET_DIR)/root/ruby/licenses $(@D)/licenses/*
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/firmware/ath9k_htc
|
|
||||||
cp $(RUBYFPV_PKGDIR)/files/htc_9271.fw.3 $(TARGET_DIR)/lib/firmware/ath9k_htc
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(generic-package))
|
$(eval $(generic-package))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
config BR2_PACKAGE_WIFIBROADCAST_NG
|
config BR2_PACKAGE_WIFIBROADCAST_NG
|
||||||
bool "wifibroadcast-ng"
|
bool "wifibroadcast-ng"
|
||||||
|
select BR2_PACKAGE_IW
|
||||||
help
|
help
|
||||||
Long-range packet radio link based on raw WiFi radio.
|
Long-range packet radio link based on raw WiFi radio.
|
||||||
https://github.com/svpcom/wfb-ng
|
https://github.com/svpcom/wfb-ng
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
finish() {
|
|
||||||
touch /etc/system.ok
|
|
||||||
echo "Restart system to apply fpv changes..."
|
|
||||||
reboot
|
|
||||||
}
|
|
||||||
|
|
||||||
sigmastar() {
|
|
||||||
cli -s .isp.sensorConfig /etc/sensors/imx415_fpv.bin
|
|
||||||
cli -s .isp.exposure 5
|
|
||||||
cli -s .video0.codec h265
|
|
||||||
cli -s .video0.size 1920x1080
|
|
||||||
cli -s .video0.fps 90
|
|
||||||
cli -s .video0.rcMode cbr
|
|
||||||
cli -s .jpeg.enabled false
|
|
||||||
cli -s .outgoing.enabled true
|
|
||||||
cli -s .outgoing.server udp://0.0.0.0:5600
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
ssc33x)
|
|
||||||
sigmastar
|
|
||||||
finish
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 {ssc33x}"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
yaml-cli -i /etc/wfb.yaml "$@"
|
|
@ -1,24 +0,0 @@
|
||||||
# Broadcast
|
|
||||||
wlan=wlan0
|
|
||||||
region=00
|
|
||||||
channel=161
|
|
||||||
txpower=1
|
|
||||||
driver_txpower_override=1
|
|
||||||
bandwidth=20
|
|
||||||
stbc=0
|
|
||||||
ldpc=0
|
|
||||||
mcs_index=1
|
|
||||||
stream=0
|
|
||||||
link_id=7669206
|
|
||||||
rcv_buf=456000
|
|
||||||
fec_k=8
|
|
||||||
fec_n=12
|
|
||||||
|
|
||||||
# Telemetry
|
|
||||||
router=2
|
|
||||||
serial=/dev/ttyS2
|
|
||||||
baud=115200
|
|
||||||
channels=8
|
|
||||||
fps=20
|
|
||||||
port_rx=14551
|
|
||||||
port_tx=14555
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
wireless:
|
||||||
|
txpower: 1
|
||||||
|
region: 00
|
||||||
|
channel: 161
|
||||||
|
mode: HT20
|
||||||
|
broadcast:
|
||||||
|
index: 1
|
||||||
|
fec_k: 8
|
||||||
|
fec_n: 12
|
||||||
|
link_id: 7669206
|
||||||
|
telemetry:
|
||||||
|
index: 1
|
||||||
|
router: msposd
|
||||||
|
serial: /dev/ttyS2
|
||||||
|
osd_fps: 20
|
||||||
|
port_rx: 14551
|
||||||
|
port_tx: 14555
|
|
@ -1,65 +1,110 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
wfb_soc=$(ipcinfo -c)
|
wfb_soc=$(ipcinfo -c)
|
||||||
wfb_key=/etc/drone.key
|
wfb_key=/etc/drone.key
|
||||||
|
wfb_dev=wlan0
|
||||||
|
|
||||||
if [ -e /etc/wfb.conf ]; then
|
wfb_yaml() {
|
||||||
. /etc/wfb.conf
|
if [ -e /etc/wfb.yaml ]; then
|
||||||
else
|
if [ "$1" = "b" ]; then
|
||||||
echo "Configuration file not found"
|
config=broadcast
|
||||||
exit 1
|
elif [ "$1" = "t" ]; then
|
||||||
fi
|
config=telemetry
|
||||||
|
elif [ "$1" = "w" ]; then
|
||||||
|
config=wireless
|
||||||
|
fi
|
||||||
|
value=$(wfb-cli -g ".$config.$2")
|
||||||
|
fi
|
||||||
|
|
||||||
|
eval "$1_$2=${value:-$3}"
|
||||||
|
}
|
||||||
|
|
||||||
|
load_config() {
|
||||||
|
wfb_yaml w txpower 1
|
||||||
|
wfb_yaml w region 00
|
||||||
|
wfb_yaml w channel 161
|
||||||
|
wfb_yaml w mode HT20
|
||||||
|
|
||||||
|
wfb_yaml b index 1
|
||||||
|
wfb_yaml b fec_k 8
|
||||||
|
wfb_yaml b fec_n 12
|
||||||
|
wfb_yaml b link_id 7669206
|
||||||
|
|
||||||
|
wfb_yaml t index 1
|
||||||
|
wfb_yaml t router msposd
|
||||||
|
wfb_yaml t serial /dev/ttyS2
|
||||||
|
wfb_yaml t osd_fps 20
|
||||||
|
wfb_yaml t port_rx 14551
|
||||||
|
wfb_yaml t port_tx 14555
|
||||||
|
}
|
||||||
|
|
||||||
load_modules() {
|
load_modules() {
|
||||||
for card in $(lsusb | awk '{print $6}' | sort | uniq); do
|
for card in $(lsusb | awk '{print $6}' | sort | uniq); do
|
||||||
case "$card" in
|
case "$card" in
|
||||||
"0bda:8812" | "0bda:881a" | "0b05:17d2" | "2357:0101" | "2604:0012")
|
"0bda:8812" | "0bda:881a" | "0b05:17d2" | "2357:0101" | "2604:0012")
|
||||||
driver="88XXau"
|
driver=88XXau
|
||||||
modprobe 88XXau rtw_tx_pwr_idx_override="$driver_txpower_override"
|
modprobe "$driver"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"0bda:a81a")
|
"0bda:a81a")
|
||||||
driver="8812eu"
|
driver=8812eu
|
||||||
modprobe 8812eu rtw_regd_src=1 rtw_tx_pwr_by_rate=0 rtw_tx_pwr_lmt_enable=0
|
modprobe "$driver" rtw_regd_src=1 rtw_tx_pwr_by_rate=0 rtw_tx_pwr_lmt_enable=0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"0bda:f72b")
|
"0bda:f72b" | "0bda:b733")
|
||||||
driver="8733bu"
|
driver=8733bu
|
||||||
modprobe 8733bu rtw_regd_src=1 rtw_tx_pwr_by_rate=0 rtw_tx_pwr_lmt_enable=0
|
modprobe "$driver" rtw_regd_src=1 rtw_tx_pwr_by_rate=0 rtw_tx_pwr_lmt_enable=0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "$driver" ]; then
|
if [ -z "$driver" ]; then
|
||||||
echo "Wireless module not detected, check the usb connection"
|
echo "- Wireless module not detected!"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Detected driver: $driver"
|
echo "- Detected driver: $driver"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! ifconfig "$wfb_dev" up; then
|
||||||
|
echo "- Wireless driver not found!"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
load_interface() {
|
load_interface() {
|
||||||
ifconfig "$wlan" up
|
iw "$wfb_dev" set monitor none
|
||||||
iwconfig "$wlan" mode monitor
|
iw "$wfb_dev" set channel "$w_channel" "$w_mode"
|
||||||
|
iw reg set "$w_region"
|
||||||
|
|
||||||
if [ "$driver" = "8812eu" ] || [ "$driver" = "8733bu" ]; then
|
if [ "$driver" = "88XXau" ]; then
|
||||||
iw dev "$wlan" set txpower fixed $((driver_txpower_override * 50))
|
iw "$wfb_dev" set txpower fixed $((w_txpower * -100))
|
||||||
|
else
|
||||||
|
iw "$wfb_dev" set txpower fixed $((w_txpower * 50))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
iw reg set "$region"
|
case "$w_mode" in
|
||||||
iwconfig "$wlan" channel "$channel"
|
"HT20")
|
||||||
|
bandwidth=20
|
||||||
|
;;
|
||||||
|
"HT40+" | "HT40-")
|
||||||
|
bandwidth=40
|
||||||
|
;;
|
||||||
|
"80Mhz")
|
||||||
|
bandwidth=80
|
||||||
|
;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
start_wfb() {
|
start_wfb() {
|
||||||
echo "Starting wfb_tx"
|
echo "- Starting wfb_tx"
|
||||||
wfb_tx -p "$stream" -R "$rcv_buf" -K "$wfb_key" -B "$bandwidth" -M "$mcs_index" -C 8000 \
|
wfb_tx -K "$wfb_key" -M "$b_index" -B "$bandwidth" -C 8000 \
|
||||||
-S "$stbc" -L "$ldpc" -k "$fec_k" -n "$fec_n" -i "$link_id" "$wlan" &> /dev/null &
|
-k "$b_fec_k" -n "$b_fec_n" -i "$b_link_id" "$wfb_dev" &> /dev/null &
|
||||||
}
|
}
|
||||||
|
|
||||||
start_tunnel() {
|
start_tunnel() {
|
||||||
echo "Starting wfb_tun"
|
echo "- Starting wfb_tun"
|
||||||
wfb_rx -p 160 -u 5800 -K "$wfb_key" -i "$link_id" "$wlan" &> /dev/null &
|
wfb_rx -p 160 -u 5800 -K "$wfb_key" -i "$b_link_id" "$wfb_dev" &> /dev/null &
|
||||||
wfb_tx -p 32 -u 5801 -K "$wfb_key" -M "$mcs_index" -S "$stbc" -L "$ldpc" \
|
wfb_tx -p 32 -u 5801 -K "$wfb_key" -M "$t_index" \
|
||||||
-k "$fec_k" -n "$fec_n" -i "$link_id" "$wlan" &> /dev/null &
|
-k "$b_fec_k" -n "$b_fec_n" -i "$b_link_id" "$wfb_dev" &> /dev/null &
|
||||||
wfb_tun -a 10.5.0.10/24 > /dev/null &
|
wfb_tun -a 10.5.0.10/24 > /dev/null &
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,24 +115,40 @@ start_telemetry() {
|
||||||
devmem 0x1F207890 16 0x8
|
devmem 0x1F207890 16 0x8
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$router" -eq 2 ]; then
|
if [ "$t_router" = "msposd" ]; then
|
||||||
echo "Starting msposd"
|
echo "- Starting $t_router"
|
||||||
msposd --master "$serial" --baudrate "$baud" --channels "$channels" \
|
msposd --baudrate 115200 --channels 8 -osd --ahi 0 -r "$t_osd_fps" \
|
||||||
-osd -r "$fps" --ahi 0 --out 10.5.0.1:"$port_tx" > /dev/null &
|
--master "$t_serial" --out 10.5.0.1:"$t_port_tx" > /dev/null &
|
||||||
else
|
elif [ "$t_router" = "mavfwd" ]; then
|
||||||
echo "Starting mavfwd"
|
echo "- Starting $t_router"
|
||||||
mavfwd --master "$serial" --baudrate "$baud" --channels "$channels" -p 100 -t \
|
mavfwd --baudrate 115200 --channels 8 -p 100 -a 15 -t \
|
||||||
-a 15 --in 0.0.0.0:"$port_rx" --out 10.5.0.1:"$port_tx" > /dev/null &
|
--master "$t_serial" --in 0.0.0.0:"$t_port_rx" --out 10.5.0.1:"$t_port_tx" > /dev/null &
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
majestic_sigmastar() {
|
||||||
|
cli -s .isp.sensorConfig /etc/sensors/imx415_fpv.bin
|
||||||
|
cli -s .isp.exposure 5
|
||||||
|
cli -s .video0.codec h265
|
||||||
|
cli -s .video0.size 1920x1080
|
||||||
|
cli -s .video0.fps 90
|
||||||
|
cli -s .video0.rcMode cbr
|
||||||
|
cli -s .jpeg.enabled false
|
||||||
|
cli -s .outgoing.enabled true
|
||||||
|
cli -s .outgoing.server udp://0.0.0.0:5600
|
||||||
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
if [ ! -e /etc/system.ok ]; then
|
if [ ! -e /etc/system.ok ]; then
|
||||||
echo "Preparing system tweaks for $wfb_soc..."
|
if [ "$wfb_soc" = "ssc33x" ]; then
|
||||||
tweaksys "$wfb_soc"
|
majestic_sigmastar
|
||||||
|
fi
|
||||||
|
|
||||||
|
touch /etc/system.ok
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
load_config
|
||||||
load_modules
|
load_modules
|
||||||
load_interface
|
load_interface
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
WIFIBROADCAST_NG_VERSION = 3a053040442174e6c1ce76866c6da4b12c19dbb4
|
WIFIBROADCAST_NG_VERSION = 7dbdf92919cfccffa5ff46b0b8294e243f5f5a37
|
||||||
WIFIBROADCAST_NG_SITE = $(call github,svpcom,wfb-ng,$(WIFIBROADCAST_NG_VERSION))
|
WIFIBROADCAST_NG_SITE = $(call github,svpcom,wfb-ng,$(WIFIBROADCAST_NG_VERSION))
|
||||||
WIFIBROADCAST_NG_LICENSE = GPL-3.0
|
WIFIBROADCAST_NG_LICENSE = GPL-3.0
|
||||||
|
|
||||||
WIFIBROADCAST_NG_DEPENDENCIES += libpcap libsodium iw
|
WIFIBROADCAST_NG_DEPENDENCIES += libpcap libsodium
|
||||||
|
|
||||||
define WIFIBROADCAST_NG_BUILD_CMDS
|
define WIFIBROADCAST_NG_BUILD_CMDS
|
||||||
$(MAKE) CC=$(TARGET_CC) CXX=$(TARGET_CXX) LDFLAGS=-s -C $(@D) all_bin
|
$(MAKE) CC=$(TARGET_CC) CXX=$(TARGET_CXX) LDFLAGS=-s -C $(@D) all_bin
|
||||||
|
@ -17,12 +17,17 @@ endef
|
||||||
define WIFIBROADCAST_NG_INSTALL_TARGET_CMDS
|
define WIFIBROADCAST_NG_INSTALL_TARGET_CMDS
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
||||||
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIFIBROADCAST_NG_PKGDIR)/files/drone.key
|
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIFIBROADCAST_NG_PKGDIR)/files/drone.key
|
||||||
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIFIBROADCAST_NG_PKGDIR)/files/wfb.conf
|
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIFIBROADCAST_NG_PKGDIR)/files/wfb.yaml
|
||||||
|
|
||||||
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
|
||||||
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(WIFIBROADCAST_NG_PKGDIR)/files/S98wifibroadcast
|
||||||
|
|
||||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/wfb_rx
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/wfb_rx
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/wfb_tx
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/wfb_tx
|
||||||
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/wfb_tx_cmd
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/wfb_tun
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/wfb_tun
|
||||||
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(WIFIBROADCAST_NG_PKGDIR)/files/wfb-cli
|
||||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(WIFIBROADCAST_NG_PKGDIR)/files/wifibroadcast
|
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(WIFIBROADCAST_NG_PKGDIR)/files/wifibroadcast
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue