From b1c311fe062b38bd70eb554588cfc98133161424 Mon Sep 17 00:00:00 2001 From: Rune Magnussen Date: Wed, 6 Sep 2017 18:11:45 +0200 Subject: [PATCH 1/4] Fix compiler-warning from GCC 6.4 Redefining #defines gives a warning. That is trated like an error with current compiler options. --- software/infnoise.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/software/infnoise.c b/software/infnoise.c index 76f149c..b11045c 100644 --- a/software/infnoise.c +++ b/software/infnoise.c @@ -3,9 +3,6 @@ // Required to include clock_gettime #define _POSIX_C_SOURCE 200809L -#define VENDOR_ID 0x0403 -#define PRODUCT_ID 0x6015 - #include #include #include @@ -16,6 +13,9 @@ #include "infnoise.h" #include "KeccakF-1600-interface.h" +#define VEND_ID 0x0403 +#define PROD_ID 0x6015 + // Extract the INM output from the data received. Basically, either COMP1 or COMP2 // changes, not both, so alternate reading bits from them. We get 1 INM bit of output // per byte read. Feed bits from the INM to the health checker. Return the expected @@ -129,7 +129,7 @@ static bool listUSBDevices(struct ftdi_context *ftdic) { int i=0; // search devices - int rc = ftdi_usb_find_all(ftdic, &devlist, VENDOR_ID, PRODUCT_ID); + int rc = ftdi_usb_find_all(ftdic, &devlist, VEND_ID, PROD_ID); if (rc < 0) { if(!isSuperUser()) { fprintf(stderr, "Can't find Infinite Noise Multiplier. Try running as super user?\n"); @@ -158,7 +158,7 @@ static bool initializeUSB(struct ftdi_context *ftdic, char **message, char *seri // search devices int rc = 0; - if ((rc = ftdi_usb_find_all(ftdic, &devlist, VENDOR_ID, PRODUCT_ID)) < 0) { + if ((rc = ftdi_usb_find_all(ftdic, &devlist, VEND_ID, PROD_ID)) < 0) { *message = "Can't find Infinite Noise Multiplier\n"; return false; } @@ -170,7 +170,7 @@ static bool initializeUSB(struct ftdi_context *ftdic, char **message, char *seri if (rc >= 1) { fprintf(stderr,"Multiple Infnoise TRNGs found. No serial specfified, so using the first one"); } - if (ftdi_usb_open(ftdic, VENDOR_ID, PRODUCT_ID) < 0) { + if (ftdi_usb_open(ftdic, VEND_ID, PROD_ID) < 0) { if(!isSuperUser()) { *message = "Can't open Infinite Noise Multiplier. Try running as super user?\n"; } else { @@ -180,7 +180,7 @@ static bool initializeUSB(struct ftdi_context *ftdic, char **message, char *seri } } else { // serial specified - rc = ftdi_usb_open_desc(ftdic, VENDOR_ID, PRODUCT_ID, "FT240X USB FIFO", serial); + rc = ftdi_usb_open_desc(ftdic, VEND_ID, PROD_ID, "FT240X USB FIFO", serial); if (rc < 0) { if(!isSuperUser()) { *message = "Can't find Infinite Noise Multiplier. Try running as super user?\n"; From 250b5957fe6d0f1cb2dbd8f4f5dea0a33b4eb4f9 Mon Sep 17 00:00:00 2001 From: Rune Magnussen Date: Fri, 15 Sep 2017 15:19:36 +0200 Subject: [PATCH 2/4] Move startup scripts to scripts directory Move init- and udev-scripts to ther own directory. --- software/{ => scripts}/75-infnoise.rules | 0 software/{ => scripts}/infnoise.service | 0 software/{ => scripts}/infnoise.service.archlinux | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename software/{ => scripts}/75-infnoise.rules (100%) rename software/{ => scripts}/infnoise.service (100%) rename software/{ => scripts}/infnoise.service.archlinux (100%) diff --git a/software/75-infnoise.rules b/software/scripts/75-infnoise.rules similarity index 100% rename from software/75-infnoise.rules rename to software/scripts/75-infnoise.rules diff --git a/software/infnoise.service b/software/scripts/infnoise.service similarity index 100% rename from software/infnoise.service rename to software/scripts/infnoise.service diff --git a/software/infnoise.service.archlinux b/software/scripts/infnoise.service.archlinux similarity index 100% rename from software/infnoise.service.archlinux rename to software/scripts/infnoise.service.archlinux From 3427d5b177f5fecd7bed77224aec2a029da8132e Mon Sep 17 00:00:00 2001 From: Rune Magnussen Date: Fri, 15 Sep 2017 15:55:57 +0200 Subject: [PATCH 3/4] Add OpenRC based init script for Gentoo Add a startup script for OpenRC based Gentoo-systems- --- software/scripts/infnoise.openrc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 software/scripts/infnoise.openrc diff --git a/software/scripts/infnoise.openrc b/software/scripts/infnoise.openrc new file mode 100755 index 0000000..2e773d7 --- /dev/null +++ b/software/scripts/infnoise.openrc @@ -0,0 +1,21 @@ +#!/sbin/openrc-run + +PIDFILE=/run/infnoise.pid + +depend() { + need udev-settle +} + +start() { + ebegin "Starting infnoise" + /usr/local/sbin/infnoise --dev-random --daemon --pidfile $PIDFILE + eend $? +} + +stop() { + ebegin "Stopping infnoise" + kill `cat $PIDFILE` + RC=$? + rm -f $PIDFILE + eend $RC +} From 259267a7deaff84dbf430b5f80663e9ce0f73f4f Mon Sep 17 00:00:00 2001 From: Rune Magnussen Date: Tue, 19 Sep 2017 16:42:12 +0200 Subject: [PATCH 4/4] OpenRC script: Fix dependencies Wait for filesystems to be mounted. This makes sure there is a place to write the PID-file. Provide "trng" for other scripts to depend on. --- software/scripts/infnoise.openrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/software/scripts/infnoise.openrc b/software/scripts/infnoise.openrc index 2e773d7..a8f3668 100755 --- a/software/scripts/infnoise.openrc +++ b/software/scripts/infnoise.openrc @@ -3,7 +3,8 @@ PIDFILE=/run/infnoise.pid depend() { - need udev-settle + need udev-settle localmount + provide trng # Support need/use trng in other scripts } start() {