mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			Merge pull request #263 from cronyx/master
added minimal init script to start wifibroadcastpull/265/head
						commit
						7f74a6b074
					
				|  | @ -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 # need to load firmware | ||||
| } | ||||
| 
 | ||||
| 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 | ||||
| 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. | ||||
|  |  | |||
|  | @ -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)) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue