Learn the Essentials of creating uBoot, Linux and YOCTO for a board
This is a step-by-step course. During this course you will learn the essentials about porting uBoot, Linux and YOCTO on a custom board.
After this course you will know how to get source code of uBoot, Linux and YOCTO for OpenRex board, you will know how to change the source, add a custom board support, compile it and test it. You can use similar steps to port uBoot, Kernel and YOCTO to your own boards.
Every student who actively engage with the course activities will receive a personal “The Essentials of Porting Software” Certificate.
Click here to see the course certificate
THIS COURSE IS FOR: Beginners, Hobbyists, Students and Engineers.
What will you learn?
- Lesson 1:
- Prepare a host machine (how to prepare a Linux virtual computer with everything you need for compilation)
- Download YOCTO and create uBoot, Kernel, Device Tree and Filesystem for the reference board (learn how to create images for the reference board)
- Lesson 2:
- Compile YOCTO for a custom board (bitbake YOCTO for OpenRex)
- Create an SD Card needed to boot up a custom board (locate the output files, create SD card with uBoot and Linux)
- Boot up your board to try the generated software (learn how to try the new uBoot, Kernel, Device Tree and Filesystem)
- Setup a new repository with your source code (learn how to setup GitHub and how to use a repository to store your source code)
- Start adding support for your custom board into uBoot (learn how to find which files need to be created and how to modify them)
- Lesson 3:
- Create initial uBoot files with support for your custom hardware (learn which files are important to create and edit)
- Compile uBoot for your custom board (learn what commands you need to run to compile uBoot)
- How to run DDR3 calibration to get values for memory controller (it’s important to get DDR3 controller register values, learn how to get them)
- Lesson 4:
- Uploading and starting uBoot directly from CPU (learn how to run uBoot on a board without any firmware)
- Editing uBoot files to add custom board support (finding the important files and editing them)
- Configuring pins of CPU in uBoot (learn how to setup the proper pin function and pin properties)
- Working with repositories (learn how to upload code changes to GitHub)
- Lesson 5:
- Create files with custom hardware support in Kernel source code (learn which files are important to create and edit)
- Compile Linux for your custom board (learn what commands will compile Kernel)
- How to use uBoot to download and test the new Kernel and Device tree (learn commands to use uBoot for file transfer)
- Lesson 6:
- Create a new meta-layer for a custom board in YOCTO (learn how to tell YOCTO about your new board)
- Add support for your custom board into YOCTO uBoot (learn how to tell YOCTO to compile your uBoot source code)
- Add support for your custom board into YOCTO Kernel (learn how to tell YOCTO to compile your Kernel source code)
- Lesson 7:
- Compile / Bitbake YOCTO for your custom hardware (learn how to generate images from YOCTO for a custom board)
- Create SD card with the new custom images (learn how to create the SD card which will boot up to Linux)
- Rebuild your YOCTO project from scratch (test how your clients and customers will be rebuilding your YOCTO custom source code)
- Lesson 8:
- Add variant support into uBoot for your custom board (learn how to add support into uBoot for a board variant with different CPU and memory size)
- Methods of flashing uBoot (learn how to flash uBoot on the new boards or update it on running boards)
- FUSES / eFUSES / Bootstrap options (learn how to tell CPU from what peripheral it should boot up)
- Lesson 9:
- Add variant support into Kernel for your custom board (learn how to add support into Kernel for a board variant with different CPU and memory size)
- Procedure of updating Kernel on SD card (learn how to update Kernel on existing board)
- How to prepare a downloaded filesystem (learn how to prepare an SD card with downloaded filesystem)
- About uBoot environmental variables and kernel command line (learn essentials about updating uBoot environmental variables and Kernel command line)
- apt-get command in filesystem (learn how to get a filesystem with working apt-get command)
- Lesson 10:
- Add variant support into YOCTO for a custom board (learn how to add support into YOCTO for a board variant with different CPU and memory size)
- Show other people / clients/ customers how they can compile your YOCTO (be sure, other people can compile code for your boards)
Starting from 99 USD
10 Lessons. Each lesson has a tutoring video that is approximately one hour long (the last lesson is shorter). Watch when it’s best for you + activities for practicing.
Windows or Linux PC
OpenRex MAX board. This board is not required for the course, but it will help you to test your code.