diff --git a/software/infnoise.c b/software/infnoise.c index 471c9cb..ebca367 100644 --- a/software/infnoise.c +++ b/software/infnoise.c @@ -17,6 +17,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 @@ -131,6 +134,7 @@ static bool listUSBDevices(struct ftdi_context *ftdic) { // search devices int rc = ftdi_usb_find_all(ftdic, &devlist, INFNOISE_VENDOR_ID, INFNOISE_PRODUCT_ID); + if (rc < 0) { if(!isSuperUser()) { fprintf(stderr, "Can't find Infinite Noise Multiplier. Try running as super user?\n"); @@ -182,6 +186,7 @@ static bool initializeUSB(struct ftdi_context *ftdic, char **message, char *seri } else { // serial specified rc = ftdi_usb_open_desc(ftdic, INFNOISE_VENDOR_ID, INFNOISE_PRODUCT_ID, INFNOISE_DESCRIPTION, serial); + if (rc < 0) { if(!isSuperUser()) { *message = "Can't find Infinite Noise Multiplier. Try running as super user?\n"; 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/scripts/infnoise.openrc b/software/scripts/infnoise.openrc new file mode 100755 index 0000000..a8f3668 --- /dev/null +++ b/software/scripts/infnoise.openrc @@ -0,0 +1,22 @@ +#!/sbin/openrc-run + +PIDFILE=/run/infnoise.pid + +depend() { + need udev-settle localmount + provide trng # Support need/use trng in other scripts +} + +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 +} 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