0% found this document useful (0 votes)
74 views

Roadmap for Embedded Linux System

Uploaded by

SINGARAVELAN
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views

Roadmap for Embedded Linux System

Uploaded by

SINGARAVELAN
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Roadmap for Embedded Linux System

Basic purpose or intend to create this document is to define overall roadmap for Embedded
Linux Systems
Embedded Linux is actually a sub-niche of Embedded Software. So if you have done any kind of
embedded software development before, that would be a great start (writing firmware, or
developing GUI for Raspberry Pi, or writing a small driver for a sensor using Arduino).
The end goal of Embedded Linux is to develop custom software for a customized Linux board.
This is interesting because we now have to think like a Linux kernel developer.
For example, a common project in Embedded Linux is to develop a device with the
requirements as follows:

• Using a Linux-capable microprocessor (such as Rockchip, Broadcom, Allwinner, MIPS,


etc)
• Use custom GUI (usually Qt, or LVGL)
• Interface with 3 HD Cameras
• Gigabit Ethernet as the connectivity
• Able to stream video at 1080p 60fps
• Able to store the video in an external storage (HDD)
• Working 24x7 with 98% uptime

With such requirements, we are now in resource and compute-intensive territory. Thinking like
a firmware developer won’t cut it, because such a system will have lots and lots of subsystems,
the main goal is how to manage them all and integrate them nicely.
Firmware development often focuses on hard real-time requirements and low bandwidth
systems.
This is why we need to think like a Linux kernel developer.
To be an embedded Linux developer, follow this roadmap:

• Be an embedded software engineer/firmware developer


• Get really good with the Linux OS (know how to install packages, handle files, setup
network, etc)
• Get familiar with the Linux kernel subsystem
• Get familiar with the Device Tree concept
• Able to recompile (all by yourself) at least one open-source project
• Familiar with device driver development
• Able to recompile Linux kernel
• Embedded Linux Bootloader
• Embedded Linux File System with different file system types like SquasFS, JFFS2 etc
• BSP Porting
• Different Debugging Tools like GDB, Valgrind and other memory leakage tools
• Linux Kernel Configurations
• Device Tree Source (DTS) and Device Tree Block (DTB) Files with Device Tree
Architecture and Understanding
• DTS mapping with Linux Device Driver
• Static and Dynamic Linux Device Driver Loading
• Partition Table for Bootloader, Linux Kernel, File System and other required
configurations and custom partitions
• Init Root File System loading before loading actual file system

You can also try common embedded Linux tools/platforms like OpenWRT Build, Buildroot and
Yocto Build System. Just make sure your PC is powerful enough because you will spend hours
recompiling Linux kernel.

You might also like