Difference between revisions of "Embedded Linux system basis"
From ArmadeusWiki
(creation) |
(→Build system / toolchain) |
||
(8 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 | + | 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 | + | * 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 [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 | + | * 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 [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 08: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.
- 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 ARM Limited.
Linux is a registered trademark of Linus Torvalds.