Няма описание

Rob Austein 7f1c836258 Update notes. преди 6 години
.dockerignore 8bf92fa91b Initial commit. преди 6 години
.gitignore 8bf92fa91b Initial commit. преди 6 години
Dockerfile 7f1c836258 Update notes. преди 6 години
Makefile 8bf92fa91b Initial commit. преди 6 години
README.md 7f1c836258 Update notes. преди 6 години

README.md

Docker

An attempt to Dockerize the Cryptech build environment.

The ten zillion Debian packages are tedious but straightforward.

The tricky bit is the XiLinx toolchain:

  • You have to download the installation tarball by hand
  • You have to get a license key from XiLinx before you can use it
  • You have to run GUI installation tools to install and configure it

There's not much we can do about the first two, so we assume that you've obtained a tarball and a license key file, and that you've dropped them into this directory with the filenames we expect.

The third...is fun, in a demented sort of way. Don't know whether it'll work yet, but going to try automating this using Xvfb, xautomation, and ratpoison.

XiLinx voodoo from Berlin workshop notes

  • You need to download the Xilinx ISE Design Suite.

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

  • The Xilinx tools are serious disk hogs: VMs for this need at least 30-40 GB of disk space.

Step-by-step installation (Dockerfile will attempt to automate this):

  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

With the license file already present this is simple: follow the installation instructions, tell it to use existing license file, it'll find it if you click the right buttons. And yes, it's another GUI program.

The ise binary referred to above is in /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/ise (or in .../lin/ise, but the pbuilder setup requires a 64-bit build machine).

It turns out you don't really need to run the whole ise tool to get to the license manager, you can just run the license manager directly, but you do have to source the appropriate settings file first, none of the XiLinx tools work properly without that. So:

. /opt/Xilinx/14.7/ISE_DS/settings64.sh
/opt/Xilinx/14.7/ISE_DS/common/bin/lin64/xlcm -manage

In theory, we can run this GUI stuff under Xvfb in Docker. Debugging this will probably require exporting the Xvfb_screen0 file via a volume mount.