[fpv] improvements (#710)

pull/714/head
cronyx 2023-04-04 12:42:48 +03:00 committed by GitHub
parent 9997b38e68
commit fe6d470c74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 61 additions and 14 deletions

View File

@ -733,7 +733,7 @@ CONFIG_CFG80211=m
CONFIG_CFG80211_DEFAULT_PS=y CONFIG_CFG80211_DEFAULT_PS=y
# CONFIG_CFG80211_INTERNAL_REGDB is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set
CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=n CONFIG_CFG80211_WEXT=y
# CONFIG_LIB80211 is not set # CONFIG_LIB80211 is not set
CONFIG_MAC80211=m CONFIG_MAC80211=m
CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_HAS_RC=y

View File

@ -2,6 +2,7 @@ config BR2_PACKAGE_MAVFWD
bool "mavfwd" bool "mavfwd"
default n default n
select BR2_PACKAGE_LIBEVENT_OPENIPC select BR2_PACKAGE_LIBEVENT_OPENIPC
select BR2_PACKAGE_DATALINK
help help
mavfwd - Cool and awesome mavlink forwader for FPV mavfwd - Cool and awesome mavlink forwader for FPV

View File

@ -1,5 +1,6 @@
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,11 +5,11 @@
case "$1" in case "$1" in
start) start)
if grep -q telemetry=true /etc/wfb.conf; then if grep -q telemetry=true /etc/datalink.conf; then
echo "Starting mavlink router daemon..." echo "Starting mavlink router daemon..."
/usr/bin/mavlink-routerd & /usr/bin/mavlink-routerd &
else else
echo "Telemetry service disabled in wfb.conf..." echo "Telemetry service disabled in datalink.conf..."
fi fi
;; ;;
stop) stop)

View File

@ -0,0 +1,24 @@
#!/bin/sh
#
# Change Atheros MCS
# Author: Tipo Man
case "$1" in
"1")
echo '1-1' > /sys/bus/usb/drivers/usb/unbind
rm /lib/firmware/ath9k_htc/htc_9271-1.4.0.fw
ln -s /lib/firmware/ath9k_htc/htc_9271.fw.1 /lib/firmware/ath9k_htc/htc_9271-1.4.0.fw
echo '1-1' > /sys/bus/usb/drivers/usb/bind
echo "Loaded firmware with MCS"$1
;;
"3")
echo '1-1' > /sys/bus/usb/drivers/usb/unbind
rm /lib/firmware/ath9k_htc/htc_9271-1.4.0.fw
ln -s /lib/firmware/ath9k_htc/htc_9271.fw.3 /lib/firmware/ath9k_htc/htc_9271-1.4.0.fw
echo '1-1' > /sys/bus/usb/drivers/usb/bind
echo "Loaded firmware with MCS"$1
;;
*)
echo "Only MCS 1 or 3 supported!"
;;
esac

View File

@ -1,6 +1,8 @@
wlan=wlan0 wlan=wlan0
region=BO region=BO
# By default used channel number, but, you may set freq instead. For ex: 2387M
channel=14 channel=14
frequency=
txpower=20 txpower=20
driver_txpower_override=20 driver_txpower_override=20
bandwidth=20 bandwidth=20

View File

@ -11,6 +11,19 @@ chip=$(ipcinfo -c)
driver="" driver=""
set_mcs() {
mcs=$(ls -l /lib/firmware/ath9k_htc | grep "htc_9271-1.4.0.fw" | cut -d "." -f6)
if [ -z "${mcs}" ]; then
setmcs ${mcs_index}
fi
if [ ${mcs_index} -eq 1 ] || [ ${mcs_index} -eq 3 ]; then
if [ ! ${mcs_index} -eq ${mcs} ]; then
setmcs ${mcs_index}
sleep 3
fi
fi
}
# "0bda:8813" -> (8814) -> 8814au # "0bda:8813" -> (8814) -> 8814au
# "0846:9052" -> (8811) -> 8821au # "0846:9052" -> (8811) -> 8821au
@ -24,18 +37,13 @@ detect_wifi_card() {
driver="realtek" driver="realtek"
modprobe 88XXau rtw_tx_pwr_idx_override=${driver_txpower_override} modprobe 88XXau rtw_tx_pwr_idx_override=${driver_txpower_override}
;; ;;
"0cf3:9271") "0cf3:9271" | "040d:3801")
driver="atheros" driver="atheros"
set_mcs
modprobe mac80211 modprobe mac80211
modprobe ath9k_htc modprobe ath9k_htc
;; ;;
"148f:3070") esac
driver="ralink"
modprobe mac80211
modprobe rt2x00usb
modprobe rt2800usb
;;
esac
done done
if [ -z "${driver}" ]; then if [ -z "${driver}" ]; then
@ -68,13 +76,19 @@ load_interface() {
if [ ${driver} = "realtek" ]; then if [ ${driver} = "realtek" ]; then
ifconfig ${wlan} up ifconfig ${wlan} up
iwconfig ${wlan} mode monitor iwconfig ${wlan} mode monitor
elif [ ${driver} = "atheros" ] || [ ${driver} = "ralink" ]; then elif [ ${driver} = "atheros" ]; then
iwconfig ${wlan} mode monitor iwconfig ${wlan} mode monitor
ifconfig ${wlan} up ifconfig ${wlan} up
fi fi
iw reg set ${region} iw reg set ${region}
iwconfig ${wlan} channel ${channel}
if [ ! -z "${frequency}" ]; then
iwconfig ${wlan} freq ${frequency}
else
iwconfig ${wlan} channel ${channel}
fi
iw dev ${wlan} set txpower fixed $((${txpower} * 100)) iw dev ${wlan} set txpower fixed $((${txpower} * 100))
} }

View File

@ -28,8 +28,13 @@ define WIFIBROADCAST_INSTALL_TARGET_CMDS
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
cp ../general/package/wifibroadcast/files/wifibroadcast $(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/setmcs $(TARGET_DIR)/usr/bin
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/firmware/ath9k_htc $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/firmware/ath9k_htc
cp ../general/package/wifibroadcast/files/htc_9271-1.4.0.fw $(TARGET_DIR)/lib/firmware/ath9k_htc cp ../general/package/wifibroadcast/files/htc_9271.fw.1 $(TARGET_DIR)/lib/firmware/ath9k_htc
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/firmware/ath9k_htc
cp ../general/package/wifibroadcast/files/htc_9271.fw.3 $(TARGET_DIR)/lib/firmware/ath9k_htc
endef endef
$(eval $(generic-package)) $(eval $(generic-package))