Changes

Jump to: navigation, search

Build system (BELK/BXELK)

146 bytes added, 15:14, 23 November 2021
Setting up the Linux development server environment
{{Applies To BoraLite}}
{{InfoBoxBottom}}
{{ImportantMessage|text=As the structure of the BELK/BXELK is based on several tools, it is strongly recommended the reading of [[Logical_structure_of_Bora_and_BoraX_Embedded_Linux_Kits_(BORA_SOM/BELK-L/General/BXELK)Logical_structure_of_BELK|this document]] and [[Introduction_to_development_environment_(BORA_SOM/BELK-L/Development/BXELK)Introduction_to_the_development_environment|this document]] first.
}}
|}
<section begin=BELK/>=Introduction=Build system==
A build system is a set of tools, source trees, Makefiles, patches, configuration files and scripts that make 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 o.s. 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:
*OpenEmbedded (http://wiki.openembedded.net/index.php/Main_Page)
In the following section, we will refer to the system running the Xilinx tools (that can be either a Microsoft Windows machine or a GNU/Linux machine) as the "Zynq development server", and to the machine running the GNU/Linux tools as the "Linux development server".
As described [[Logical_structure_of_Bora_and_BoraX_Embedded_Linux_Kits_(BORA_SOM/BELK-L/General/BXELK)Logical_structure_of_BELK|here]], the structure of the BELK/BXELK has changed over the years. That's why the istructions here indicated may differ according to the kit version.
==Setting up the Zynq development server environment==
As described [[Managed_Virtual_Machine_(MVM)#Yocto-based_Linux_distribution|here]], MVM includes the resources—in terms of network services, cross-toolchain, etc.—to implement the development host shown [[Introduction_to_development_environment_(BORA_SOM/BELK-L/Development/BXELK)#OverviewIntroduction_to_the_development_environment|here]].
====Building the Yocto BSP image and the associated SDKs====
The Yocto BSP image includes the U-Boot binary, the Linux kernel image, and the target root file system. For more information about how to build it and how to build the associated SDKs, please refer to [[Building the Yocto BSP (BORA_SOM/BELK-L/Development/BXELK)Building_the_Yocto_BSP|this page]].
====Building the U-Boot and the Linux kernel individually====
Please refer to the following links for the specific instructions describing these operations:
*[[BORA_SOM/BELK-L/Development/Building_U-Boot | Building U-Boot (BELK/BXELK)]]*[[BORA_SOM/BELK-L/Development/Building_Linux_kernel | Building Linux kernel (BELK/BXELK)]]
====C/C++ application development and debugging====
*when you cross-compile, rely on static linking and avoid dynamic linking against the root file system libraries
*build your application using the same cross-toolchain (when available) used for building the root file system
Please refer to [[Introduction_to_developing_environment_(BORA_SOM/BELK)-L/Development/Introduction_to_the_development_environment#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====
*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]].
<section end=BELK/>
8,157
edits

Navigation menu