From e8f1bf514c1819cb9942d77bb624db4f6703fa8b Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Sun, 5 Jul 2015 19:43:38 -0400 Subject: Add Debian packaging and startup scripts to load Novena FPGA automatically. --- Makefile | 2 +- core/Makefile | 2 +- core/debian/control | 2 +- core/debian/cryptech-novena-rtl.default | 3 ++ core/debian/cryptech-novena-rtl.init | 36 ++++++++++++++++++++++++ core/debian/cryptech-novena-rtl.postinst | 47 ++++++++++++++++++++++++++++++++ reprepro-conf/options | 1 + 7 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 core/debian/cryptech-novena-rtl.default create mode 100644 core/debian/cryptech-novena-rtl.init create mode 100644 core/debian/cryptech-novena-rtl.postinst diff --git a/Makefile b/Makefile index 3bb1b21..79a85da 100644 --- a/Makefile +++ b/Makefile @@ -92,7 +92,7 @@ rtl: cd core; debuild -b -uc -us -aarmhf reprepro: ${REPOSITORY}/conf/distributions ${REPOSITORY}/conf/options - for f in *.changes; do reprepro -b ${REPOSITORY} --ignore=wrongdistribution include ${CODENAME} $$f; done + for f in *.changes; do reprepro -b ${REPOSITORY} include ${CODENAME} $$f; done ${REPOSITORY}/conf/distributions ${REPOSITORY}/conf/options: install -D reprepro-conf/$(notdir $@) ${REPOSITORY}/conf/$(notdir $@) diff --git a/core/Makefile b/core/Makefile index 9dadbcd..f8c8c5b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -46,4 +46,4 @@ clean: cd ${BUILD_DIR}; $(MAKE) clean install: - install -D ${BUILD_DIR}/novena_eim.bit ${DESTDIR}/usr/share/cryptech/novena_eim.bit + install -D -m 644 ${BUILD_DIR}/novena_eim.bit ${DESTDIR}/usr/share/cryptech/novena_eim.bit diff --git a/core/debian/control b/core/debian/control index 84a4e91..3a3de4c 100644 --- a/core/debian/control +++ b/core/debian/control @@ -8,7 +8,7 @@ Homepage: http://trac.cryptech.is/wiki Package: cryptech-novena-rtl Architecture: all -Depends: libc6 (>= 2.13), ${misc:Depends} +Depends: libc6 (>= 2.13), ${misc:Depends} cryptech-novena-sw (= ${binary:Version}) Description: Cryptech open-source crypto hardware "cryptech-novena-rtl" contains FGPA configuration (RTL bitstream) for the Cryptech project on the Novena PVT-1 development board. diff --git a/core/debian/cryptech-novena-rtl.default b/core/debian/cryptech-novena-rtl.default new file mode 100644 index 0000000..1261cef --- /dev/null +++ b/core/debian/cryptech-novena-rtl.default @@ -0,0 +1,3 @@ +# Configuration parameters for cryptech-novena-rtl package. + +fpga_bitstream=/usr/share/cryptech/novena_eim.bit diff --git a/core/debian/cryptech-novena-rtl.init b/core/debian/cryptech-novena-rtl.init new file mode 100644 index 0000000..68f5c8c --- /dev/null +++ b/core/debian/cryptech-novena-rtl.init @@ -0,0 +1,36 @@ +#!/bin/sh - +### BEGIN INIT INFO +# Provides: cryptech-novena-rtl +# Required-Start: $remote_fs +# Required-Stop: +# Should-Start: +# Default-Start: S +# Default-Stop: +# Short-Description: Reload Novena FPGA on boot. +# Description: Reload Novena FPGA on boot. +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +. /lib/lsb/init-functions +. /etc/default/cryptech-novena-rtl + +do_start () { + log_daemon_msg "Loading Novena FPGA from ${fpga_bitstream}" + load_novena_fpga "${fpga_bitstream}" +} + +case "$1" in + start|restart|reload|force-reload|"") + do_start + ;; + stop) + # No-op + ;; + *) + echo "Usage: bootmisc.sh [start|stop]" >&2 + exit 3 + ;; +esac + +: diff --git a/core/debian/cryptech-novena-rtl.postinst b/core/debian/cryptech-novena-rtl.postinst new file mode 100644 index 0000000..d36653a --- /dev/null +++ b/core/debian/cryptech-novena-rtl.postinst @@ -0,0 +1,47 @@ +#!/bin/sh - +# postinst script for cryptech-novena-rtl +# +# see: dh_installdeb(1) + +set -e + +# Perhaps this should run our /etc/init.d script in order to localize +# the voodoo? + +load_fpga() { + load_novena_fpga /usr/share/cryptech/novena_eim.bit +} + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + load_fpga + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/reprepro-conf/options b/reprepro-conf/options index 7b49bf9..f5ad660 100644 --- a/reprepro-conf/options +++ b/reprepro-conf/options @@ -1,3 +1,4 @@ verbose ask-passphrase basedir . +ignore wrongdistribution -- cgit v1.2.3