Merge pull request from OpenIPC/master

同步
pull/1681/head
Huang jinlong 2025-01-07 13:41:35 +08:00 committed by GitHub
commit ef3e9a0bda
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
20 changed files with 362 additions and 143 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
10.0 10.1

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,2 @@
#!/bin/sh
yaml-cli -i /etc/wfb.yaml "$@"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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