Changes

Jump to: navigation, search

Build system (BELK/BXELK)

1,493 bytes removed, 16:53, 19 July 2017
BELK 4.0.0 or newer, BXELK 2.0.0 or newer
===BELK 4.0.0 or newer, BXELK 2.0.0 or newer===
The process of setting up the Linux development server is dramatically simplified with respect to the previous version of the kit. This is due to the use of the [[File:Belk-yoctoManaged Virtual Machine_(MVM)]] (the Basic version) that is a virtual machine containing all the tools required for the development of the software running on the target. To install it, please refer to [[VirtualBox_Starting_DVDK_Virtual_Machine#Using_a_.pngova_file|thumbthis page]]. As described [[Managed_Virtual_Machine_(MVM)#Yocto-based_Linux_distribution|center|600px|Simplified flow here]], MVM includes the resources–in terms of Yoctonetwork services, cross-based building processtoolchain, etc.–to implement the development host shown [[Introduction_to_development_environment_(BELK/BXELK)#Overview|here]]. Part of these resources was generated by the Yocto build system, as depicted in the following picture.
[[File:Belk-yocto.png|thumb|center|600px|Simplified flow of Yocto-based building process]]
====TFTP Server====
One of the most useful features of a bootloader during development is the capability to download the Linux kernel from the network. This saves a lot of time because developer doesn't have to program the image in flash every time he/she modifies it. U-Boot implements the TFTP protocol (see the <code>tftp</code> command), so the host system must be configured to enable the TFTP service. Installation and configuration of a TFTP server depends on the host Linux distribution.
====NFS Server====
One of the most important components of a Linux system is the root file system. A good development root file system provides the developer with all the useful tools that can help him/her on his/her work. Such a root file system can become very big in size, so it's hard to store it in flash memory. User could split the file system in different parts, mounting them from different media (flash, network, USB...). But the most convenient thing is to mount the whole root file system from the network, allowing the host system and the target to share the same files. In this way, the developer can quickly modify the root file system, even “on the fly” (meaning that the file system can be modified while the system is running).
The most common way to setup a system like the one described is by the use of network file system (NFS). Installation and configuration of NFS service on host machine depends on the Linux distribution. [[Setting_up_tftp_and_nfs|Here]] is described the procedure for some common distributions.TBD
====Pre-built Toolchain====
To start developing software for the BORA/BORAX platform, users need a proper toolchain, which can be pre-built or built-from-scratch. Building a toolchain from scratch is not a trivial task (though using a recent build system is easier than in the past), so the recommended approach consists in using a pre-built toolchain.
 
The toolchain used as a reference for '''BELK <= 3.0.2''' and '''BXELK <= 1.0.1''' is the toolchain provided with the Xilinx SDK (usually installed into <code>/opt/Xilinx/SDK/<Vivado_version>/gnu/arm/lin/bin</code>).
Once the toolchain is installed, create a a bash script (<code>env.sh</code>) containing the following lines:
<pre>
export PATH=<path_to_toolchain>:$PATH
export ARCH=arm
export CROSS_COMPILE=<toolchain_prefix>
</pre>
For example, for the Vivado 2014.4 release, the variables are the following:
<pre>
export PATH=/opt/Xilinx/SDK/2014.4/gnu/arm/lin/bin:$PATH
export ARCH=arm
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
</pre>
Use the following command to set up the environment shell variables required during the building procedure:
<pre>source env.sh</pre>
The toolchain used as a reference for '''BELK-4.0.0''' and '''BXELK-2.0.0''' is builded using Yocto build system. Once the toolchain is installed, create a a bash script (<code>env.sh</code>) containing the following lines:
*For linux: <code>git checkout bora</code>
Once these steps are completed, <u>don't forget to update the repositories</u>, as described in [[#U-Boot and Linux git repositories|this section]].
 
===BELK version up to 3.0.2, BXELK version up to 1.0.1===
4,650
edits

Navigation menu