mirror of https://github.com/ArduPilot/ardupilot
AP_HAL_QURT: Add Debian packaging script and support files
This commit is contained in:
parent
ab886f1d89
commit
7d3740f79f
|
@ -0,0 +1,5 @@
|
|||
*.deb
|
||||
pkg/DEB
|
||||
pkg/data
|
||||
pkg/control/control
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e # exit on error to prevent bad ipk from being generated
|
||||
|
||||
[ $# -eq 2 ] || {
|
||||
echo "Usage: make_package.sh VEHICLETYPE VEHICLE_BINARY"
|
||||
exit 1
|
||||
}
|
||||
|
||||
VEHICLETYPE="$1"
|
||||
VEHICLE_BINARY="$2"
|
||||
|
||||
[ -d $VEHICLETYPE ] || {
|
||||
echo "Vehicle directory $VEHICLETYPE not found"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# get version numbers
|
||||
FW_MAJOR=$(grep FW_MAJOR $VEHICLETYPE/version.h | cut -d' ' -f3)
|
||||
FW_MINOR=$(grep FW_MINOR $VEHICLETYPE/version.h | cut -d' ' -f3)
|
||||
FW_PATCH=$(grep FW_PATCH $VEHICLETYPE/version.h | cut -d' ' -f3)
|
||||
GIT_VERSION=$(git rev-parse HEAD | cut -c1-8)
|
||||
|
||||
VERSION="${FW_MAJOR}.${FW_MINOR}.${FW_PATCH}-${GIT_VERSION}"
|
||||
|
||||
echo "Package Name: " $PACKAGE
|
||||
echo "version Number: " $VERSION
|
||||
|
||||
cd libraries/AP_HAL_QURT/packaging
|
||||
|
||||
cat pkg/control/control.in | sed "s/FW_VERSION/$VERSION/g" > pkg/control/control
|
||||
|
||||
################################################################################
|
||||
# variables
|
||||
################################################################################
|
||||
PACKAGE=$(cat pkg/control/control | grep "Package" | cut -d' ' -f 2)
|
||||
|
||||
DATA_DIR=pkg/data
|
||||
CONTROL_DIR=pkg/control
|
||||
DEB_DIR=pkg/DEB
|
||||
|
||||
################################################################################
|
||||
# start with a little cleanup to remove old files
|
||||
################################################################################
|
||||
# remove data directory where 'make install' installed to
|
||||
sudo rm -rf $DATA_DIR
|
||||
mkdir $DATA_DIR
|
||||
|
||||
# remove deb packaging folders
|
||||
rm -rf $DEB_DIR
|
||||
|
||||
################################################################################
|
||||
## install compiled stuff into data directory
|
||||
################################################################################
|
||||
|
||||
if [ -f ../../../build/QURT/ardupilot ] && \
|
||||
[ -f ../../../build/QURT/bin/$VEHICLE_BINARY ]; then
|
||||
|
||||
# Copy the SLPI DSP AP library
|
||||
sudo mkdir -p $DATA_DIR/usr/lib/rfsa/adsp
|
||||
sudo cp ../../../build/QURT/bin/$VEHICLE_BINARY $DATA_DIR/usr/lib/rfsa/adsp/ArduPilot.so
|
||||
|
||||
# Install executables
|
||||
sudo mkdir -p $DATA_DIR/usr/bin
|
||||
sudo cp ../../../build/QURT/ardupilot $DATA_DIR/usr/bin
|
||||
sudo cp ../ap_host/service/voxl-ardupilot $DATA_DIR/usr/bin
|
||||
sudo chmod a+x $DATA_DIR/usr/bin/ardupilot
|
||||
sudo chmod a+x $DATA_DIR/usr/bin/voxl-ardupilot
|
||||
|
||||
# Create necessary directories for ArduPilot operation
|
||||
sudo mkdir -p $DATA_DIR/data/APM
|
||||
|
||||
# Install default parameter files
|
||||
sudo cp ../../../Tools/Frame_params/ModalAI/*.parm $DATA_DIR/data/APM
|
||||
|
||||
sudo mkdir -p $DATA_DIR/etc/systemd/system/
|
||||
sudo cp ../ap_host/service/voxl-ardupilot.service $DATA_DIR/etc/systemd/system/
|
||||
|
||||
else
|
||||
echo "Error: Build artifacts not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# make a DEB package
|
||||
################################################################################
|
||||
|
||||
echo "starting building Debian Package"
|
||||
|
||||
## make a folder dedicated to Deb building and copy the requires debian-binary file in
|
||||
mkdir $DEB_DIR
|
||||
|
||||
## copy the control stuff in
|
||||
cp -rf $CONTROL_DIR/ $DEB_DIR/DEBIAN
|
||||
cp -rf $DATA_DIR/* $DEB_DIR
|
||||
|
||||
DEB_NAME="${PACKAGE}_${VEHICLETYPE}_${VERSION}_arm64.deb"
|
||||
dpkg-deb --build "${DEB_DIR}" "${DEB_NAME}"
|
||||
|
||||
echo "DONE"
|
|
@ -0,0 +1,8 @@
|
|||
Package: voxl-ardupilot
|
||||
Version: FW_VERSION
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Architecture: arm64
|
||||
Depends: modalai-slpi(>=1.1.19), libslpi-link
|
||||
Maintainer: Eric Katzfey <eric.katzfey@modalai.com>
|
||||
Description: ModalAI ArduPilot flight controller
|
|
@ -0,0 +1,39 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Create directory for APM use
|
||||
cd /data
|
||||
mkdir -p APM
|
||||
chown system:system APM
|
||||
|
||||
# Make sure the run scripts are executable
|
||||
cd /usr/bin
|
||||
chmod a+x voxl-ardupilot
|
||||
|
||||
# Check to see if a DSP test signature exists
|
||||
if /bin/ls /usr/lib/rfsa/adsp/testsig-*.so &> /dev/null; then
|
||||
/bin/echo "Found DSP signature file"
|
||||
else
|
||||
/bin/echo "Could not find DSP signature file"
|
||||
# Look for the DSP signature generation script
|
||||
if [ -f /share/modalai/qrb5165-slpi-test-sig/generate-test-sig.sh ]; then
|
||||
/bin/echo "Attempting to generate the DSP signature file"
|
||||
# Automatically generate the test signature so that px4 can run on SLPI DSP
|
||||
/share/modalai/qrb5165-slpi-test-sig/generate-test-sig.sh
|
||||
else
|
||||
/bin/echo "Could not find the DSP signature file generation script"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Always flush all changes to disk
|
||||
/bin/sync
|
||||
|
||||
cd -
|
||||
|
||||
# try to reload services, but don't fail if it can't
|
||||
set +e
|
||||
if [ -f /bin/systemctl ]; then
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
|
||||
# exit 0 even if systemctl failed
|
||||
exit 0
|
Loading…
Reference in New Issue