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