From 27554b85773d319428bb0c0b7e58ded7679a76f9 Mon Sep 17 00:00:00 2001 From: cronyx Date: Wed, 13 Jul 2022 20:35:02 +0300 Subject: [PATCH 1/4] add minimal script for init wfb --- general/package/wifibroadcast/files/S98wfb | 91 ++++++++++++++++++++ general/package/wifibroadcast/files/rx.sh | 11 --- general/package/wifibroadcast/files/tx.sh | 11 --- general/package/wifibroadcast/files/wfb.conf | 5 ++ general/package/wifibroadcast/readme.md | 83 ++++++++---------- 5 files changed, 134 insertions(+), 67 deletions(-) create mode 100755 general/package/wifibroadcast/files/S98wfb delete mode 100755 general/package/wifibroadcast/files/rx.sh delete mode 100755 general/package/wifibroadcast/files/tx.sh create mode 100644 general/package/wifibroadcast/files/wfb.conf diff --git a/general/package/wifibroadcast/files/S98wfb b/general/package/wifibroadcast/files/S98wfb new file mode 100755 index 00000000..0e0d3101 --- /dev/null +++ b/general/package/wifibroadcast/files/S98wfb @@ -0,0 +1,91 @@ +#!/bin/sh +# +# Start wifibroadcast +# + +config="/etc/wfb.conf" +keydir="/etc" +wlan=`cat ${config} | grep wlan | cut -f 2 -d '='` +region=`cat ${config} | grep region | cut -f 2 -d '='` +channel=`cat ${config} | grep channel | cut -f 2 -d '='` + +load_rtl() { + modprobe cfg80211 + modprobe 88XXau +} + +load_ath() { + modprobe cfg80211 + modprobe mac80211 + modprobe ath9k_htc + sleep 3 +} + +load_interface() { + + if cat ${config} | grep "rtl" > /dev/null 2>&1; then + ifconfig ${wlan} up + iwconfig ${wlan} mode monitor + elif cat ${config} | grep "ath" > /dev/null 2>&1; then + iwconfig ${wlan} mode monitor + ifconfig ${wlan} up + fi + + iw reg set ${region} + iwconfig ${wlan} channel ${channel} +} + +start_wfb() { + wfb_tx -p 1 -u 5600 -K ${keydir}/drone.key ${wlan} & +} + +case "$1" in + start) + if grep -q daemon=1 ${config}; then + + echo "Loading modules for selected driver..." + + if cat ${config} | grep "rtl"; then + if ! lsmod | grep "88XXau"; then + load_rtl + fi + elif cat ${config} | grep "ath"; then + if ! lsmod | grep "ath9k_htc"; then + load_ath + fi + fi + + echo "Done." + echo "Preparing interface wlan..." + + load_interface + + echo "Done." + + if ! cat ${keydir}/drone.key > /dev/null 2>&1; then + echo "Generating drone & ground station keys..." + cd ${keydir} ; wfb_keygen + echo "Done." + else + echo "Drone key exist... Done." + fi + + echo "Starting Wifibroadcast service..." + + start_wfb + + echo "Done." + + else + echo "Wifibroadcast service disabled in wfb.conf..." + fi + ;; + stop) + echo "Stopping wifibroadcast service..." + kill -9 $(pidof wfb_tx) + ifconfig ${wlan} down + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 +esac diff --git a/general/package/wifibroadcast/files/rx.sh b/general/package/wifibroadcast/files/rx.sh deleted file mode 100755 index 7413bba2..00000000 --- a/general/package/wifibroadcast/files/rx.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -wlan=$1 -chan="6" - -ifconfig ${wlan} down -iwconfig ${wlan} mode monitor -ifconfig ${wlan} up -iwconfig ${wlan} channel ${chan} - -wfb_rx -p 1 -u 5600 -K /tmp/gs.key ${wlan} diff --git a/general/package/wifibroadcast/files/tx.sh b/general/package/wifibroadcast/files/tx.sh deleted file mode 100755 index caa38cd0..00000000 --- a/general/package/wifibroadcast/files/tx.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -wlan=$1 -chan="6" - -ifconfig ${wlan} down -iwconfig ${wlan} mode monitor -ifconfig ${wlan} up -iwconfig ${wlan} channel ${chan} - -wfb_tx -p 1 -u 5600 -K /tmp/drone.key ${wlan} diff --git a/general/package/wifibroadcast/files/wfb.conf b/general/package/wifibroadcast/files/wfb.conf new file mode 100644 index 00000000..7e788d99 --- /dev/null +++ b/general/package/wifibroadcast/files/wfb.conf @@ -0,0 +1,5 @@ +daemon=0 +driver=rtl +wlan=wlan0 +region=BO +channel=6 diff --git a/general/package/wifibroadcast/readme.md b/general/package/wifibroadcast/readme.md index 410b6301..6cf76b4d 100644 --- a/general/package/wifibroadcast/readme.md +++ b/general/package/wifibroadcast/readme.md @@ -1,61 +1,54 @@ -# ATHEROS +# Настройка -1. Для сборки с драйверами Atheros включить опции ядра в соотвествующем плате конфиге: +В конфигурационном файле /etc/wfb.conf включить автозапуск сервиса: ``` -br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic-fpv.config -br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic-fpv.config - -CONFIG_WLAN_VENDOR_ATH=y -CONFIG_ATH9K_HTC=m +daemon=1 ``` -2. Выбрать необходимые пакеты в конфиге соответствующем плате: +указать используемый драйвер: ``` -br-ext-chip-goke/configs/unknown_unknown_gk7205v200_fpv_defconfig -br-ext-chip-goke/configs/unknown_unknown_gk7205v300_fpv_defconfig - -BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_ATHEROS_9271=y -``` - -# REALTEK - -1. Выбрать необходимые пакеты в конфиге соответствующем плате: +driver=rtl или driver=ath ``` -br-ext-chip-goke/configs/unknown_unknown_gk7205v200_fpv_defconfig -br-ext-chip-goke/configs/unknown_unknown_gk7205v300_fpv_defconfig - - -BR2_PACKAGE_RTL8812AU_OPENIPC=y -``` - - -!!!ВАЖНО!!! Оба драйвера с большой вероятностью не поместятся в сборку, потому собирать по принципу 1 прошивка 1 драйвер. Majestic не включен в стандартную сборку, после прошивки его необходимо загрузить отдельно. - - -# Загрузка модулей - -## Realtek: +нужный wlan если их больше одного, если адаптер один, то оставить как есть: ``` -modprobe cfg80211 -modprobe 88XXau -``` -## Atheros: - -``` -modprobe cfg80211 -modprobe mac80211 -modprobe ath9k_htc +wlan=wlan0 ``` -# Настройка интерфейса +страна: ``` -iw set reg BO -ifconfig wlan0 up -iwconfig wlan0 mode monitor -iwconfig wlan0 channel 6 +region=BO ``` + +канал: + +``` +channel=6 +``` + +В конец /etc/majestic.yaml добавить секцию: + +``` +outgoing: + - udp://127.0.0.1:5600 +``` + +Выполнить настройки majestic, отключить все лишнее кроме необходимого потока, выполнить настройки по битрейту и ключевым кадрам, после чего перезапустить камеру. + +При первом запуске сгенерируются ключи drone.key и gs.key, ключ для наземной станции находится по пути /etc/gs.key, копируем его. + +Измененить канал при необходимости можно стандартными командами из консоли: + +``` +iwconfig wlan0 channel X +``` + +Никаких дополнительных настроек для wfb_tx пока не вынесено в конфиг, для тестов их можно добавлять в функции start_wfb в скрипте инициализации /etc/init.d/S98wfb + + + +P.S. Это минимальная обвязка, возможно что-то не учтено или сделано не так как хотелось бы, все предложения привествуются в issues. From 4b6588964f7cf5f86ec13c4c0f8fc8252a1f48aa Mon Sep 17 00:00:00 2001 From: cronyx Date: Wed, 13 Jul 2022 20:43:50 +0300 Subject: [PATCH 2/4] correct package install script --- general/package/wifibroadcast/wifibroadcast.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/general/package/wifibroadcast/wifibroadcast.mk b/general/package/wifibroadcast/wifibroadcast.mk index 32ee721c..54704d32 100644 --- a/general/package/wifibroadcast/wifibroadcast.mk +++ b/general/package/wifibroadcast/wifibroadcast.mk @@ -19,9 +19,14 @@ define WIFIBROADCAST_BUILD_CMDS endef define WIFIBROADCAST_INSTALL_TARGET_CMDS - $(INSTALL) -m 0755 -D $(@D)/wfb_rx $(TARGET_DIR)/usr/bin $(INSTALL) -m 0755 -D $(@D)/wfb_tx $(TARGET_DIR)/usr/bin $(INSTALL) -m 0755 -D $(@D)/wfb_keygen $(TARGET_DIR)/usr/bin + + $(INSTALL) -m 755 -d $(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 endef $(eval $(generic-package)) From f8ca273b508f0633ae830feb7f3ee7e175d45acc Mon Sep 17 00:00:00 2001 From: cronyx Date: Wed, 13 Jul 2022 21:18:43 +0300 Subject: [PATCH 3/4] fix typo --- building.sh | 2 +- general/package/wifibroadcast/readme.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/building.sh b/building.sh index 885e5052..7729a502 100755 --- a/building.sh +++ b/building.sh @@ -649,7 +649,7 @@ xm550() { # gk7205v210 # OpenIPC # gk7205v300 # OpenIPC # gk7205v300_ultimate # OpenIPC_ultimate version -# gk7205v300_fpv # FPV (ultimate by default) +gk7205v300_fpv # FPV (ultimate by default) # gk7605v100 # testing.. # ####### diff --git a/general/package/wifibroadcast/readme.md b/general/package/wifibroadcast/readme.md index 6cf76b4d..9ac2f1fd 100644 --- a/general/package/wifibroadcast/readme.md +++ b/general/package/wifibroadcast/readme.md @@ -41,7 +41,7 @@ outgoing: При первом запуске сгенерируются ключи drone.key и gs.key, ключ для наземной станции находится по пути /etc/gs.key, копируем его. -Измененить канал при необходимости можно стандартными командами из консоли: +Изменить канал при необходимости можно стандартными командами из консоли: ``` iwconfig wlan0 channel X @@ -51,4 +51,4 @@ iwconfig wlan0 channel X -P.S. Это минимальная обвязка, возможно что-то не учтено или сделано не так как хотелось бы, все предложения привествуются в issues. +P.S. Это минимальная обвязка, возможно что-то не учтено или сделано не так как хотелось бы, все предложения приветствуются в issues. From 7e70bd23fcb676b6cf07bedcfd2d5fa2f480c936 Mon Sep 17 00:00:00 2001 From: cronyx Date: Wed, 13 Jul 2022 21:21:48 +0300 Subject: [PATCH 4/4] add some comments --- building.sh | 2 +- general/package/wifibroadcast/files/S98wfb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/building.sh b/building.sh index 7729a502..885e5052 100755 --- a/building.sh +++ b/building.sh @@ -649,7 +649,7 @@ xm550() { # gk7205v210 # OpenIPC # gk7205v300 # OpenIPC # gk7205v300_ultimate # OpenIPC_ultimate version -gk7205v300_fpv # FPV (ultimate by default) +# gk7205v300_fpv # FPV (ultimate by default) # gk7605v100 # testing.. # ####### diff --git a/general/package/wifibroadcast/files/S98wfb b/general/package/wifibroadcast/files/S98wfb index 0e0d3101..1aacf4db 100755 --- a/general/package/wifibroadcast/files/S98wfb +++ b/general/package/wifibroadcast/files/S98wfb @@ -18,7 +18,7 @@ load_ath() { modprobe cfg80211 modprobe mac80211 modprobe ath9k_htc - sleep 3 + sleep 3 # need to load firmware } load_interface() {