Project

General

Profile

Actions

Feature #1217

open

Utilize latest features of Buildroot

Added by Hammel about 1 month ago. Updated about 21 hours ago.

Status:
In Progress
Priority:
Immediate
Assignee:
Category:
00 - Basic Build Issues
Target version:
Start date:
28 Jul 2025
Due date:
% Done:

10%

Estimated time:
Severity:
01 - Critical

Description

There are a number of items I can use to improve PiBox.

This list will expand over time.
  1. Use a skeleton overlay directory instead of the customize package
  2. Build out of tree
  3. Add make buildroot-pkg-stats
  4. Add make buildroot-show-info
  5. Add make buildroot-graph-depends
  6. Add make buildroot-graph-size
  7. Install toolchain to ~/toolchain/version using deb tools
  8. Install Buildroot staging tree to ~/.cache/pibox for use by package builds.
  9. Build buildroot before kernel - kernel tools often depend on sysroot/rootfs tools
  10. Use squashfs packaging of firmware and userland and add via an overlay setup
  11. Use proper package directories
  12. Use patch directories
  13. Fix rundock to run BASH from the current directory (re: use -w option).
  14. Add -targets to component and top level builds. Use .target to hide targets that shouldn't be called directly.

Related issues

Related to PiBox - Action Item #775: Check if migration to Buildroot recommended customizations is warrantedIn ProgressHammel06 Jul 2020

Actions
Actions #1

Updated by Hammel about 1 month ago

  • Related to Feature #1100: Update lightsw registration to match new imrest requirements. added
Actions #2

Updated by Hammel about 1 month ago

  • Related to deleted (Feature #1100: Update lightsw registration to match new imrest requirements.)
Actions #3

Updated by Hammel about 1 month ago

  • Related to Action Item #775: Check if migration to Buildroot recommended customizations is warranted added
Actions #4

Updated by Hammel 5 days ago

  • Severity changed from 03 - Medium to 01 - Critical
Actions #5

Updated by Hammel 4 days ago

  • Description updated (diff)
Actions #6

Updated by Hammel 2 days ago

-show-info is implemented and working.
The other new targets have problems:

$ make buildroot-graph-depends
ERROR: The 'dot' program from Graphviz is needed for graph-depends
make[1]: *** [Makefile:881: graph-depends-requirements] Error 1
make: *** [configs/buildroot.mk:258: buildroot-graph-depends] Error 2
$ make buildroot-graph-size
/bin/bash: line 1: mkdir: No such file or directory
make[1]: *** [Makefile:896: graph-size] Error 127
make: *** [configs/buildroot.mk:265: buildroot-graph-size] Error 2
$ make buildroot-pkg-stats
/usr/bin/env: 'python3': No such file or directory
make[1]: *** [Makefile:925: pkg-stats] Error 127
make: *** [configs/buildroot.mk:258: buildroot-pkg-stats] Error 2

It appears these won't work with the version of Buildroot in use currently. I'll probably need to bump the Buildroot version. There are targets in place that are disabled for these features until that is done.

Actions #7

Updated by Hammel 2 days ago

  • Description updated (diff)
Actions #8

Updated by Hammel about 21 hours ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10
To use custom skeleton overlays:
  1. Disable System->RootFS Skeleton
  2. Remove configuration for System->custom target skeleton path
  3. Add package/customize/skeleton as a path to System->Root filesystem overlay directories
  4. Update buildroot.mk
    1. -rebuild target deletes and recopies skeleton directory (no need to clean up target anymore)
    2. Update -preconfig-customize
    3. Update -preconfig to remove kernel modules (they will be installed as an overlay lowerdir instead)
    4. Update -preconfig to remove gles (they will be installed as an overlay lowerdir instead)
  5. Generate kernel modules as squashfs for use in overlay
  6. Generate gles as squashfs for use in overlay
  7. Generate RPI Tools as either
    1. built by Buildroot, if possible
    2. built as a squashfs image
  8. Update Busybox init script to mount kernel modules and gles squashfs files and add them to overlay.
    1. Add RPI Tools squashfs, if used.
  9. Check if CUSTOMSRC is still needed in post-build.sh
  10. Add kernel modules, gles and (maybe) RPI Tools squashfs to install script.
Actions #9

Updated by Hammel about 21 hours ago

Building out of tree

O=$(BUILDROOT_BLDDIR)

will require changing all

$(BUILDROOT_SRCDIR)/output

to

$(BUILDROOT_BLDDIR)/output
Actions

Also available in: Atom PDF