mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			some improvements for previous commit (#1025)
							parent
							
								
									8f808868da
								
							
						
					
					
						commit
						f4f4bd5f57
					
				|  | @ -111,7 +111,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_ATHEROS_9271=y | |||
| BR2_PACKAGE_RTL8812AU_OPENIPC=y | ||||
| 
 | ||||
| # FPV | ||||
| # BR2_PACKAGE_VDEC is not set | ||||
| # BR2_PACKAGE_VDEC_OPENIPC is not set | ||||
| BR2_PACKAGE_DATALINK=y | ||||
| BR2_PACKAGE_WIFIBROADCAST=y | ||||
| # BR2_PACKAGE_WFBOPENHD is not set | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ define DATALINK_INSTALL_TARGET_CMDS | |||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc | ||||
| 	cp $(DATALINK_PKGDIR)/files/datalink.conf $(TARGET_DIR)/etc | ||||
| 
 | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc                | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc | ||||
| 	cp $(DATALINK_PKGDIR)/files/$(DATALINK_FPATH)/telemetry.conf $(TARGET_DIR)/etc | ||||
| 
 | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d | ||||
|  | @ -25,6 +25,9 @@ define DATALINK_INSTALL_TARGET_CMDS | |||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||
| 	cp $(DATALINK_PKGDIR)/files/$(DATALINK_FPATH)/telemetry $(TARGET_DIR)/usr/bin | ||||
| 
 | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin | ||||
| 	cp $(DATALINK_PKGDIR)/files/$(DATALINK_FPATH)/channels.sh $(TARGET_DIR)/usr/sbin | ||||
| 
 | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||
| 	cp $(DATALINK_PKGDIR)/files/tweaksys $(TARGET_DIR)/usr/bin | ||||
| endef | ||||
|  |  | |||
|  | @ -11,7 +11,6 @@ fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2) | |||
| case "$1" in | ||||
|   start) | ||||
| 	if ! [ -f /etc/system.ok ]; then | ||||
| 		killall majestic | ||||
| 		tweaksys ${chip} | ||||
| 	fi | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,5 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| echo $1 $2 >> /tmp/channels.log | ||||
| 
 | ||||
| exit 1 | ||||
|  | @ -29,9 +29,9 @@ case "$1" in | |||
| 	if [ ${router} -eq 1 ] || [ ${fw} = "lte" ]; then | ||||
| 	  /usr/bin/mavlink-routerd & | ||||
| 	else | ||||
| 	  mavfwd --master ${serial} --baudrate ${baud} --out 127.0.0.1:${port_tx} --in 127.0.0.1:${port_rx} & | ||||
| 	  mavfwd --channels ${channels} --master ${serial} --baudrate ${baud} --out 127.0.0.1:${port_tx} --in 127.0.0.1:${port_rx} & | ||||
| 	fi | ||||
| 	if [ ${fw} = "fpv" ]; then | ||||
| 	if [ ${fw} = "fpv" ] || [ ${fw} = "venc" ]; then | ||||
| 		start_telemetry | ||||
| 	fi | ||||
| 	echo "Done." | ||||
|  |  | |||
|  | @ -18,3 +18,6 @@ fec_n=2 | |||
| fec_timeout=0 | ||||
| guard_interval=long | ||||
| one_way=false | ||||
| 
 | ||||
| ### for mavfwd: RC override channels to parse after first 4 and call /usr/sbin/channels.sh $ch $val, default 0 | ||||
| channels=14 | ||||
|  |  | |||
|  | @ -28,39 +28,45 @@ hisi_goke() { | |||
| all_other() { | ||||
|   # don't load f2fs module (disabled in kernel) | ||||
|   sed -i "s!f2fs!#f2fs!g" /etc/modules | ||||
|   # disable mavlink routerd autostart | ||||
|   sed -i "s!/usr/bin/mavlink-routerd &!#/usr/bin/mavlink-routerd &!g" /etc/init.d/S97mavlink | ||||
|   # majestic basic settings | ||||
|   cli -s .isp.slowShutter disabled | ||||
|   cli -s .isp.drc 350 | ||||
|   # enable digital image stabilization  | ||||
|   # cli -s .isp.dis true | ||||
|   cli -s .image.contrast 50 | ||||
|   cli -s .image.luminance 50 | ||||
|   cli -s .video0.bitrate 4096 | ||||
|   cli -s .video0.codec h264 | ||||
|   cli -s .video0.rcMode cbr | ||||
|   cli -s .video0.gopSize 0.2 | ||||
|   cli -s .hls.enabled false | ||||
|   cli -s .netip.enabled false | ||||
|   cli -s .jpeg.enabled false | ||||
|   # lowdelay support only imx307 sensor | ||||
|   if [ ${sensor} = "imx307" ]; then | ||||
| 	  cli -s .video0.size 1280x720 | ||||
| 	  # cli -s .video0.fps 30 | ||||
| 	  cli -s .isp.lowDelay true | ||||
| 	  # cli -s .video0.sliceUnits 4 | ||||
|   if [ -f /usr/bin/mavlink-routerd ]; then | ||||
|     # disable mavlink routerd autostart | ||||
|     sed -i "s!/usr/bin/mavlink-routerd &!#/usr/bin/mavlink-routerd &!g" /etc/init.d/S97mavlink | ||||
|   fi | ||||
|   if [ -f /usr/bin/majestic ]; then | ||||
|     # majestic basic settings | ||||
|     cli -s .isp.slowShutter disabled | ||||
|     cli -s .isp.drc 350 | ||||
|     # enable digital image stabilization | ||||
|     # cli -s .isp.dis true | ||||
|     cli -s .image.contrast 50 | ||||
|     cli -s .image.luminance 50 | ||||
|     cli -s .video0.bitrate 4096 | ||||
|     cli -s .video0.codec h264 | ||||
|     cli -s .video0.rcMode cbr | ||||
|     cli -s .video0.gopSize 0.2 | ||||
|     cli -s .hls.enabled false | ||||
|     cli -s .netip.enabled false | ||||
|     cli -s .jpeg.enabled false | ||||
|     # lowdelay support only imx307 sensor | ||||
|     if [ ${sensor} = "imx307" ]; then | ||||
| 	    cli -s .video0.size 1280x720 | ||||
| 	    # cli -s .video0.fps 30 | ||||
| 	    cli -s .isp.lowDelay true | ||||
| 	    # cli -s .video0.sliceUnits 4 | ||||
|     fi | ||||
| # outgoing rtp stream to udp | ||||
| cat >> /etc/majestic.yaml << EOF | ||||
| outgoing: | ||||
|   - udp://127.0.0.1:5600 | ||||
| EOF | ||||
|   fi | ||||
| 
 | ||||
| # tune socket buffer | ||||
| cat >> /etc/sysctl.conf << EOF | ||||
| net.core.rmem_default=524288 | ||||
| net.core.rmem_max=2048000 | ||||
| EOF | ||||
| # add outgoing rtp stream to udp | ||||
| cat >> /etc/majestic.yaml << EOF | ||||
| outgoing: | ||||
|   - udp://127.0.0.1:5600 | ||||
| EOF | ||||
| 
 | ||||
|   # complete tweaks | ||||
|   touch /etc/system.ok | ||||
|   echo "Preparing system done." | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| 
 | ||||
| MAVFWD_SITE_METHOD = git | ||||
| MAVFWD_SITE = https://github.com/openipc/mavfwd | ||||
| MAVFWD_VERSION = 220d30e118d26008e94445887a03d77ba73c2d29 | ||||
| MAVFWD_VERSION = c95613e241e03782fc6acc4780e60d8b4316a736 | ||||
| 
 | ||||
| MAVFWD_LICENSE = MIT | ||||
| MAVFWD_LICENSE_FILES = LICENSE | ||||
|  | @ -18,8 +18,8 @@ define MAVFWD_BUILD_CMDS | |||
| endef | ||||
| 
 | ||||
| define MAVFWD_INSTALL_TARGET_CMDS | ||||
|     $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin | ||||
|     $(INSTALL) -m 0755 -D $(@D)/mavfwd $(TARGET_DIR)/usr/sbin/mavfwd | ||||
|     $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||
|     $(INSTALL) -m 0755 -D $(@D)/mavfwd $(TARGET_DIR)/usr/bin/mavfwd | ||||
| endef | ||||
| 
 | ||||
| $(eval $(generic-package)) | ||||
|  |  | |||
|  | @ -1,60 +1,21 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| DAEMON="venc" | ||||
| PIDFILE="/var/run/$DAEMON.pid" | ||||
| DAEMON_ARGS="-s" | ||||
| [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" | ||||
| load_venc() { | ||||
| 	[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, " | ||||
| 	[ -f /etc/coredump.conf ] && . /etc/coredump.conf | ||||
| 	if [ "$coredump_enabled" ]; then | ||||
| 		[ "$(cli -g .watchdog.timeout)" -lt "30" ] && cli -s .watchdog.timeout 30 | ||||
| 		ulimit -c unlimited && echo "|/usr/sbin/sendcoredump.sh" >/proc/sys/kernel/core_pattern | ||||
| 	fi | ||||
| 	start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" -- $DAEMON_ARGS | ||||
| 	ln -s /dev/venc /dev/ven | ||||
| 	/usr/bin/./venc -p 5600 -f 30 -r 7168 -n 1400 -c 265cbr -d frame -v 200_imx307F -s 720p & | ||||
| 	status=$? | ||||
| 	if [ "$status" -eq 0 ]; then | ||||
| 		echo "OK" | ||||
| 	else | ||||
| 		echo "FAIL" | ||||
| 	fi | ||||
| 	return "$status" | ||||
| } | ||||
| start() { | ||||
| 	logger -s -p daemon.info -t $(ipcinfo -v) "Loading video system has started..." | ||||
| 	export SENSOR=$(fw_printenv -n sensor) | ||||
| 	load_venc | ||||
| } | ||||
| stop() { | ||||
| 	printf 'Stopping %s: ' "$DAEMON" | ||||
| 	[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, " | ||||
| 	start-stop-daemon -K -q -p "$PIDFILE" | ||||
| 	status=$? | ||||
| 	if [ "$status" -eq 0 ]; then | ||||
| 		rm -f "$PIDFILE" | ||||
| 		echo "OK" | ||||
| 	else | ||||
| 		echo "FAIL" | ||||
| 	fi | ||||
| 	return "$status" | ||||
| } | ||||
| 
 | ||||
| restart() { | ||||
| 	stop | ||||
| 	sleep 1 | ||||
| 	reload | ||||
| } | ||||
| 
 | ||||
| reload() { | ||||
|     load_venc | ||||
| } | ||||
| # | ||||
| # Start venc encoder | ||||
| # | ||||
| 
 | ||||
| case "$1" in | ||||
| 	start|stop|restart|reload) | ||||
| 		"$1";; | ||||
| 	*) | ||||
| 		echo "Usage: $0 {start|stop|restart|reload}" | ||||
| 		exit 1 | ||||
|   start) | ||||
|     if ! [ -f /dev/ven ]; then | ||||
| 		ln -s /dev/venc /dev/ven | ||||
|     fi | ||||
|     echo "Starting venc encoder service..." | ||||
|     venc -p 5600 -f 30 -r 7168 -n 1400 -c 265cbr -d frame -v 200_imx307F -s 720p & | ||||
|     ;; | ||||
|   stop) | ||||
|     echo "Stopping venc encoder services..." | ||||
|     kill -9 $(pidof venc) | ||||
|     ;; | ||||
|     *) | ||||
|     echo "Usage: $0 {start|stop}" | ||||
|     exit 1 | ||||
| esac | ||||
|  |  | |||
|  | @ -1,3 +0,0 @@ | |||
| echo $1 $2 >>/tmp/channels.log | ||||
| 
 | ||||
| exit 1 | ||||
|  | @ -1,50 +0,0 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # Start telemetry | ||||
| # | ||||
| 
 | ||||
| . /etc/datalink.conf | ||||
| . /etc/telemetry.conf | ||||
| 
 | ||||
| keydir="/etc" | ||||
| 
 | ||||
| fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2) | ||||
| 
 | ||||
| start_telemetry() { | ||||
|   if [ ! -f /usr/bin/telemetry_rx -a ! -f /usr/bin/telemetry_tx ]; then | ||||
| 	  ln -s /usr/bin/wfb_rx /usr/bin/telemetry_rx ; chmod +x /usr/bin/telemetry_rx | ||||
| 	  ln -s /usr/bin/wfb_tx /usr/bin/telemetry_tx ; chmod +x /usr/bin/telemetry_tx | ||||
|   else | ||||
| 	if [ ${one_way} = "false" ]; then | ||||
| 	  telemetry_rx -p ${stream_rx} -u ${port_rx} -K ${keydir}/drone.key -i ${link_id} ${wlan} & | ||||
| 	fi | ||||
| 	telemetry_tx -p ${stream_tx} -u ${port_tx} -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} -L ${ldpc} -G ${guard_interval} -k ${fec_k} -n ${fec_n} -T ${fec_timeout} -i ${link_id} ${wlan} & | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| case "$1" in | ||||
|   start) | ||||
| 	echo "Loading MAVLink telemetry service..." | ||||
| 
 | ||||
| 	if [ ${router} -eq 1 ] || [ ${fw} = "lte" ]; then | ||||
| 	  /usr/bin/mavlink-routerd & | ||||
| 	else | ||||
| 	  mavfwd -c 14 --master ${serial} --baudrate ${baud} --out 127.0.0.1:${port_tx} --in 127.0.0.1:${port_rx} & | ||||
| 	fi | ||||
| 	echo "Firmware is ${fw}" | ||||
|   if [ ${fw} = "fpv" ] || [ ${fw} = "venc" ]; then | ||||
| 		start_telemetry | ||||
| 	fi | ||||
| 	echo "Done." | ||||
| 	;; | ||||
|   stop) | ||||
| 	echo "Stopping telemetry services..." | ||||
| 	kill -9 $(pidof telemetry_rx) | ||||
| 	kill -9 $(pidof telemetry_tx) | ||||
| 	kill -9 $(pidof mavlink-routerd) | ||||
| 	kill -9 $(pidof mavfwd) | ||||
| 	;; | ||||
|     *) | ||||
| 	echo "Usage: $0 {start|stop}" | ||||
| 	exit 1 | ||||
| esac | ||||
|  | @ -7,13 +7,11 @@ | |||
| VENC_OPENIPC_LICENSE = MIT | ||||
| 
 | ||||
| define VENC_OPENIPC_INSTALL_TARGET_CMDS | ||||
|   $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||
| 	cp $(VENC_OPENIPC_PKGDIR)/files/venc $(TARGET_DIR)/usr/bin/venc | ||||
| 	cp $(VENC_OPENIPC_PKGDIR)/files/telemetry $(TARGET_DIR)/usr/bin/telemetry | ||||
| 
 | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d | ||||
| 	cp $(VENC_OPENIPC_PKGDIR)/files/S98venc $(TARGET_DIR)/etc/init.d/S98venc | ||||
|   $(INSTALL) -m 755 -d $(TARGET_DIR)/root | ||||
| 	cp $(VENC_OPENIPC_PKGDIR)/files/channels.sh $(TARGET_DIR)/root/channels.sh | ||||
| endef | ||||
| 
 | ||||
| $(eval $(generic-package)) | ||||
|  |  | |||
|  | @ -135,7 +135,7 @@ case "$1" in | |||
| 	  fi | ||||
| 
 | ||||
| 	else | ||||
|       echo "Wifibroadcast service disabled in wfb.conf..." | ||||
|     	    echo "Wifibroadcast service disabled in wfb.conf..." | ||||
| 	fi | ||||
|     ;; | ||||
|   stop) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue