Installing
        Xilinx Vivado for Red Pitaya FPGA
        programming.
Peter
        Halverson              
              Last update
        9/2/2019
http://halverscience.net/index.html
        
Link to
        latest notes on Google Docs:
https://docs.google.com/document/d/1MpGDt-FqmUyy9EuTfq82yU7thd97kCuhg9waSxvlw7Y/edit?usp=sharing
        
These
        are Halverson's personal notes. They are unedited and there
        is no guarantee of accuracy.  Use at your own risk. I
        am making them available to you because they might actually
        be helpful.  If they are helpful, I would really
        appreciate a "thank you". 
Caution: 
          I never succeeded in getting Vivado to properly
        re-compile the Red Pitaya FPGA code.    Red
        Pitaya is VERY complicated. It uses many different
        languages, layers of software. So if you just want to learn
        about FPGAs, go elsewhere.  I highly recommend the
        NandLand tutorials and the GoBoard. 
        https://www.nandland.com/
        
----------------------
        System description
        -----------------------
My
        computer:  Intel NUC5i5RYH, core i5 cpu, 16 Gb RAM,
        500 Gb disk drive (solid state drive).
https://ark.intel.com/content/www/us/en/ark/products/83255/intel-nuc-kit-nuc5i5ryh.html
        
Starting
        with a generic Ubuntu Desktop version 16.04 clean
        installation and all Ubuntu updates installed.  This
        install was from an external usb connected DVD. At the
        start of the installation the installer asked about whether
        to use a legacy boot loader or a pre-installed UEFI boot
        loader.  I opted to keep the UEFI
        boot.
-------------------
        Install emergency shutdown in case Vivado hangs
        ---------------
On
        another machine, I had a bad experience with Vivado
        hopelessly locking up my system when it ran out of
        memory.  So I am going to enable the “magic key”
        feature of Linux to allow an emergency kill of Vivado and a
        controlled shutdown.
Edit
        (using nano) the file    /etc/sysctl.d/10-magic-sysrq.conf
          to
        include the line 
Kernel.sysrq
        = 1
I got
        this info from 
https://askubuntu.com/questions/11002/alt-sysrq-reisub-doesnt-reboot-my-laptop
        
Reboot
        and test the magic key.  It
        works. 
(Notes
        on how to use it are in my Ubuntu_notes.txt
        file)
--------------
        Install Libraries that Vivado will need but aren’t part of
        default Ubuntu -----------
The
        following steps were gleaned from “Installing Vivado with
        SDK 2018.2 on Ubuntu 16.04 LTS”
https://www.knitronics.com/knitronicsblog/installing-vivado-w-sdk-20182-on-ubuntu-1604-lts
        
Note
        that you need a lot of disk space 100 Gb and a lot of RAM,
        at least 16 Gb.
Start by
        installing software in 32-bit node that Vivado will
        apparently need.
sudo
        dpkg --add-architecture i386
sudo
        apt-get install chrpath socat texinfo gcc-multilib
        libsdl1.2-dev xinetd tofrodos iproute
sudo
        apt-get install gawk gcc git-core make net-tools
        ncurses-dev libcurses5-dev 
sudo
        apt-get install zlib1g-dev flex bison lib32z1 lib32ncurses5
        lib32stdc++6
sudo
        apt-get install libselinux1 xvfb autoconf libtool
        libbz2-1.0 xinetd tftpd tftp 
sudo
        apt-get install lib32stdc++6 libgtk2.0-0:i386
        libfontconfig1:i386 libx11-6:i386 
sudo
        apt-get install libxext6:i386 libxrender1:i386 libsm6:i386
        libssl-dev libqtgui4:i386
sudo
        apt-get install libxft2
        libxft2:i386                 
        (That
        last install, apt-get install libxft2 libxft2:i386, comes
        from the Red Pitaya instructions)
--------------------------
        Set up tftp, recommended by Knitronics
        ------------
Set up
        tftp (Trivial File Transfer Protocol)   (Does Vivado
        really need this? - Halverson)
sudo
        nano /etc/xinetd.d/tftp
service
        tftp
    {
            protocol
        = udp 
    port
        = 69
    socket_type
        = dgram
    wait
        = yes
    user
        = nobody 
    server
        = /usr/sbin/in.tftpd
    server_args
        = /tftpboot
    disable
        = no
    }
        
Make a
        folder needed by tftp
sudo
        mkdir /tftpboot
sudo
        chmod -R 777 /tftpboot
sudo
        chown -R nobody /tftpboot
Restart
        the tftp service to allow for all the edits to take
        effect.
sudo
        /etc/init.d/xinetd stop
sudo
        /etc/init.d/xinetd start
----------------
        Disable Ubuntu’s “dash” shell and replace with “bash” shell
        -----------------
Knitronics
        says Xilinx’s IDEs aren’t guaranteed to get along well with
        your shell being dash, so you’ll want to switch it over to
        bash:
sudo
        dpkg-reconfigure dash
Select
        the yes option on this when it pops up.
------------------------------
        Install serial port tools.
        -------------------------------
 (Probably
        not needed with RedPitaya? - Halverson)
Install
        tools to make it easier to use the serial port, in case you
        use the UART on the FPGA board.
sudo
        apt-get install grep      (It seems this
        wasn’t necessary. Grep was already
        installed.)
sudo apt
        install screen        (This is a serial
        terminal program)
REBOOT
        
---------------
        Get the Vivado software from Xilinx
        ---------------------
Go to
        the Xilinx Downloads page:
https://www.xilinx.com/support/download.html
        
Navigate
        to    (Before doing this, stop and read ahead a
        few lines; Red Pitaya won't work with this
        version.)
Vivado
        HLx 2018.2: All OS installer Single-File
        Download (TAR/GZIP
        - 17.11 GB) 
and
        download.  (2.5 hours download time on my home
        internet.)
(To
        actually start the download, you need to have created a
        Xilinx username and password.  There is no charge for
        that.)
NOTE: 
        I have to install 
        
        Vivado HLx 2017.2: All OS installer Single-File
        Download (TAR/GZIP
        - 22.13 GB) because example project 0.94 from RedPitaya was
        made with this version.  (3 hour download
        time)
Basically,
        I did the installation steps twice.  The first time it
        was for Vivado 2018.2 and the second time it was for Vivado
        2017.2.  As I said above, 2017.2 is needed to compile
        the RedPitaya 0.94 project. The installation steps are
        identical (just put “2017.2” instead of “2018.2” in the
        commands), with the possible exception of the ethernet
        port, which I talk about later.
Important
        information for installing Vivado is in the Xilinx UG973
        document.  (Weird name?) There is one for each
        release. I Googled Xilinx UG973 2018.2 and got
        this:
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_2/ug973-vivado-release-notes-install-license.pdf
        
At this
        point I am following instructions from the Xilinx UG973
        guide, chapter 3, starting on page 16.
Allow
        Firefox (my browser is version 68.0.2) to show pop-up
        windows from 
        https://www.o-ms.com/
        Do this
        by going to Edit > Preferences > Privacy and Security
        > Block Pop-up Windows >
        Exceptions...
To allow
        Xilinx pages to show secure and non-secure items on the
        same page I click the “shield” in the address bar and click
        “Turn off content blocking for this site.”  The
        “shield” changes and now has a slash through
        it.
I am
        skipping the verification step.  Had trouble getting
        it to work. (Theoretically, this is a security
        risk.)
------------------
        Uncompress the downloaded Vivado software
        ----------------
Navigate
        to Downloads folder and uncompress the downloaded
        file  (takes about 5 minutes)
cd
        Downloads
tar
        -xvzf
        Xilinx_Vivado_SDK_2018.2_0614_1954.tar.gz
        
Navigate
        into the newly created Xilinx folder:
 cd
        Xilinx_Vivado_SDK_2018.2_0614_1954
---------------
        Run the Vivado installer
        ------------------
Make the
        installation script executable:
chmod +x
        xsetup
Run the
        installer:
sudo
        ./xsetup
A
        Welcome screen opens and it tells you that a newer version
        of Vivado is available.  (I’m
        declining)
Click
        Next, Agree, Agree, Agree, Next
For a NO
        COST version of Vivado,
click
        Vivado HL WebPack, Next
For my
        goal of programming the FGPA in Red Pitaya,
        I
click
        (or make sure it is selected)
--
        Vivado design Suite
--
        Software Development Kit (SDK)
--
        DocNav
--
        SoCs
-- 7
        Series
UltraScale
        and UltraScale+ NOT NEEDED
--
        Enable WebTalk for Vivado
--
        Enable WebTalk for SDK
(This
        was specified here: 
        
        https://documentation-rp-test.readthedocs.io/en/latest/tutorfpga1.html)
        Click
        Next
I’m in
        the Select Destination Directory screen.   /opt/Xilinx
        is fine and the two options “Create program group entries”
        and “Create desktop shortcuts” are selected.  NOTE:
        The shortcuts failed to be created.
Click
        Next
I’m at
        the Installation summary which confirms my
        selections
Click
        Install
!!!!!!!!!!!!!!!!
        YEA IT’S INSTALLING !!!!!!!!!!!!!!   (Installation
        took 8 minutes)
I get a
        window saying “Installation Completed Successfully” and now
        the installer exits.
----------------
        Install Xilinx cable drivers
        ---------------------
Referring
        again to knitronics’s information, I install drivers that
        Xilinx would use if I were using their programming
        boards.  This probably doesn’t apply to Red Pitaya,
        but I’m doing it anyway:
 cd
        /opt/Xilinx/Vivado/2018.2/data/xicom/cable_drivers/lin64/install_script/install_drivers
        sudo
        ./install_drivers
        
----------------
        Get the Vivado desktop shortcuts
        ----------------
There is
        a bug in the Vivado installer, that causes the Desktop
        shortcuts for Vivado to be put in the wrong place.  So
        I need to copy the desktop shortcuts for Vivado,
        Documentation Navigator and HLS from the root account’s
        desktop to my desktop.
To do
        that I need to become the root account which is disabled,
        by default in Ubuntu.
First
        make sure I’m in MY Desktop:
cd
        ~/Desktop
Enable
        the root account:
sudo
        passwd root            
                (This sets the password for the
        root account)
sudo
        passwd -u root            
            (This unlocks it.)
(The
        article also explains how to optionally lock it again:
          sudo passwd -l root)
Become
        root:
su 
            (Enter the password you just
        created)
Copy the
        desktop shortcuts and change their permissions so that I
        can use them:
cp
        /root/Desktop/* .       (Copies the
        shortcuts to “.” which means copy to “here,” i.e.
        “Desktop”)
chmod
        777 *.desktop           (Makes it
        so I can use the desktop shortcuts in spite of them
        belonging to root)
exit
        
Now the
        shortcuts appear on my Desktop.   I got the info about
        the shortcuts going to the wrong places from
        here:  
        
        https://forums.xilinx.com/t5/Installation-and-Licensing/Where-is-Vivado-after-the-install/td-p/797898
        
Double
        clicking the Vivado shortcut starts Vivado!!!! 
        Woohoo!
---------------------------
        Obtain Vivado License
        ----------------------------------
Quit
        Vivado because…
I STILL
        need to load a license for Vivado.
Xilinx
        emailed me my Vivado License.  The starting point for
        that process is here: 
        
        https://www.xilinx.com/products/intellectual-property/license.html
        Click
        “Generate a License Key”
Fill out
        the U.S. Government Export Approval form.  Click
        Next
Select
        the No Charge, No expiration date ISEWebPACK license 
        and click Generate Node-Locked license. I think “Node
        Locked” means that the license is usable on only one
        “node”, i.e. one computer.
Xilinx
        emails the license to you.  It is a text file called
        “Xilinx.lic”  Get it from the email and put it on your
        Desktop.
---------------------
        Install License ----------------------
First
        run a script that puts vlm (and other commands) into the
        PATH:
source
        /opt/Xilinx/Vivado/2018.2/settings64.sh
Run the
        license manager:
vlm
        
---------------------
        Fixing the 000000000000 error in the license manager
        --------------------
If you
        get an error message about the computer’s MAC address being
        “000000000000” the do the steps below, otherwise
        skip.
The 2018
        license manager runs OK but the 2017 license manager has a
        problem with the labeling of the ethernet ports which has
        changed with Ubuntu 16.  A solution is to rename the
        ethernet port to one that the license manager can
        understand. (The license manager uses the ethernet MAC
        address as a sort of fingerprint for that
        machine.)
Changing
        the ethernet name is explained here:
https://www.itzgeek.com/how-tos/mini-howtos/change-default-network-name-ens33-to-old-eth0-on-ubuntu-16-04.html
        
First
        confirm that the ethernet port has a weird
        name:
nmcli
        dev status
On my
        machine the port’s name is enp0s25.  Not good. I want
        it to be eth0.
Confirm
        that the renaming happened in the grub
        program
dmesg |
        grep -i eth
I can
        see the renaming happening
Edit the
        grub script:
sudo
        nano /etc/default/grub
In grub,
        change the line that says GRUB_CMDLINE_LINUX="" to
        GRUB_CMDLINE_LINUX="net.ifnames=0
        biosdevname=0"
Save and
        exit nano
Generate
        a new grub file:
sudo
        grub-mkconfig -o /boot/grub/grub.cfg
REBOOT. 
        Then check the ethernet port name:
nmcli
        dev status              
        YES! the ethernet now has the name
        “eth0”
        Run the
        script that puts vlm (and other commands) into the
        PATH:
source
        /opt/Xilinx/Vivado/2018.2/settings64.sh
Next run
        the license manager:
vlm
        ---------------------
        End of fixing the 000000000000 error
        -------------------------
I put
        the Xilinx.lic file that I previously obtained (for free)
        from Xilinx on to my Desktop.  Then in vlm, I click
        Load License > Copy License and navigate to the
        Xilinx.lic file on my desktop.  Seems to work OK. It
        seems to have copied Xilinx.lic to
        ~/.Xilinx/Xilinx.lic
--------------------
        End of license -------------
========= 
        End of Vivado Installation
        ===================
--------------- 
        Make bootable backup of system
        ----------------
After
        all this work, it’s time to do a backup.
Notes on
        how to do this moved to Halverson's
        Ubuntu_notes.txt
------------
        End of backup ------------
-----------
        TIME TO GET SOME FPGA CODE
        ----------------------------------
Go to
        the Red Pitaya Web site.  
        https://www.redpitaya.com/
        
 (I’m
        using Firefox.)  
Turn off
        “blocking” of certain information by firefox, by clicking
        the little shield icon to the left of the web address and
        selecting “Turn off blocking.”   (Not
        important?)
We want
        the Red Pitaya FPGA tutorial.  There a link to it at
        the bottom in the section titled “STEMlab as
        TEACHING/LEARNING platform.”  The link takes us
        here: 
        https://documentation-rp-test.readthedocs.io/en/latest/
        
At this
        point I am referring to Chapter 16, Programming the
        FPGA.  
        
        https://documentation-rp-test.readthedocs.io/en/latest/tutorfpga2.html
        
Following
        instructions, I get the FPGA Github repository from
        here: 
        https://github.com/RedPitaya/RedPitaya
        Clicking
        “Clone or Download” download
        RedPitaya-master.zip
Unzip
        (extract) the code by right-clicking RedPitaya-master.zip
        > Extract here
In the
        Terminal 
cd
        ~/Downloads/RedPitaya-master/fpga/
------------------------
        “Compile” the FPGA code using Vivado
        ---------------------
Still
        referring to Chapter 16, Programming the FPGA. 
        
        
        https://documentation-rp-test.readthedocs.io/en/latest/tutorfpga2.html
        
Go to
        the appropriate directory, set up environment variables,
        and run the Vivado system using this command. Note also
        that the “.” command is the same as the Linux “source”
        command
cd
        ~/Downloads/RedPitaya-master/fpga/
source
        /opt/Xilinx/Vivado/2017.2/settings64.sh 
        make
        project PRJ=v0.94
Vivado
        opens a window and begins.  Very cool looking wiring
        diagrams appear.  
Yay!
        It’s working!!!!!!!!!
Follow
        the steps here, for a first project, a blinking LED, on the
        RedPitaya board:
https://documentation-rp-test.readthedocs.io/en/latest/tutorfpga2.html
        
(Monitoring
        my RAM usage, I see that Vivado is using up to 3.5
        Gb.  No wonder my old computer couldn’t run
        Vivado.)
At this
        time I am still encountering problems.  In the Rep
        Pitaya tutorial, I am told to compile version 0.94, with
        modifications that are supposed to make an LED
        blink.
Unfortunately,
        the projects has “critical errors.”  I tried with and
        without the modifications for the LED and I get the same
        errors.   My suspicions is that Vivado 2017.2 is too
        “new” and that I need to go back even further for a
        compatible Vivado.  (To be honest, I’m a bit pissed
        that the tutorial didn’t catch this issue, if that is
        indeed the cause.)
The
        specific error occurs in the 2nd phase,
        implementation.  Here are the error
        messages:
        
[Vivado
        12-4739] set_false_path:No valid object(s) found for '-to
        [get_clocks dac_clk_o]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":212]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-to
        [get_clocks dac_clk_2x]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":213]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-to
        [get_clocks dac_clk_2p]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":214]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-to
        [get_clocks dac_clk_1x]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":216]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-to
        [get_clocks dac_clk_2x]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":217]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-to
        [get_clocks dac_clk_2p]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":218]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-to
        [get_clocks ser_clk]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":219]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-to
        [get_clocks pdm_clk]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":220]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-from
        [get_clocks dac_clk_o]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":221]
        [Vivado
        12-4739] set_false_path:No valid object(s) found for '-from
        [get_clocks dac_clk_o]'.
        ["/home/halver/Downloads/RedPitaya-master/fpga/prj/v0.94/project/redpitaya.srcs/constrs_1/imports/sdc/red_pitaya.xdc":222]
        
[Timing
        38-282] The design failed to meet the timing requirements.
        Please see the timing summary report for details on the
        timing violations.
====================
        Attempting resolve the above errors
        ======================
Note
        that an alternate set of instructions from Red Pitaya
        exists here: 
        
        https://redpitaya.readthedocs.io/en/latest/developerGuide/fpga.html
          From
        here I learn that the make command can be used in various
        ways.
Tried
        the “classic” project:
make
        project PRJ=classic
But I’m
        getting similar errors.
Try the
        non-gui version of making the code:
make
        PRJ=classic            
                       
          (Just leave out the word
        “project”)
Now I
        have an error because the TCL script
        red_pitaya_vivado_Z10.tcl is using the “git” command which
        is not installed.  I will install it
        now.
====================
        Installing git
        ==================================
This web
        page is helpful:  
        
        https://www.liquidweb.com/kb/install-git-ubuntu-16-04-lts/
        
sudo
        apt-get update            
                  (Update Ubuntu,
        recommended by the above web page.)
sudo apt
        install git
git
        --version             
                       
                       
        (Check if git is alive. It should say “git version
        2.7.4”)
git
        config --global user.name "halver"     (Set up my
        user information. You would put your
        info)
git
        config --global user.email "pghalverson@gmail.com"
        cat
        ~/.gitconfig        (Just checking the
        user info)
git
        config --list
=================
        End of installing git
        ==================================
Still
        not OK.  Before installing git the error
        was
“couldn't
        execute "git": no such file or
        directory”
        
Now the
        error is 
fatal:
        Not a git repository (or any of the parent directories):
        .git
9/10/19
        
I think
        “git” is not really needed to construct the FPGA
        code.  Try commenting out the
two
        lines in red_pitaya_vivado_Z10.tcl that refer to
        “git”
NOTE: 
        EVENTUALLY THIS CAUSES TROUBLE.  APPARENTLY THE MAKE
        FILE needs access to a git created file.  I will put
        the lines that refer to "git" back in.
That
        helps.  Now it goes a lot further through the script
        and dies when it tries to run gmake, which is not on my
        system.
Script
        crashes because the command “gmake” is not found. 
        According to documentation in the installation, in
        RedPitaya-master/doc/developerGuide/ecosystem/ecosystem.rst,
        the problem is that Vivado needs gmake.  According to
        it, I can make a link to “make” so it is called when Vivado
        calls gmake.
sudo ln
        -s /usr/bin/make /usr/bin/gmake
Also
        recommended by ecosystem.rst, add the environment variable
        $LC_ALL.  If should be set to “C”. (Check by typing in
        the terminal echo $LC_ALL. On my system it returned a
        blank.)
So in
        the terminal, type 
export
        LC_ALL=C
Also,
        add this line to the end of .bashrc, so:
Start a
        new terminal
nano
        .bashrc
Go to
        the bottom and add the export LC_ALL=C
^o^x and
        exit the terminal.
========= 
        Different approach, Try following the instructions
        beginning here =========
https://redpitaya.readthedocs.io/en/latest/index.html
        
Downloaded
        the image needed for the RedPitaya flash card from
        here: 
        
        https://redpitaya.readthedocs.io/en/latest/quickStart/SDcard/SDcard.html
        
Downloaded
        file red_pitaya_OS-stable.img.zip
Right
        click to extract with Archive Manager.  This creates a
        file called
        redpitaya_ubuntu_17-11-35_01-sep-2017.img
        
Purchase
        32 Gb Micro-SD and SD adaptor, connect via USB adaptor to
        this computer.
Run
        Startup Disk Creator (installed from the Ubuntu Software
        "store") and put the .iso file onto the
        Micro-SD
Ethernet
        address of my RedPitaya is rp-xxxxxx.local/   where
        xxxxxx is from my board's MAC address.
        F000BD
So it
        should be at rp-F000BD.local
YES! 
        I can connect to it at 
http://rp-f000bd.local/
        
        
        
        
-----------------------------------
        Installing stuff needed by the "ecosystem
        --------------------------
Instructions
        here: 
        
        https://redpitaya.readthedocs.io/en/latest/developerGuide/ecosystem/ecosystem.html
        
#
        generic dependencies
sudo
        apt-get install make curl xz-utils
# U-Boot
        build dependencies
sudo
        apt-get install libssl-dev device-tree-compiler
        u-boot-tools
# secure
        chroot
sudo
        apt-get install schroot
#
        QEMU
sudo
        apt-get install qemu qemu-user
        qemu-user-static
# 32 bit
        libraries
sudo
        apt-get install lib32z1 lib32ncurses5 libbz2-1.0:i386
        lib32stdc++6
sudo
        apt-get install python3 python3-pip
sudo
        pip3 install --upgrade pip
sudo
        pip3 install meson
sudo
        apt-get install ninja-build
(Skip
        Vivado 2917.2 installation, since I have already done
        it.)
sudo ln
        -s /usr/bin/make /usr/bin/gmake    (Previously
        done)
Create a
        directory for RedPitaya development.
mkdir
        work
cd
        work
Get a
        clone of the RedPitaya git.     (Note that I
        previously installed the "git"
        application)
git
        clone https:   //github.com/RedPitaya/RedPitaya.git
              (Takes a little time to
        download)
cd
        RedPitaya
source
        settings.sh            
                       
                #This set environment
        variables
(Instructions
        say to do ". settings.sh") but I find the command "source"
        to be understandable than ".")
mkdir -p
        dl               
                (Make a download cache
        directory)
export
        DL=$PWD/dl
Get the
        ARM Ubuntu root environment:
wget
        
        
        http://downloads.redpitaya.com/downloads/redpitaya_ubuntu_13-14-23_25-sep-2017.tar.gz
        (Download
        takes a few minutes)
sudo
        chown root:root
        redpitaya_ubuntu_13-14-23_25-sep-2017.tar.gz
        sudo
        chmod 664
        redpitaya_ubuntu_13-14-23_25-sep-2017.tar.gz
        
        
Create
        file
        /etc/schroot/chroot.d/red-pitaya-ubuntu.conf
        sudo
        nano
        /etc/schroot/chroot.d/red-pitaya-ubuntu.conf
        
This
        what I put in it           (My
        user name is "halver" and I put the path to the downloaded
        tar file.)
[red-pitaya-ubuntu]
        description=Red
        Pitaya Debian/Ubuntu OS image
type=file
        file=/home/halver/work/RedPitaya/redpitaya_ubuntu_13-14-23_25-sep-2017.tar.gz
        users=halver 
                       
                       
                   
         
root-users=halver
                       
                       
                     
             
root-groups=root
        profile=desktop
        personality=linux
        preserve-environment=true
        
See
        Forum discussion: 
        https://forum.redpitaya.com/viewtopic.php?t=1732
        
Start
        "making" the "Ecosystem"      (This runs
        Vivado in batch mode, building the FPGA takes more than 30
        minutes)
make -f
        Makefile.x86
schroot
        -c red-pitaya-ubuntu <<-EOL_CHROOT    (I
        got rid of a blank after the "-". I get a >
        prompt)
make
                       
                       
                       
                       
                       
                (Again I get a
        >)
EOL_CHROOT
                       
                       
                       
                       
                (It begins building a lot of
        stuff)
make -f
        Makefile.x86 zip
Apparently
        the next command, which is not needed starts a shell that
        pretends to be the environment that runs on the RedPitaya
        board:
schroot
        -c red-pitaya-ubuntu          
                  (To exit, type
        "exit")
=======================
        End of Building the "Ecosystem"
        ==================
At this
        point I see .bit files and it seems that the "Ecosystem"
        has been made.  Next task is how to get this stuff
        into the RedPitaya board.
===============
        Detour for my education - Try the LED Button Example
        ========
This is
        about messing with the applications running on the
        RedPitaya board: 
        
        https://redpitaya.readthedocs.io/en/latest/developerGuide/software/webexamples/addLEDbut.html
        
Preliminary
        steps here: 
        
        https://redpitaya.readthedocs.io/en/latest/developerGuide/software/firstApp.html
        
First
        ssh into the RP (RedPitaya) board:
ssh
        root@rp-f000bd.local         
                       
        (The password is "root")
The
        above crucial info is missing from the documentation! 
        I found the ssh command here:
https://www.rs-online.com/designspark/red-pitaya-a-quick-guide-for-developers
        
rw
                       
        (Make the board's file system writable.  Appears to be
        a command unique to RP)
apt-get
        install git     (Install git on the RP
        board)
git
        config --global user.name "halver"     
              (My username)
git
        config --global user.email "pghalverson@gmail.com"
        
Go to
        root directory and clone Red Pitaya
        Project:
cd
        /root/
git
        clone 
        https://github.com/RedPitaya/RedPitaya.git 
          (Takes a few minutes to download)
Now in
        root I see that there is a new RedPitaya directory and
        within that Examples and lots of stuff.
Replicate
        the project structure (explained in
        3.2.1.2.3)
cd
        /opt/redpitaya/www/apps
cp -r
        /root/RedPitaya/Examples/web-tutorial/1.template
        ./myFirstApp
cd
        myFirstApp
(Notice:
        the name of the application folder defines unique
        Application ID)
cd
        info
nano
        info.json              
                      This is
        what I put:
{
           
        "name": "My First App",
   
        "version": "0.01",
   
        "revision": "PETER1",
   
        "description": "Peters first app."
}
        
(I'm not
        bothering to change the icon)
cd ..
                    (I am now back in
        /opt/redpitaya/www/apps/myFirstApp)
nano
        index.html             
                Modify the Title
        line:
(I'm not
        modifying the css style file)
cd
        js
nano
        app.js
   
        APP.config.app_id = 'myFirstApp';   (Change the app_id
        to match the directory name)
cd
        ..    (or cd
        /opt/redpitaya/www/apps/myFirstApp/ 
        )
        
Compile
        the application:
make
        INSTALL_DIR=/opt/redpitaya
At this
        point "My First App" shows up on the RP web
        interface.  (It doesn't do anything,
        though)
------------------------- 
        After the preliminaries let's turn on/off LED. 
        Section 3.2.1.3.1 ---------
I think
        this sends the 0.94 version of the FPGA bitfile to the
        FPGA 
cat
        /opt/redpitaya/fpga/fpga_0.94.bit >
        /dev/xdevcfg
The
        editing stuff is very unclear.  See this forum
        discussion:
https://forum.redpitaya.com/viewtopic.php?t=2251
        
See also
        this discussion: 
        https://forum.redpitaya.com/viewtopic.php?t=1909
        It
        recommends this:
export
        LD_LIBRARY_PATH=/opt/redpitaya/lib
Edit
        index.html in myFirstApp and add to the body, inside
        'content', at the end
       
        
       
        < div id='led_off'>LED Off
      

