Remote Development with COE Linux
For early development a development and simulation environment on COE Linux systems is available. This section discusses how to use the COE Linux systems for cross compilation and simulation.
1 Access
The easiest access is through the graphical interface (see 1.1). The terminal access (1.2) offers more advanced/efficient features.
1.1 COE VLab with Graphical Interface
- Follow COE’s instructions to install and connect to VLAB. The Duo authentication is preferred as you don’t need a VPN off campus. Remember to use your COE credentials (not the Northeastern credentials).
- Connect to Rocky Linux 8, it has VS Code installed or you can use the terminal.
1.2 COE VLAB Direct Terminal Access (advanced)
Do not execute the qemu simulator or the VSCode remote server on gateway or on remote (which have an old operating system). Instead, use one of the VLAB machines that run Rocky Linux 8. Their names range from 08vlab155 to 08vlab165.coe.neu.edu. Their access through VLAB (see above) is preferred. SSH access seems to work (but unknown how stable):
ssh -X <COE UserName>@<08vlab155 to 08vlab165>.coe.neu.edu
In order to reach QEMU via ssh it both shells (qemu and ssh) need to run on the same machine.
2 Installation Locations
2.1 SystemC
To use SystemC for hardware simulation, source the following settings:
source /ECEnet/Apps1/esl/EECE7368/setup-systemc.sh
You should source the script above before compiling SystemC code and running the co-simulation. To have SystemC compilation available in every shell, automate the sourcing in your bashrc:
echo "source /ECEnet/Apps1/esl/EECE7368/setup-systemc.sh" >> ~/.bashrc
2.2 Cross-compilation for ARM and Simulation
-
The tools for cross compilation and simulation are already installed on the COE machines (with Rocky Linux 8). The tools are packaged as an SDK. The 7368 SDK is located at
/ECEnet/Apps1/esl/EECE7368SDK
. -
In order to use the SDK, the build environment needs to be activated each time a new shell is started (See Using SDK). Note however, that the SDK since it is self-contained comes with an own set of many system binaries which it puts in the front of the PATH (so that they are found first). Hence, when the SDK is activated, you may see differend binary versions than your original Linux. Hence, we don’t want to activate it all the time (like we did for SystemC). To simplify activating the SDK on demand, create an alias (a command line shortcut) called setup-xarm:
echo "alias setup-xarm='unset LD_LIBRARY_PATH && source /ECEnet/Apps1/esl/EECE7368SDK/environment-setup-cortexa9t2hf-neon-esl-linux-gnueabi && PS1=\"(xarm) \$PS1\"'" >> ~/.bashrc
Then, in any new terminal you can activate the SDK by:
setup-xarm
- When using the SDK on COE, the SSH server listens on a random port (printed during
start). For convenience,
qemu-esl
automatically updates your ~/.ssh/config with that port. You can login simply with ‘ssh qemu’, IP address, port and username are taken from the config file.
Follow the next instructions (ARMXCompSim) on how use the SDK for cross-compilation and simulation.