linuxboot / linuxboot/book

generic guideline to LinuxBoot for SoC platforms

Open
#115 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
300
Forks
54
PR merge metrics
No merged PRs in 30d

Description

TL;DR build systems and education are key

**NOTE**: There are many [SoC vendors](https://gist.github.com/orangecms/d2c4e1215498987b666bca093ab5c5ed) and platforms, and they all differ. A fully generic boot image is hard to achieve. We can go with a generic mainline kernel with a reduced set of drivers.

All you really need is

1. a userland (u-root, BusyBox, whichever) as initrd/initramfa
2. the kernel (with a suitable config)
3. the device tree (the most specic part)

and a way to hook into the existing firmware unless you want to bring your own. The latter is way harder.

We need to look closer into U-Boot "Falcon" mode and its build system with binman. It must be easily possible to just replace the main U-Boot (commonly a FIT image today) with Linux (making that a FIT is trivial).

With oreboot, I am aiming to get to a single command line to build and flash an image. You pass your kernel with embedded initramfs and the DTB, and the oreboot build system does the rest. That already works for the Allwinner D1.

As an example, I find this to be a good guideline toward simplicity:
https://popovicu.com/posts/10-mb-raspberry-pi-mainline-linux-image-for-embedded/

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the proposed LinuxBoot components: userland, kernel, device tree, existing firmware, and U-Boot Falcon mode with binman. Compare the stated oreboot workflow, including the Allwinner D1 example, with the linked Raspberry Pi guideline. Done should be a documented generic guideline that accounts for platform differences and build-and-flash simplicity.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
documentation, operating-systems
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.