[Cryptech Tech] testing builds

Rob Austein sra at hactrn.net
Sun Apr 15 22:28:37 UTC 2018


On Sun, 15 Apr 2018 15:07:49 -0400, Michael wrote:
> 
> I have been setting up my computer to have the capability to generate builds of the various system components.

As of the last time I built a new build machine, one could get a
usable build and runtime environment on Debian Jessie (yes, I know
it's old) with a command like:

  sudo apt-get install git python-yaml python-serial gcc-arm-none-eabi gdb-arm-none-eabi gcc-avr binutils-avr avr-libc

Plus a bunch of horsing around getting the XiLinx tools to run, more
on that below.

If you want to run the unit tests, you'll also need:

  sudo apt-get install python-crypto python-ecdsa

There's another pile of stuff to install if you're trying to reproduce
the complete release engineering environment, but maybe you don't need
to dive into the Debian + Homebrew packaging swamp just yet.

> I installed arm-none-eabi-gcc from the xenial repository , it
> reports version (15:4.9.3+svn231177-1) 4.9.3 20150529 (prerelease).
> avr-gcc installed with version 4.9.2. Are these tool revs sufficient
> to do builds for the Alpha?

You tell us :)

> I was able to install 14.7 of Xilinx ISE although the full tar link
> took me to newer software. I was able to d/l the 4 part install
> files and get it that way.
> 
> I am getting these messages from make when trying make firmware.
> 
> ./scripts/build-shadow-tree.py
> make -C build/core/platform/alpha/build
> make[1]: Entering directory '/home/michael/Documents/dkey/alpha/build/core/platform/alpha/build'
> . /opt/Xilinx/14.7/ISE_DS/settings64.sh; xst -ifn alpha_fmc.scr
> /bin/sh: 12: [: /bin/sh: unexpected operator
> . /opt/Xilinx/14.7/ISE_DS/common/.settings64.sh /opt/Xilinx/14.7/ISE_DS/common
> . /opt/Xilinx/14.7/ISE_DS/EDK/.settings64.sh /opt/Xilinx/14.7/ISE_DS/EDK
> . /opt/Xilinx/14.7/ISE_DS/PlanAhead/.settings64.sh /opt/Xilinx/14.7/ISE_DS/PlanAhead
> . /opt/Xilinx/14.7/ISE_DS/ISE/.settings64.sh /opt/Xilinx/14.7/ISE_DS/ISE
> /bin/sh: 1: xst: not found
> xilinx.mk:137: recipe for target 'alpha_fmc.ngc' failed
> make[1]: *** [alpha_fmc.ngc] Error 127
> make[1]: Leaving directory '/home/michael/Documents/dkey/alpha/build/core/platform/alpha/build'
> Makefile:92: recipe for target 'build/core/platform/alpha/build/alpha_fmc.bit' failed
> make: *** [build/core/platform/alpha/build/alpha_fmc.bit] Error 2
> 
> I suspect this is a license issue, but please confirm.

Not familiar.  Paul or Pavel might know more.  I'm skeptical about
"xst: not found" being a license manager symptom, seems more likely to
be a symptom of the earlier /bin/sh error -- see Paul's comments on
"dash", below.

About installing the XiLinx tools: Paul wrote this up years ago, it's
in the Wiki, probably in multiple places (all hard to find).  The
process is also tedious, and requires a GUI just to dance with the
installer and license manager.  Relevant excerpt:

    You need to download and install the Xilinx  ISE Design Suite.

    Installing on Linux

        Xilinx only supports specific versions of Red Hat and Suse Linux, but it
	does run on Ubuntu, with the following caveat: Ubuntu symlinks /bin/sh to
	dash, which can't handle if [ ] syntax in shell scripts, so I symlinked /
	bin/sh to bash instead.

        ISE Design Suite uses a graphical installer, so has to be installed on a
	desktop edition, not a server edition.

        Although the software can be installed as user or root, by default it wants
	to install into /opt/Xilinx, so you need to install as root if you want to
	do that.

        The Xilinx tools are disk hogs, so if you're building a VM for this, you'll
	probably want to give it at least 30-40 GB of disk space.

    Step-by-step installation:

     1. Unpack Xilinx_ISE_DS_Lin_14.7_1015_1.tar (or whatever version you have).
     2. cd to Xilinx_ISE_DS_Lin_14.7_1015_1, and run sudo ./xsetup
     3. Click through two screens of license agreements.
     4. Select ISE WebPACK.
     5. Unselect (or leave unselected) Install Cable Drivers.
     6. Go!

    Well, not quite. You will need to convince the ISE that you have a license.

    On the page  http://www.xilinx.com/products/design-tools/ise-design-suite/
    ise-webpack.htm click on the Licensing Solutions link. On the resulting page,
    expand the section Obtain a license for Free or Evaluation product. To download
    the ISE Webpack, you should have created an account, so now you can go to the
    Licensing Site and use that account to create a Certificate Based License.

    You do not need to go through the HostID dance, just say Do It. You will then
    receive a certificate in email (not an X.509 certificate) which you will be
    able to use. Then start the ISE Webpack by issuing the command ise. Go to the
    Help menu and Manage Licenses. Use the resulting new License Manager window to
    install the .lic file. This process is complex and flakey.

  http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html
  http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.htm
  http://www.armadeus.com/wiki/index.php?title=ISE_WebPack_installation_on_Linux

Footnotes for things not covered in Paul's (ancient) write-up:

* The "ise binary" is in /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/ise (or
  in .../lin/ise if you want the 32-bit version, but if you're doing
  the full releng thing with pbuilder you need the 64-bit version).

* The XiLinx tools do also run on Debian.

* Probably not relevant in your case, but you don't really need a full
  GUI install of Debian to install this.  In a pinch (eg, installing
  in Reykjavik while sitting in Boston), you can get away with:

    sudo apt-get install tightvncserver xterm icewm

  which is enough to run a very austere remote GUI environment via
  VNC tunneled through an SSH connection (which still sucks, but sucks
  less than trying to tunnel raw X11 and a full desktop environment).


More information about the Tech mailing list