[Cryptech Tech] novena build instructions

Rob Austein sra at hactrn.net
Tue Aug 18 01:25:09 UTC 2015


At Mon, 17 Aug 2015 17:25:48 -0700, Randy Bush wrote:
> 
> i know i am bad at finding things.  but could we get a pointer to novena
> fpga build instructions on the front page?  i am shipping my board to
> karen lamb, cc:ed, who does fpga hacking among other talents, and she is
> gonna hit the gap.  thanks.

We don't yet have a friendly answer.  Given a bit of patience, one
should be able to piece together something useful from these links:

  https://wiki.cryptech.is/wiki/GettingStartedNovena
  https://wiki.cryptech.is/wiki/CoretestHashesNovena#Softwareandsystemrequirements
  https://wiki.cryptech.is/wiki/GitRepositories/user/sra/novena-releng
  https://wiki.debian.org/CrossToolchains

The first is the page from the Praha workshop.

The second is a link to the particular section from Paul's old Novena
instructions that talk about setting up the XiLinx tools.

The third is the README.md (with link to git repository) for the
release engineering superrepository we used to build packages for the
Praha workshop.

Current preferred build environment is Debian Jessie.  One can build
software on the Novena itself, although that's a bit slow, or one can
use cross compilation as done in the novena-releng superrepository.
The Debian packaging is optional: we wanted it for Praha, but it may
be more trouble than it's worth if one is doing development.

If one is cross-compiling, one needs to get the right cross compiler.
Due to some kind of Debian release management oops, the cross compiler
isn't available directly from the Debian Project, one has to get it
from an external APT repository, hence the fourth link.

My notes say that, when I was building all this on a brand new Jessie
VM, I also had to do:

  $ sudo apt-get install git python-yaml curl

git should be obvious.  python-yaml is needed to build the pkcs11
code.  I don't remember what wanted a copy of curl.

Last, note that, as mentioned somewhere in Paul's notes, the XiLinx
command line tools don't work out of the box with the Debian's default
/bin/sh, one has to replace the default symlink from /bin/sh to
/bin/dash with a symlink to /bin/bash.

There are a bunch of cores that aren't included in the Praha build due
to FPGA space constraints, and AFAIK we don't yet have any kind of
automation for configuring specific cores into the FPGA build, so the
above just gets you what we were using in Praha, and getting anything
else requires some hacking.  But, all of that said, by the time one
gets this far, one is well past the "Hello, Novena" stage, so it's
probably about as good a starting point as we have at the moment.

Feel free to turn the above explanation into yet another confusingly
named Wiki page :)


More information about the Tech mailing list