mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			add minimal script for init wfb
							parent
							
								
									9ee15b3696
								
							
						
					
					
						commit
						27554b8577
					
				|  | @ -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 | ||||||
|  | @ -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} |  | ||||||
|  | @ -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} |  | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | daemon=0 | ||||||
|  | driver=rtl | ||||||
|  | wlan=wlan0 | ||||||
|  | region=BO | ||||||
|  | channel=6 | ||||||
|  | @ -1,61 +1,54 @@ | ||||||
| # ATHEROS | # Настройка | ||||||
| 
 | 
 | ||||||
| 1. Для сборки с драйверами Atheros включить опции ядра в соотвествующем плате конфиге: | В конфигурационном файле /etc/wfb.conf включить автозапуск сервиса: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic-fpv.config | daemon=1 | ||||||
| br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic-fpv.config |  | ||||||
| 
 |  | ||||||
| CONFIG_WLAN_VENDOR_ATH=y |  | ||||||
| CONFIG_ATH9K_HTC=m |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| 2. Выбрать необходимые пакеты в конфиге соответствующем плате: | указать используемый драйвер: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| br-ext-chip-goke/configs/unknown_unknown_gk7205v200_fpv_defconfig | driver=rtl или driver=ath | ||||||
| br-ext-chip-goke/configs/unknown_unknown_gk7205v300_fpv_defconfig |  | ||||||
| 
 |  | ||||||
| BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_ATHEROS_9271=y |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| # REALTEK |  | ||||||
| 
 |  | ||||||
| 1. Выбрать необходимые пакеты в конфиге соответствующем плате: |  | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| br-ext-chip-goke/configs/unknown_unknown_gk7205v200_fpv_defconfig | нужный wlan если их больше одного, если адаптер один, то оставить как есть: | ||||||
| br-ext-chip-goke/configs/unknown_unknown_gk7205v300_fpv_defconfig |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| BR2_PACKAGE_RTL8812AU_OPENIPC=y |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| !!!ВАЖНО!!! Оба драйвера с большой вероятностью не поместятся в сборку, потому собирать по принципу 1 прошивка 1 драйвер. Majestic не включен в стандартную сборку, после прошивки его необходимо загрузить отдельно. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # Загрузка модулей |  | ||||||
| 
 |  | ||||||
| ## Realtek: |  | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| modprobe cfg80211 | wlan=wlan0 | ||||||
| modprobe 88XXau |  | ||||||
| ``` |  | ||||||
| ## Atheros: |  | ||||||
| 
 |  | ||||||
| ``` |  | ||||||
| modprobe cfg80211 |  | ||||||
| modprobe mac80211 |  | ||||||
| modprobe ath9k_htc |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| # Настройка интерфейса | страна: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| iw set reg BO | region=BO | ||||||
| ifconfig wlan0 up |  | ||||||
| iwconfig wlan0 mode monitor |  | ||||||
| iwconfig wlan0 channel 6 |  | ||||||
| ``` | ``` | ||||||
|  | 
 | ||||||
|  | канал: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | 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. | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue