Difference between revisions of "Embedded Linux system basis"

From ArmadeusWiki
Jump to: navigation, search
(The rootfs)
(Build system / toolchain)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
An embedded Linux system is very similar (when speaking about software) to a Desktop one, thanks to the power of the latest embedded microprocessor, like the ARM9 one.
+
An embedded Linux system is very similar (when speaking about software) to a Desktop one, thanks to the power of the latest embedded microprocessor cores, like the ARM9™/Cortex™ ones.
 
It is composed of:
 
It is composed of:
 
* a '''bootloader''', which is the first bits of code executed when the processor starts. It behaves like the BIOS+Grub combination on Desktop PCs.
 
* a '''bootloader''', which is the first bits of code executed when the processor starts. It behaves like the BIOS+Grub combination on Desktop PCs.
 
* an operating system = the '''Linux kernel'''
 
* an operating system = the '''Linux kernel'''
* many programs and librairies organised in a filesystem = the '''rootfs'''
+
* many programs and librairies organized in a filesystem = the '''rootfs'''
  
 
==The bootloader==
 
==The bootloader==
In our case our bootloader is U-Boot. It's main role is to initialize the hardware, load the Linux kernel and launch it with the correct parameters
+
In our case our bootloader is [http://www.denx.de/wiki/view/U-Boot U-Boot]. It's main role is to initialize the hardware, load the Linux kernel and launch it with the correct parameters
  
 
==The kernel==
 
==The kernel==
In our case Linux.
+
In our case [https://www.kernel.org/ Linux™].
  
 
==The rootfs==
 
==The rootfs==
 
It is composed of:
 
It is composed of:
* a C library
+
* a C library (mostly uClibc or glibc in our boards),
* basic utilities (in our case regrouped as one executable through [[Busybox]])
+
* basic utilities (in our case regrouped as one executable through [[Busybox]]),
* additionnal librairies and tools
+
* additional libraries and tools,
  
<br>
+
==Build system / toolchain==
To build all these tools, you need a "build system". We use Buildroot.
+
To build all these tools, you need a "build system". We use [https://buildroot.org/ Buildroot].
 +
# This system will build a gcc cross-toolchain that will allow to generate on your PC software that can be run on your APF.
 +
# When this toolchain is ready it will compile the bootloader, the kernel and the tools of the rootfs
 +
# Finally it will generate images of these 3 components that can be "flashed" on your APF/OPOS module
 +
 
 +
 
 +
ARM9 & Cortex are registered trademarks of [https://www.arm.com/ ARM Limited].
 +
 
 +
Linux is a registered trademark of Linus Torvalds.

Latest revision as of 09:31, 22 November 2016

An embedded Linux system is very similar (when speaking about software) to a Desktop one, thanks to the power of the latest embedded microprocessor cores, like the ARM9™/Cortex™ ones. It is composed of:

  • a bootloader, which is the first bits of code executed when the processor starts. It behaves like the BIOS+Grub combination on Desktop PCs.
  • an operating system = the Linux kernel
  • many programs and librairies organized in a filesystem = the rootfs

The bootloader

In our case our bootloader is U-Boot. It's main role is to initialize the hardware, load the Linux kernel and launch it with the correct parameters

The kernel

In our case Linux™.

The rootfs

It is composed of:

  • a C library (mostly uClibc or glibc in our boards),
  • basic utilities (in our case regrouped as one executable through Busybox),
  • additional libraries and tools,

Build system / toolchain

To build all these tools, you need a "build system". We use Buildroot.

  1. This system will build a gcc cross-toolchain that will allow to generate on your PC software that can be run on your APF.
  2. When this toolchain is ready it will compile the bootloader, the kernel and the tools of the rootfs
  3. Finally it will generate images of these 3 components that can be "flashed" on your APF/OPOS module


ARM9 & Cortex are registered trademarks of ARM Limited.

Linux is a registered trademark of Linus Torvalds.