Embedded Linux
Duration: N/A days

Back to course list Home
Synopsis An add-on to either the Kernel Programming course or the Administration course, this course focuses on architecture-specific concerns and idiosyncrasies, in maintaining or programming in an embedded Linux environment. Issues such as building and maintaining an embedded system, from the boot loader to the Kernel installation, are covered.
Target Audience Professionals involved with embedded systems - implementors and maintainers. Device Driver developers, and/or anyone interested in obtaining deeper insights into the workings of the Linux Kernel
  • Understand the differences between Embedded architectures and standard computers
  • Port Linux to just about any embedded architecture
  • Customize the boot loader and initram
1. The Embedded environment
1 hours
Introduction to key concepts in embedded systems, as opposed to full fledged PC environments.
  • What is "embedded"?
    • Differences between a full computer and an embedded one
      • non-Intel architectures
        2. Cross compiling a system
        1 hours
        Setting up and initializing an embedded system. Focus on the cross compiler setup, and building commands and custom binaries
        • Target architectures
          • Setting up GCC and binutils
            • Setting up a file system
              • To there and back again: transferring files
                3. Customizing the boot loader
                2 hours
                Describing U-Boot and GRUB, the two popular bootloaders in the embedded environment
                • U-Boot
                  • Obtaining and compiling U-Boot
                    • Customizations in U-Boot
                    • The GRand Unified Bootloader (GRUB)
                      4. Porting the Kernel
                      2 hours
                      How to compile and port the Linux Kernel sources to embedded architectures, such as ARM and PPC, and prepare the InitRAM image
                      • Kernel Sources
                        • Obtaining and compiling the Kernel
                          • Specific non-Intel considerations
                          • InitRAM, InitRD, and customizations