Open main menu

DAVE Developer's Wiki β

Changes

Build system (BELK/BXELK)

2,184 bytes added, 09:34, 28 October 2015
no edit summary
{{InfoBoxTop}}
{{Applies To Bora}}
{{Applies To BoraX}}
{{InfoBoxBottom}}
 
== History ==
{| class="wikitable" border="1"
!Version
!Date
!BELK version
!Notes
|-
|1.0.0
|November 2015
|[[Bora_Embedded_Linux_Kit_(BELK)#BELK_software_components|3.0.0]]
|First release
|-
|}
==Introduction==
A build system is a set of tools, source trees, Makefiles, patches, configuration files and scripts that makes it easy to generate all the components of a complete embedded Linux system. A build system, once properly set up, automates the configuration and cross-compilation processes, generating all the required targets (userspace packages such as libraries and programs, the kernel, the bootloader and root filesystem images) depending on the configuration. In particular, using an integrated build system prevents from problems caused by misaligned toolchains, since a unique toolchain is used to build all the software components, including the customer application. Some well known structured build systems are the following:
===U-Boot and Linux git repositories===
BELK source trees for U-Boot and Linux kernel are provided as git repositories.
{| class="wikitable" border="1"
!Component
!Remote git repository
|-
|U-Boot
|git@git.dave.eu:dave/bora/u-boot-xlnx.git
|-
|Linux
|git@git.dave.eu:dave/bora/linux-xlnx.git
|-
|}
This means that these components can be kept in sync and up to date with DAVE Embedded Systems' repositories.
When the git account is enabled (please refer to section TBD), the developer can:
*clone the repository with the <code>git clone <git_remote_repository></code> command
*synchronize a source tree entering the repository directory and launching the <code>git fetch origin</code> command.
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).
===RSA key generation===
For getting access to the Git repositories, a ssh key is required. Please follow the procedure reported below to generate the RSA ssh key (<u>it is assumed that the ssh package and the required tools are installed on the Linux development server</u>):
select your username (ad es. username@myhost.com)
*start a shell session on the Linux host
*enter the .ssh subdirectory into your home directory:
*:<code>cd ~/.ssh/</code>
*launch the following command:
*:<code>ssh-keygen -t rsa -C "username@myhost.com"</code>
*:this command creates the files <code>~/.ssh/username@myhost.com</code> (private key) and <code>~/.ssh/username@myhost.com.pub</code> (public key)
*edit your <code>~/.ssh/config</code> adding the following lines:
<pre>
Host git.dave.eu
User git
Hostname git.dave.eu
PreferredAuthentications publickey
IdentityFile ~/.ssh/username@myhost.com
</pre>
4,650
edits