mirror of https://github.com/OpenIPC/firmware.git
[no ci] General: refine fpv scripts (#1387)
parent
a9214c48af
commit
b4bf50b5d3
|
@ -4,7 +4,7 @@ skip=$(fw_printenv -n fpv)
|
|||
fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2)
|
||||
|
||||
if [ -e /etc/datalink.conf ]; then
|
||||
source /etc/datalink.conf
|
||||
. /etc/datalink.conf
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
|
@ -32,9 +32,9 @@ case "$1" in
|
|||
if [ "$use_zt" = "true" ]; then
|
||||
echo "Starting ZeroTier-One daemon..."
|
||||
/usr/sbin/zerotier-one -d &
|
||||
if [ ! -f /var/lib/zerotier-one/networks.d/$zt_netid.conf ]; then
|
||||
if [ ! -f "/var/lib/zerotier-one/networks.d/$zt_netid.conf" ]; then
|
||||
sleep 8
|
||||
zerotier-cli join $zt_netid &> /dev/null
|
||||
zerotier-cli join "$zt_netid" > /dev/null
|
||||
echo "Don't forget authorize in the my.zerotier.com!"
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
chip=$(ipcinfo -c)
|
||||
family=$(ipcinfo -f)
|
||||
vendor=$(ipcinfo -v)
|
||||
|
||||
if ! [ ${chip} = "hi3536dv100" ]; then
|
||||
if [ ! "$chip" = "hi3536dv100" ]; then
|
||||
sensor=$(ipcinfo -s)
|
||||
fi
|
||||
|
||||
basic() {
|
||||
# set boot delay
|
||||
fw_setenv bootdelay 0
|
||||
|
||||
# don't load f2fs module (disabled in kernel)
|
||||
sed -i "s!f2fs!#f2fs!g" /etc/modules
|
||||
# freely uart for telemetry
|
||||
|
||||
# free uart for telemetry
|
||||
sed -i "s!console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL!#console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL!g" /etc/inittab
|
||||
|
||||
# tune socket buffer
|
||||
|
@ -23,19 +24,21 @@ basic() {
|
|||
prefix=${family}
|
||||
|
||||
hisi_goke() {
|
||||
if [ ${vendor} = "hisilicon" ]; then
|
||||
if [ "$vendor" = "hisilicon" ]; then
|
||||
prefix="open"
|
||||
fi
|
||||
|
||||
# remove unneeded modules
|
||||
sed -i "s!insmod ${prefix}_rgn.ko!#insmod ${prefix}_rgn.ko!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_jpege.ko!#insmod ${prefix}_jpege.ko!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_ive.ko save_power=0!#insmod ${prefix}_ive.ko save_power=0!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_aio.ko!#insmod ${prefix}_aio.ko!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_ai.ko!#insmod ${prefix}_ai.ko!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_ao.ko!#insmod ${prefix}_ao.ko!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_aenc.ko!#insmod ${prefix}_aenc.ko!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_adec.ko!#insmod ${prefix}_adec.ko!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_acodec.ko!#insmod ${prefix}_acodec.ko!g" /usr/bin/load_${vendor}
|
||||
sed -i "s!insmod ${prefix}_rgn.ko!#insmod ${prefix}_rgn.ko!g" "/usr/bin/load_${vendor}"
|
||||
sed -i "s!insmod ${prefix}_jpege.ko!#insmod ${prefix}_jpege.ko!g" "/usr/bin/load_${vendor}"
|
||||
sed -i "s!insmod ${prefix}_ive.ko save_power=0!#insmod ${prefix}_ive.ko save_power=0!g" "/usr/bin/load_${vendor}"
|
||||
sed -i "s!insmod ${prefix}_aio.ko!#insmod ${prefix}_aio.ko!g" "/usr/bin/load_${vendor}"
|
||||
sed -i "s!insmod ${prefix}_ai.ko!#insmod ${prefix}_ai.ko!g" "/usr/bin/load_${vendor}"
|
||||
sed -i "s!insmod ${prefix}_ao.ko!#insmod ${prefix}_ao.ko!g" "/usr/bin/load_${vendor}"
|
||||
sed -i "s!insmod ${prefix}_aenc.ko!#insmod ${prefix}_aenc.ko!g" "/usr/bin/load_${vendor}"
|
||||
sed -i "s!insmod ${prefix}_adec.ko!#insmod ${prefix}_adec.ko!g" "/usr/bin/load_${vendor}"
|
||||
sed -i "s!insmod ${prefix}_acodec.ko!#insmod ${prefix}_acodec.ko!g" "/usr/bin/load_${vendor}"
|
||||
|
||||
# change fps 25 -> 30
|
||||
sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/imx307_i2c_2l_1080p.ini
|
||||
sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/smtsec_imx307_i2c_4l_1080p.ini
|
||||
|
@ -48,9 +51,10 @@ sigmastar() {
|
|||
}
|
||||
|
||||
majestic_generic() {
|
||||
cli -s .isp.slowShutter disabled
|
||||
# enable digital image stabilization
|
||||
# cli -s .isp.dis true
|
||||
|
||||
cli -s .isp.slowShutter disabled
|
||||
cli -s .image.contrast 50
|
||||
cli -s .image.luminance 50
|
||||
cli -s .video0.size 1920x1080
|
||||
|
@ -59,15 +63,18 @@ majestic_generic() {
|
|||
cli -s .video0.codec h264
|
||||
cli -s .video0.rcMode cbr
|
||||
cli -s .video0.gopSize 1.5
|
||||
|
||||
# lowdelay support only imx307 sensor
|
||||
if [ ${sensor} = "imx307" ]; then
|
||||
if [ "$sensor" = "imx307" ]; then
|
||||
cli -s .isp.lowDelay true
|
||||
# cli -s .video0.sliceUnits 4
|
||||
fi
|
||||
if [ ${sensor} = "imx335" ]; then
|
||||
|
||||
if [ "$sensor" = "imx335" ]; then
|
||||
cli -s .isp.drc 350
|
||||
cli -s .isp.sensorConfig /etc/sensors/imx335_i2c_4M.ini
|
||||
fi
|
||||
|
||||
cli -s .hls.enabled false
|
||||
cli -s .netip.enabled false
|
||||
cli -s .jpeg.enabled false
|
||||
|
@ -85,18 +92,19 @@ majestic_sigmastar() {
|
|||
|
||||
streamer() {
|
||||
if [ -f /usr/bin/majestic ]; then
|
||||
if [ ${vendor} = "sigmastar" ]; then
|
||||
if [ "$vendor" = "sigmastar" ]; then
|
||||
majestic_sigmastar
|
||||
else
|
||||
majestic_generic
|
||||
fi
|
||||
|
||||
# outgoing rtp stream to udp
|
||||
cli -s .outgoing.enabled true
|
||||
cli -s .outgoing.server udp://127.0.0.1:5600
|
||||
fi
|
||||
|
||||
if [ -f /usr/bin/venc ]; then
|
||||
if [ ${sensor} = "imx335" ]; then
|
||||
if [ "$sensor" = "imx335" ]; then
|
||||
sed -i "s!version=200_imx307B!version=300_imx335B!g" /etc/venc.conf
|
||||
sed -i "s!size=720p!size=1292x972!g" /etc/venc.conf
|
||||
fi
|
||||
|
@ -106,24 +114,24 @@ streamer() {
|
|||
finish() {
|
||||
# complete tweaks and add marker
|
||||
touch /etc/system.ok
|
||||
echo "Preparing system done."
|
||||
reboot
|
||||
echo "Manually restart the system to apply changes."
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
gk7205v200 | gk7205v210 | hi3516ev200)
|
||||
echo "Preparing system tweaks for ${chip}..."
|
||||
|
||||
# set custom config
|
||||
if [ ${chip} = "gk7205v200" ] && [ ${sensor} = "imx307" ]; then
|
||||
if [ "$chip" = "gk7205v200" ] && [ "$sensor" = "imx307" ]; then
|
||||
echo "switch to custom sensor config"
|
||||
# cli -s .isp.sensorConfig /etc/sensors/60fps/720p_imx307_i2c_2l.ini
|
||||
fi
|
||||
|
||||
# fix osmem in bootargs
|
||||
bootargs=$(fw_printenv -n bootargs)
|
||||
if echo ${bootargs} | grep -q "32M"; then
|
||||
newbootargs="mem=\${osmem} "$(echo ${bootargs} | cut -d " " -f2-)
|
||||
fw_setenv bootargs ${newbootargs}
|
||||
if echo "$bootargs" | grep -q "32M"; then
|
||||
newbootargs="mem=\${osmem} "$(echo "$bootargs" | cut -d " " -f2-)
|
||||
fw_setenv bootargs "$newbootargs"
|
||||
fw_setenv osmem 40M
|
||||
fi
|
||||
|
||||
|
@ -137,13 +145,13 @@ case "$1" in
|
|||
;;
|
||||
|
||||
gk7205v300 | hi3516ev300)
|
||||
echo "Preparing system tweaks for ${chip}..."
|
||||
echo "Preparing system tweaks for $chip..."
|
||||
|
||||
# increase osmem
|
||||
mem=$(fw_printenv -n osmem) && [ "${mem}" = "32M" ] && fw_setenv osmem 64M && set_allocator cma || echo "Memory allocated for the system:" ${mem}
|
||||
mem=$(fw_printenv -n osmem) && [ "$mem" = "32M" ] && fw_setenv osmem 64M && set_allocator cma || echo "Memory allocated for the system:" "$mem"
|
||||
|
||||
# set sensor config for smtsec board
|
||||
if [ ${chip} = "gk7205v300" ] && [ ${sensor} = "imx307" ]; then
|
||||
if [ "$chip" = "gk7205v300" ] && [ "$sensor" = "imx307" ]; then
|
||||
cli -s .isp.sensorConfig /etc/sensors/smtsec_imx307_i2c_4l_1080p.ini
|
||||
fi
|
||||
|
||||
|
@ -154,19 +162,19 @@ case "$1" in
|
|||
;;
|
||||
|
||||
t31l | t31n | t31x | t31zx)
|
||||
echo "Preparing system tweaks for ${chip}..."
|
||||
echo "Preparing system tweaks for $chip..."
|
||||
basic
|
||||
streamer
|
||||
finish
|
||||
;;
|
||||
|
||||
hi3536dv100)
|
||||
echo "Preparing system tweaks for ${chip}..."
|
||||
echo "Preparing system tweaks for $chip..."
|
||||
finish
|
||||
;;
|
||||
|
||||
ssc33x)
|
||||
echo "Preparing system tweaks for ${chip}..."
|
||||
echo "Preparing system tweaks for $chip..."
|
||||
basic
|
||||
sigmastar
|
||||
streamer
|
||||
|
|
|
@ -4,11 +4,11 @@ vendor=$(ipcinfo -v)
|
|||
keydir=/etc
|
||||
|
||||
if [ -e /etc/datalink.conf ]; then
|
||||
source /etc/datalink.conf
|
||||
. /etc/datalink.conf
|
||||
fi
|
||||
|
||||
if [ -e /etc/wfb.conf ]; then
|
||||
source /etc/wfb.conf
|
||||
. /etc/wfb.conf
|
||||
fi
|
||||
|
||||
set_mcs() {
|
||||
|
@ -19,12 +19,12 @@ set_mcs() {
|
|||
fi
|
||||
|
||||
if [ -z "$mcs" ]; then
|
||||
setmcs $mcs_index
|
||||
setmcs "$mcs_index"
|
||||
fi
|
||||
|
||||
if [ "$mcs_index" -eq 1 ] || [ "$mcs_index" -eq 3 ]; then
|
||||
if [ ! "$mcs_index" -eq "$mcs" ]; then
|
||||
setmcs $mcs_index
|
||||
setmcs "$mcs_index"
|
||||
sleep 3
|
||||
fi
|
||||
fi
|
||||
|
@ -40,7 +40,7 @@ detect_wifi_card() {
|
|||
case "$card" in
|
||||
"0bda:8812" | "0bda:881a" | "0b05:17d2" | "2357:0101" | "2604:0012")
|
||||
driver="realtek"
|
||||
modprobe 88XXau rtw_tx_pwr_idx_override=$driver_txpower_override
|
||||
modprobe 88XXau rtw_tx_pwr_idx_override="$driver_txpower_override"
|
||||
;;
|
||||
|
||||
"0cf3:9271" | "040d:3801")
|
||||
|
@ -49,7 +49,7 @@ detect_wifi_card() {
|
|||
set_mcs
|
||||
fi
|
||||
modprobe mac80211
|
||||
modprobe ath9k_hw txpower=$txpower
|
||||
modprobe ath9k_hw txpower="$txpower"
|
||||
modprobe ath9k_htc
|
||||
;;
|
||||
esac
|
||||
|
@ -59,13 +59,13 @@ detect_wifi_card() {
|
|||
echo "No usb wifi card detected. Check wifi stick connection, usb power or possible bad soldering."
|
||||
exit 1
|
||||
else
|
||||
echo "Detected:" $driver
|
||||
echo "Detected: $driver"
|
||||
fi
|
||||
|
||||
echo "Awaiting interface $wlan in system..."
|
||||
|
||||
local n=0
|
||||
while ! $(ifconfig -a | grep -q $wlan); do
|
||||
while ! ifconfig -a | grep -q "$wlan"; do
|
||||
if [ "$n" -ge 5 ]; then
|
||||
echo "No interface $wlan. Check wifi stick connection, usb power or possible bad soldering."
|
||||
exit 1
|
||||
|
@ -82,19 +82,19 @@ load_modules() {
|
|||
|
||||
load_interface() {
|
||||
if [ "$driver" = "realtek" ]; then
|
||||
ifconfig $wlan up
|
||||
iwconfig $wlan mode monitor
|
||||
ifconfig "$wlan" up
|
||||
iwconfig "$wlan" mode monitor
|
||||
elif [ "$driver" = "atheros" ]; then
|
||||
iwconfig $wlan mode monitor
|
||||
ifconfig $wlan up
|
||||
iwconfig "$wlan" mode monitor
|
||||
ifconfig "$wlan" up
|
||||
fi
|
||||
|
||||
iw reg set $region
|
||||
iw reg set "$region"
|
||||
|
||||
if [ ! -z "$frequency" ]; then
|
||||
iwconfig $wlan freq $frequency
|
||||
if [ -n "$frequency" ]; then
|
||||
iwconfig "$wlan" freq "$frequency"
|
||||
else
|
||||
iwconfig $wlan channel $channel
|
||||
iwconfig "$wlan" channel "$channel"
|
||||
fi
|
||||
|
||||
# dirty fix crash if txpower set. setting txpower disabled because patched driver always set txpower level 58
|
||||
|
@ -102,13 +102,13 @@ load_interface() {
|
|||
}
|
||||
|
||||
start_drone_wfb() {
|
||||
wfb_tx -p $stream -u $udp_port -R $rcv_buf -K $keydir/$unit.key -B $bandwidth \
|
||||
-M $mcs_index -S $stbc -L $ldpc -G $guard_interval -k $fec_k -n $fec_n \
|
||||
-T $pool_timeout -i $link_id -f $frame_type $wlan > /dev/null &
|
||||
wfb_tx -p "$stream" -u "$udp_port" -R "$rcv_buf" -K "$keydir/$unit.key" -B "$bandwidth" \
|
||||
-M "$mcs_index" -S "$stbc" -L "$ldpc" -G "$guard_interval" -k "$fec_k" -n "$fec_n" \
|
||||
-T "$pool_timeout" -i "$link_id" -f "$frame_type" "$wlan" > /dev/null &
|
||||
}
|
||||
|
||||
start_gs_wfb() {
|
||||
wfb_rx -c $udp_addr -u $udp_port -p $stream -K $keydir/$unit.key -i $link_id $wlan > /dev/null &
|
||||
wfb_rx -c "$udp_addr" -u "$udp_port" -p "$stream" -K "$keydir/$unit.key" -i "$link_id" "$wlan" > /dev/null &
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
|
@ -122,13 +122,13 @@ case "$1" in
|
|||
|
||||
if ! cat "$keydir/$unit.key" > /dev/null 2>&1; then
|
||||
echo "Generating drone & ground station keys..."
|
||||
cd $keydir; wfb_keygen
|
||||
cd $keydir && wfb_keygen
|
||||
else
|
||||
echo $unit "key exist..."
|
||||
echo "$unit key exist..."
|
||||
fi
|
||||
|
||||
echo "Starting Wifibroadcast service..."
|
||||
start_${unit}_wfb
|
||||
start_"$unit"_wfb
|
||||
echo "Done."
|
||||
|
||||
if [ "$telemetry" = "true" ]; then
|
||||
|
|
Loading…
Reference in New Issue