some improvements for previous commit (#1025)

pull/1027/head
cronyx 2023-10-08 23:12:01 +03:00 committed by GitHub
parent 8f808868da
commit f4f4bd5f57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 71 additions and 149 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,5 @@
#!/bin/sh
echo $1 $2 >> /tmp/channels.log
exit 1

View File

@ -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."

View File

@ -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

View File

@ -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."

View File

@ -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))

View File

@ -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

View File

@ -1,3 +0,0 @@
echo $1 $2 >>/tmp/channels.log
exit 1

View File

@ -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

View File

@ -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))

View File

@ -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)