aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2015-07-05 19:43:38 -0400
committerRob Austein <sra@hactrn.net>2015-07-05 19:43:38 -0400
commite8f1bf514c1819cb9942d77bb624db4f6703fa8b (patch)
treed6b19edf237f3e85d4063881a83c849bfd4260d8
parent3f25e1bf5509f584f455e0e3ce369bc51b763f85 (diff)
Add Debian packaging and startup scripts to load Novena FPGA automatically.
-rw-r--r--Makefile2
-rw-r--r--core/Makefile2
-rw-r--r--core/debian/control2
-rw-r--r--core/debian/cryptech-novena-rtl.default3
-rw-r--r--core/debian/cryptech-novena-rtl.init36
-rw-r--r--core/debian/cryptech-novena-rtl.postinst47
-rw-r--r--reprepro-conf/options1
7 files changed, 90 insertions, 3 deletions
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:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <postinst> `abort-remove'
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# 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