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 | BR2_PACKAGE_RTL8812AU_OPENIPC=y | ||||||
| 
 | 
 | ||||||
| # FPV | # FPV | ||||||
| # BR2_PACKAGE_VDEC is not set | # BR2_PACKAGE_VDEC_OPENIPC is not set | ||||||
| BR2_PACKAGE_DATALINK=y | BR2_PACKAGE_DATALINK=y | ||||||
| BR2_PACKAGE_WIFIBROADCAST=y | BR2_PACKAGE_WIFIBROADCAST=y | ||||||
| # BR2_PACKAGE_WFBOPENHD is not set | # BR2_PACKAGE_WFBOPENHD is not set | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ define DATALINK_INSTALL_TARGET_CMDS | ||||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc | 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc | ||||||
| 	cp $(DATALINK_PKGDIR)/files/datalink.conf $(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 | 	cp $(DATALINK_PKGDIR)/files/$(DATALINK_FPATH)/telemetry.conf $(TARGET_DIR)/etc | ||||||
| 
 | 
 | ||||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d | 	$(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 | 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||||
| 	cp $(DATALINK_PKGDIR)/files/$(DATALINK_FPATH)/telemetry $(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 | 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||||
| 	cp $(DATALINK_PKGDIR)/files/tweaksys $(TARGET_DIR)/usr/bin | 	cp $(DATALINK_PKGDIR)/files/tweaksys $(TARGET_DIR)/usr/bin | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | @ -11,7 +11,6 @@ fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2) | ||||||
| case "$1" in | case "$1" in | ||||||
|   start) |   start) | ||||||
| 	if ! [ -f /etc/system.ok ]; then | 	if ! [ -f /etc/system.ok ]; then | ||||||
| 		killall majestic |  | ||||||
| 		tweaksys ${chip} | 		tweaksys ${chip} | ||||||
| 	fi | 	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 | 	if [ ${router} -eq 1 ] || [ ${fw} = "lte" ]; then | ||||||
| 	  /usr/bin/mavlink-routerd & | 	  /usr/bin/mavlink-routerd & | ||||||
| 	else | 	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 | 	fi | ||||||
| 	if [ ${fw} = "fpv" ]; then | 	if [ ${fw} = "fpv" ] || [ ${fw} = "venc" ]; then | ||||||
| 		start_telemetry | 		start_telemetry | ||||||
| 	fi | 	fi | ||||||
| 	echo "Done." | 	echo "Done." | ||||||
|  |  | ||||||
|  | @ -18,3 +18,6 @@ fec_n=2 | ||||||
| fec_timeout=0 | fec_timeout=0 | ||||||
| guard_interval=long | guard_interval=long | ||||||
| one_way=false | 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() { | all_other() { | ||||||
|   # don't load f2fs module (disabled in kernel) |   # don't load f2fs module (disabled in kernel) | ||||||
|   sed -i "s!f2fs!#f2fs!g" /etc/modules |   sed -i "s!f2fs!#f2fs!g" /etc/modules | ||||||
|   # disable mavlink routerd autostart |   if [ -f /usr/bin/mavlink-routerd ]; then | ||||||
|   sed -i "s!/usr/bin/mavlink-routerd &!#/usr/bin/mavlink-routerd &!g" /etc/init.d/S97mavlink |     # disable mavlink routerd autostart | ||||||
|   # majestic basic settings |     sed -i "s!/usr/bin/mavlink-routerd &!#/usr/bin/mavlink-routerd &!g" /etc/init.d/S97mavlink | ||||||
|   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 |   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 | # tune socket buffer | ||||||
| cat >> /etc/sysctl.conf << EOF | cat >> /etc/sysctl.conf << EOF | ||||||
| net.core.rmem_default=524288 | net.core.rmem_default=524288 | ||||||
| net.core.rmem_max=2048000 | net.core.rmem_max=2048000 | ||||||
| EOF | EOF | ||||||
| # add outgoing rtp stream to udp | 
 | ||||||
| cat >> /etc/majestic.yaml << EOF |  | ||||||
| outgoing: |  | ||||||
|   - udp://127.0.0.1:5600 |  | ||||||
| EOF |  | ||||||
|   # complete tweaks |   # complete tweaks | ||||||
|   touch /etc/system.ok |   touch /etc/system.ok | ||||||
|   echo "Preparing system done." |   echo "Preparing system done." | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| MAVFWD_SITE_METHOD = git | MAVFWD_SITE_METHOD = git | ||||||
| MAVFWD_SITE = https://github.com/openipc/mavfwd | MAVFWD_SITE = https://github.com/openipc/mavfwd | ||||||
| MAVFWD_VERSION = 220d30e118d26008e94445887a03d77ba73c2d29 | MAVFWD_VERSION = c95613e241e03782fc6acc4780e60d8b4316a736 | ||||||
| 
 | 
 | ||||||
| MAVFWD_LICENSE = MIT | MAVFWD_LICENSE = MIT | ||||||
| MAVFWD_LICENSE_FILES = LICENSE | MAVFWD_LICENSE_FILES = LICENSE | ||||||
|  | @ -18,8 +18,8 @@ define MAVFWD_BUILD_CMDS | ||||||
| endef | endef | ||||||
| 
 | 
 | ||||||
| define MAVFWD_INSTALL_TARGET_CMDS | define MAVFWD_INSTALL_TARGET_CMDS | ||||||
|     $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin |     $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||||
|     $(INSTALL) -m 0755 -D $(@D)/mavfwd $(TARGET_DIR)/usr/sbin/mavfwd |     $(INSTALL) -m 0755 -D $(@D)/mavfwd $(TARGET_DIR)/usr/bin/mavfwd | ||||||
| endef | endef | ||||||
| 
 | 
 | ||||||
| $(eval $(generic-package)) | $(eval $(generic-package)) | ||||||
|  |  | ||||||
|  | @ -1,60 +1,21 @@ | ||||||
| #!/bin/sh | #!/bin/sh | ||||||
| 
 | # | ||||||
| DAEMON="venc" | # Start venc encoder | ||||||
| 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 |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| case "$1" in | case "$1" in | ||||||
| 	start|stop|restart|reload) |   start) | ||||||
| 		"$1";; |     if ! [ -f /dev/ven ]; then | ||||||
| 	*) | 		ln -s /dev/venc /dev/ven | ||||||
| 		echo "Usage: $0 {start|stop|restart|reload}" |     fi | ||||||
| 		exit 1 |     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 | 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 | VENC_OPENIPC_LICENSE = MIT | ||||||
| 
 | 
 | ||||||
| define VENC_OPENIPC_INSTALL_TARGET_CMDS | 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/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 | 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d | ||||||
| 	cp $(VENC_OPENIPC_PKGDIR)/files/S98venc $(TARGET_DIR)/etc/init.d/S98venc | 	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 | endef | ||||||
| 
 | 
 | ||||||
| $(eval $(generic-package)) | $(eval $(generic-package)) | ||||||
|  |  | ||||||
|  | @ -135,7 +135,7 @@ case "$1" in | ||||||
| 	  fi | 	  fi | ||||||
| 
 | 
 | ||||||
| 	else | 	else | ||||||
|       echo "Wifibroadcast service disabled in wfb.conf..." |     	    echo "Wifibroadcast service disabled in wfb.conf..." | ||||||
| 	fi | 	fi | ||||||
|     ;; |     ;; | ||||||
|   stop) |   stop) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue