I am attempting to switch our ARTIQ 6 Illinois setup to an Ubuntu 20.04 VM on Windows 10 VirtuaBox. I have set up with the same version of Ubuntu installed on a test computer but am encountering a persistent issue trying through VirtualBox. When I try to spawn the nix shell for the first time, it fails referring to Vivado missing. I tried installing Vivado 2021.2 and see that it works correctly and has a symlink to the /opt/Xilinx folder as ARTIQ expects. However, I still see this when attempting to start the shell (shown here follows a second attempt).
nix-shell artiq-6-illinois-env.nix
these 4 derivations will be built:
/nix/store/s93zlpl2fl7msgkgm95y9hpvi5rpc9vd-artiq-board-kasli-illinoismaster-6.7671.b50d30ba-vivado-checkpoint.drv
/nix/store/z547by2lzajwngqwaxn94zx0yxswajv4-artiq-board-kasli-illinoismaster-6.7671.b50d30ba-vivado-output.drv
/nix/store/ihd62ccfca4bp5q4jdn47ny075kl4ph5-artiq-board-kasli-illinoismaster-6.7671.b50d30ba.drv
/nix/store/fnakgjyia7zsniamgn8m42mpckqaq6jf-python3-3.8.11-env.drv
building '/nix/store/s93zlpl2fl7msgkgm95y9hpvi5rpc9vd-artiq-board-kasli-illinoismaster-6.7671.b50d30ba-vivado-checkpoint.drv'...
unpacking sources
unpacking source archive /nix/store/q1jmhgqj2yxgy0h25m984nbnskj8mfpv-artiq-board-kasli-illinoismaster-6.7671.b50d30ba-gateware
source root is artiq-board-kasli-illinoismaster-6.7671.b50d30ba-gateware
patching sources
configuring
no configure script, doing nothing
building
/etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
/etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
/etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
/etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
** Message: 03:05:52.870: Requires Linux version >= 3.19 built with CONFIG_USER_NS
** Message: 03:05:52.871: Run: sudo sysctl -w kernel.unprivileged_userns_clone=1
** (process:305): ERROR **: 03:05:52.871: main: unshare: No space left on device
/nix/store/pv61va1xnggylxjcd3s35pjn3r66v0zk-stdenv-linux/setup: line 1309: 15 Trace/breakpoint trap (core dumped) vivado -mode batch -source top_route.tcl
error: builder for '/nix/store/s93zlpl2fl7msgkgm95y9hpvi5rpc9vd-artiq-board-kasli-illinoismaster-6.7671.b50d30ba-vivado-checkpoint.drv' failed with exit code 133;
last 10 log lines:
> /etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
> /etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
> /etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
> /etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
> /etc/profile: line 16: /opt/Xilinx/Vivado/2021.2/settings64.sh: No such file or directory
> ** Message: 03:05:52.870: Requires Linux version >= 3.19 built with CONFIG_USER_NS
> ** Message: 03:05:52.871: Run: sudo sysctl -w kernel.unprivileged_userns_clone=1
>
> ** (process:305): ERROR **: 03:05:52.871: main: unshare: No space left on device
> /nix/store/pv61va1xnggylxjcd3s35pjn3r66v0zk-stdenv-linux/setup: line 1309: 15 Trace/breakpoint trap (core dumped) vivado -mode batch -source top_route.tcl
For full logs, run 'nix log /nix/store/s93zlpl2fl7msgkgm95y9hpvi5rpc9vd-artiq-board-kasli-illinoismaster-6.7671.b50d30ba-vivado-checkpoint.drv'.
error: 1 dependencies of derivation '/nix/store/z547by2lzajwngqwaxn94zx0yxswajv4-artiq-board-kasli-illinoismaster-6.7671.b50d30ba-vivado-output.drv' failed to build
error: 1 dependencies of derivation '/nix/store/ihd62ccfca4bp5q4jdn47ny075kl4ph5-artiq-board-kasli-illinoismaster-6.7671.b50d30ba.drv' failed to build
error: 1 dependencies of derivation '/nix/store/fnakgjyia7zsniamgn8m42mpckqaq6jf-python3-3.8.11-env.drv' failed to build
The env.nix looks like (I do require openocd)
let
# pkgs contains the NixOS package collection. ARTIQ depends on some of them, and
# you may want some additional packages from there.
pkgs = import <nixpkgs> {};
artiq-full = import <artiq-full> { inherit pkgs; };
in
pkgs.mkShell {
buildInputs = [
(pkgs.python3.withPackages(ps: [
# List desired Python packages here.
# You probably want these two.
artiq-full.artiq
artiq-full.artiq-comtools
# You need a board support package if and only if you intend to flash
# a board (those packages contain only board firmware).
# The lines below are only examples, you need to select appropriate
# packages for your boards.
#artiq-full.artiq-board-kc705-nist_clock
artiq-full.artiq-board-kasli-illinoismaster
#ps.paramiko # needed if and only if flashing boards remotely (artiq_flash -H)
# The NixOS package collection contains many other packages that you may find
# interesting for your research. Here are some examples:
#ps.pandas
#ps.numpy
#ps.scipy
ps.numba
(ps.matplotlib.override { enableQt = true; })
#ps.bokeh
#ps.cirq
#ps.qiskit
]))
# List desired non-Python packages here
artiq-full.openocd # needed if and only if flashing boards
# Other potentially interesting packages from the NixOS package collection:
#pkgs.gtkwave
#pkgs.spyder
#pkgs.R
#pkgs.julia
];
}
and nix.conf
substituters = https://cache.nixos.org https://nixbld.m-labs.hk
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nixbld.m-labs.hk-1:5aSRVA5b320xbNvu30tqxVPXpld73bhtOeH6uAjRyHc=
I believe I have tried the solutions suggested in posts mentioning the same error (Installing Xilinx Vivado, Ubuntu variant choice, Vivado problem during firmware build).
Let me know if there's any info I can provide, thanks.