mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-07-21 02:51:03 +00:00
118 lines
3.6 KiB
Bash
118 lines
3.6 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
find_st7789v_fbdev()
|
|
{
|
|
[ -r /proc/fb ] || return 1
|
|
|
|
while IFS= read -r line; do
|
|
case "$line" in
|
|
*fb_st7789v*)
|
|
set -- $line
|
|
case "${1:-}" in
|
|
''|*[!0-9]*) return 1 ;;
|
|
*) printf '/dev/fb%s\n' "$1"; return 0 ;;
|
|
esac
|
|
;;
|
|
esac
|
|
done < /proc/fb
|
|
|
|
return 1
|
|
}
|
|
|
|
case "$0" in
|
|
*/*) script_dir=${0%/*} ;;
|
|
*) script_dir=/usr/lib/trailmate-cardputer-zero ;;
|
|
esac
|
|
|
|
settings_root=${TRAIL_MATE_SETTINGS_ROOT:-${HOME:-/home/pi}/.trailmate_cardputer_zero}
|
|
|
|
load_env_file()
|
|
{
|
|
env_file=$1
|
|
[ -r "$env_file" ] || return 0
|
|
set -a
|
|
. "$env_file"
|
|
set +a
|
|
}
|
|
|
|
load_env_file /etc/trailmate-cardputer-zero.env
|
|
load_env_file "$settings_root/trailmate.env"
|
|
|
|
: "${TRAIL_MATE_RUNTIME_MODE:=mesh}"
|
|
: "${TRAIL_MATE_LORA_SPI:=/dev/spidev0.1}"
|
|
: "${TRAIL_MATE_LORA_GPIOCHIP:=/dev/gpiochip0}"
|
|
: "${TRAIL_MATE_LORA_POWER_GPIO:=-1}"
|
|
: "${TRAIL_MATE_LORA_RESET_GPIO:=26}"
|
|
: "${TRAIL_MATE_LORA_BUSY_GPIO:=22}"
|
|
: "${TRAIL_MATE_LORA_IRQ_GPIO:=23}"
|
|
: "${TRAIL_MATE_LORA_SPI_HZ:=500000}"
|
|
: "${TRAIL_MATE_LORA_DIO2_RF_SWITCH:=1}"
|
|
: "${TRAIL_MATE_LORA_DIO3_TCXO_1V8:=1}"
|
|
: "${TRAIL_MATE_GPS_BAUD:=115200}"
|
|
: "${TRAIL_MATE_GPS_AUTO_SERIAL:=1}"
|
|
: "${TRAIL_MATE_GPS_DEVICE_CANDIDATES:=/dev/serial0:/dev/ttyAMA1:/dev/ttyAMA0:/dev/ttyS0:/dev/ttyS1}"
|
|
: "${TRAIL_MATE_DESKTOP_NOTIFICATIONS:=freedesktop}"
|
|
|
|
if [ -z "${ALL_PROXY:-}${all_proxy:-}${HTTPS_PROXY:-}${https_proxy:-}${HTTP_PROXY:-}${http_proxy:-}" ] &&
|
|
command -v ss >/dev/null 2>&1 &&
|
|
ss -ltn 2>/dev/null | grep -q '127\.0\.0\.1:7890'; then
|
|
ALL_PROXY=http://127.0.0.1:7890
|
|
all_proxy=$ALL_PROXY
|
|
HTTPS_PROXY=$ALL_PROXY
|
|
https_proxy=$ALL_PROXY
|
|
HTTP_PROXY=$ALL_PROXY
|
|
http_proxy=$ALL_PROXY
|
|
fi
|
|
|
|
export TRAIL_MATE_RUNTIME_MODE
|
|
export TRAIL_MATE_LORA_SPI TRAIL_MATE_LORA_GPIOCHIP
|
|
export TRAIL_MATE_LORA_POWER_GPIO TRAIL_MATE_LORA_RESET_GPIO
|
|
export TRAIL_MATE_LORA_BUSY_GPIO TRAIL_MATE_LORA_IRQ_GPIO
|
|
export TRAIL_MATE_LORA_SPI_HZ TRAIL_MATE_LORA_DIO2_RF_SWITCH
|
|
export TRAIL_MATE_LORA_DIO3_TCXO_1V8
|
|
export TRAIL_MATE_GPS_BAUD TRAIL_MATE_GPS_AUTO_SERIAL
|
|
export TRAIL_MATE_GPS_DEVICE TRAIL_MATE_GPS_DEVICE_CANDIDATES
|
|
export TRAIL_MATE_DESKTOP_NOTIFICATIONS
|
|
export TRAIL_MATE_EARTHDATA_TOKEN TRAIL_MATE_EARTH_DATA_TOKEN
|
|
export ALL_PROXY all_proxy HTTPS_PROXY https_proxy HTTP_PROXY http_proxy
|
|
|
|
backend=${TRAIL_MATE_DISPLAY_BACKEND:-auto}
|
|
|
|
case "$backend" in
|
|
wayland|labwc)
|
|
exec "$script_dir/trailmate-cardputer-zero" "$@"
|
|
;;
|
|
auto|"")
|
|
if [ -n "${WAYLAND_DISPLAY:-}" ]; then
|
|
exec "$script_dir/trailmate-cardputer-zero" "$@"
|
|
fi
|
|
echo "trailmate-cardputer-zero-applaunch: Wayland session is required; set TRAIL_MATE_DISPLAY_BACKEND=fbdev only for explicit framebuffer debugging." >&2
|
|
exit 127
|
|
;;
|
|
fb|fbdev|framebuffer|device)
|
|
;;
|
|
*)
|
|
echo "trailmate-cardputer-zero-applaunch: unsupported TRAIL_MATE_DISPLAY_BACKEND=$backend" >&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
if [ -z "${TRAIL_MATE_FRAMEBUFFER:-}" ]; then
|
|
if [ -n "${APPLAUNCH_LINUX_FBDEV_DEVICE:-}" ]; then
|
|
TRAIL_MATE_FRAMEBUFFER=$APPLAUNCH_LINUX_FBDEV_DEVICE
|
|
elif detected_fbdev=$(find_st7789v_fbdev); then
|
|
TRAIL_MATE_FRAMEBUFFER=$detected_fbdev
|
|
else
|
|
TRAIL_MATE_FRAMEBUFFER=/dev/fb1
|
|
fi
|
|
fi
|
|
|
|
if [ -z "${TRAIL_MATE_INPUT_DEVICE:-}" ]; then
|
|
TRAIL_MATE_INPUT_DEVICE="${APPLAUNCH_LINUX_KEYBOARD_DEVICE:-/dev/input/by-path/platform-3f804000.i2c-event}"
|
|
fi
|
|
|
|
export TRAIL_MATE_FRAMEBUFFER TRAIL_MATE_INPUT_DEVICE
|
|
|
|
exec "$script_dir/trailmate-cardputer-zero-fbdev" "$@"
|