133 lines
4.8 KiB
Makefile
133 lines
4.8 KiB
Makefile
# Makefile for installation of echomav_deploy on EchoPilot AI hardware
|
|
# This is installation of mavlink-router, cockpit and network setup
|
|
# Spiri modified to install additional features
|
|
.DEFAULT_GOAL := default
|
|
SHELL := /bin/bash
|
|
SUDO := $(shell test $${EUID} -ne 0 && echo "sudo")
|
|
.EXPORT_ALL_VARIABLES:
|
|
SYSCFG = /etc/mavlink-router
|
|
CONFIG ?= /var/local
|
|
LIBSYSTEMD=/lib/systemd/system
|
|
SERVICES=mavlink-router.service temperature.service wifibroadcast@drone fpv-camera.service
|
|
DRY_RUN=false
|
|
LOCAL=/usr/local
|
|
LOCAL_SCRIPTS=temperature.sh cockpitScript.sh
|
|
|
|
.PHONY = enable install see uninstall static default no-static
|
|
|
|
default:
|
|
@$(MAKE) --no-print-directory install
|
|
@$(MAKE) --no-print-directory static
|
|
|
|
explicit-ip:
|
|
@$(MAKE) --no-print-directory install
|
|
@$(SUDO) ./static-network.sh -i eth0 -a $(ip)
|
|
|
|
no-static:
|
|
@$(MAKE) --no-print-directory install
|
|
|
|
disable:
|
|
@( for c in stop disable ; do $(SUDO) systemctl $${c} $(SERVICES) ; done ; true )
|
|
|
|
enable:
|
|
@( for c in stop disable ; do $(SUDO) systemctl $${c} $(SERVICES) ; done ; true )
|
|
@( for s in $(SERVICES) ; do $(SUDO) install -Dm644 $${s%.*}.service $(LIBSYSTEMD)/$${s%.*}.service ; done ; true )
|
|
@if [ ! -z "$(SERVICES)" ] ; then $(SUDO) systemctl daemon-reload ; fi
|
|
@( for s in $(SERVICES) ; do $(SUDO) systemctl enable $${s%.*} ; done ; true )
|
|
@echo ""
|
|
@echo "Service is installed. To run now use sudo systemctl start mavlink-router and sudo systemctl start cockpit.socket"
|
|
@echo "Inspect output with sudo journalctl -fu mavlink-router"
|
|
@echo ""
|
|
|
|
static:
|
|
# set up static ip address on eth0
|
|
@$(SUDO) ./static-network.sh -i eth0 -a auto
|
|
|
|
install:
|
|
# install helper apps
|
|
# @$(SUDO) rm -r /var/lib/apt/lists/*
|
|
@$(SUDO) apt update
|
|
@$(SUDO) apt install -y nano
|
|
@$(SUDO) apt install -y nload
|
|
@$(SUDO) apt install -y htop
|
|
@$(SUDO) apt install -y picocom
|
|
|
|
# install mavlink-router
|
|
@rm -rf ~/tmp/mavlink-router-source
|
|
@git clone https://github.com/EchoMAV/mavlink-router-src ~/tmp/mavlink-router-source && cd ~/tmp/mavlink-router-source && git submodule update --init --recursive
|
|
@$(SUDO) apt -y install git ninja-build pkg-config gcc g++ systemd
|
|
@$(SUDO) apt -y install python3-pip
|
|
@$(SUDO) pip3 install meson smbus
|
|
@cd ~/tmp/mavlink-router-source && meson setup build . && $(SUDO) ninja -C build install
|
|
|
|
# install the config file
|
|
@$(SUDO) mkdir -p $(SYSCFG)
|
|
@$(SUDO) cp main.conf $(SYSCFG)/.
|
|
|
|
# install cockpit
|
|
@$(SUDO) ./ensure-cockpit.sh
|
|
|
|
# set up cockpit files
|
|
|
|
@$(SUDO) rm -rf /usr/share/cockpit/general/
|
|
@$(SUDO) mkdir /usr/share/cockpit/general/
|
|
@$(SUDO) cp -rf ui/general/* /usr/share/cockpit/general/
|
|
@$(SUDO) cp -rf ui/branding-ubuntu/* /usr/share/cockpit/branding/ubuntu/
|
|
@$(SUDO) cp -rf ui/static/* /usr/share/cockpit/static/
|
|
@$(SUDO) cp -rf ui/base1/* /usr/share/cockpit/base1/
|
|
@[ -d $(LOCAL)/echopilot ] || $(SUDO) mkdir $(LOCAL)/echopilot
|
|
@$(SUDO) install -Dm755 version.txt $(LOCAL)/echopilot/.
|
|
@for s in $(LOCAL_SCRIPTS) ; do $(SUDO) install -Dm755 $${s} $(LOCAL)/echopilot/$${s} ; done
|
|
|
|
# install modified 8812EU drivers
|
|
|
|
@git clone https://github.com/libc0607/rtl88x2eu-20230815 ~/tmp/rtl88x2eu && cd ~/tmp/rtl88x2eu && git submodule update --init --recursive
|
|
@$(SUDO) sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
|
|
@$(SUDO) sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile
|
|
@$(SUDO) apt -y install dkms
|
|
@$(SUDO) ./dkms-install.sh
|
|
|
|
# configure naming of wireless interface
|
|
|
|
# Install WFB-NG dependancies and compile deb
|
|
@git clone -b stable https://github.com/svpcom/wfb-ng.git ~/tmp/wfb-ng && cd ~/tmp/wfb-ng
|
|
@$(SUDO) apt -y install python3-all libpcap-dev libsodium-dev python3-pip python3-pyroute2 python3-future python3-twisted python3-serial python3-all-dev iw virtualenv debhelper dh-python build-essential
|
|
@$(SUDO) make deb
|
|
@$(SUDO) dpkg -i /deb_dist/wfb*.deb
|
|
|
|
# create initial WFB-NG config file
|
|
@$(SUDO) cp wifibroadcast.cfg /etc/
|
|
|
|
# move drone encryption key to /etc/
|
|
@$(SUDO) cp drone.key /etc/
|
|
|
|
# stop any running services we care about
|
|
@for c in stop disable ; do $(SUDO) systemctl $${c} $(SERVICES) ; done ; true
|
|
|
|
# install and enable services
|
|
@for s in $(SERVICES) ; do $(SUDO) install -Dm644 $${s%.*}.service $(LIBSYSTEMD)/$${s%.*}.service ; done
|
|
@if [ ! -z "$(SERVICES)" ] ; then $(SUDO) systemctl daemon-reload ; fi
|
|
@for s in $(SERVICES) ; do $(SUDO) systemctl enable $${s%.*} ; done
|
|
|
|
|
|
# set up the system permissions, stop/disable nvgetty etc
|
|
@$(SUDO) systemctl stop nvgetty
|
|
@$(SUDO) systemctl disable nvgetty
|
|
@$(SUDO) usermod -aG dialout $${USER}
|
|
@$(SUDO) usermod -aG tty $${USER}
|
|
@echo ""
|
|
|
|
see:
|
|
$(SUDO) cat $(SYSCFG)/main.conf
|
|
|
|
serial:
|
|
-@$(SUDO) python3 serial_number.py 0 || true
|
|
-@$(SUDO) python3 serial_number.py 1 || true
|
|
|
|
uninstall:
|
|
@$(MAKE) --no-print-directory disable
|
|
@( for s in $(SERVICES) ; do $(SUDO) rm $(LIBSYSTEMD)/$${s%.*}.service ; done ; true )
|
|
@if [ ! -z "$(SERVICES)" ] ; then $(SUDO) systemctl daemon-reload ; fi
|
|
|
|
|