forked from ArduPilot/ardupilot
-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
AP_HAL_QURT: Add Debian packaging script and support files
- Loading branch information
Showing
4 changed files
with
152 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
*.deb | ||
pkg/DEB | ||
pkg/data | ||
pkg/control/control | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <[email protected]> | ||
Description: ModalAI ArduPilot flight controller |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |