Changes

Jump to: navigation, search

Build system (BELK/BXELK)

12 bytes added, 14:57, 19 July 2017
Setting up the Linux development server environment
During development, user needs to interact with the target system. This section describes the tools that must be installed and configured on the Linux host system for this purpose.
====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.
====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.
Use the following command to set up the environment shell variables required during the building procedure:
<pre>source env.sh</pre>
====Pre-built root file system====
Linux needs a root file system: a root file system must contain everything needed to support the Linux system (applications, settings, data, ..). The root file system is the file system that is contained on the same partition on which the root directory is located. The Linux kernel, at the end of its startup stage, mounts the root file system on the configured root device and finally launches the <code>/sbin/init</code>, the first user space process and "father" of all the other processes.
For more information on the Linux filesystem, please refer to http://www.thegeekstuff.com/2010/09/linux-file-system-structure/.
Please refer to [[Introduction_to_developing_environment_(BELK)#Target_root_file_system|this page]] and [[FAQs_(Bora)#Q:_Why_my_cross-compiled_application_doesn.27t_work_with_the_pre-packaged_root_file_system_provided_with_BELK.3F|this FAQ]] for further details.
====U-Boot, Linux kernel and Yocto BSP git repositories====
BELK/BXELK source trees for U-Boot, Linux kernel and Yocto BSP are provided as git repositories, as detailed in the following table.
{| class="wikitable" border="1"
Please note that git fetch doesn't merge the commits on the current branch. To do that, the developer should run the <code>git merge</code> command or replace the ''fetch-merge'' process with a single <code>git pull</code> command. Please note that the recommended method is the ''fetch-merge'' process. For further information on Git, please refer to the official Git Documentation (http://git-scm.com/documentation).
====Using the pre-packaged git archive (BELK <= 3.0.0 only)====
BELK distribution provides (on request) the tar-gzipped archive of the .git directory of the repositories, so the user can immediately get access to the development trees (for example this is used when corporate security policies don't allow to use the git protocol).
4,650
edits

Navigation menu