Reza Arbab c2c2f3a42c package/petitboot: properly shut down before kexec
It's good practice to unmount filesystems and gracefully terminate
running services before running "kexec -e". So when a boot option has
been chosen from the petitboot menu, poke init to shut the system down
and kexec the new kernel.

One benefit to us in particular is that when pb-console is killed, it
notifies the user that we're booting:

  trap 'reset; echo "SIGTERM received, booting..."; sleep 2' SIGTERM

This terminal reset is also useful, exiting the ncurses visual mode so
subsequent boot output is raw rather than being confined to the window
set up for the petitboot menu.

Currently we assume busybox init (using the bb-kexec-reboot script
included with petitboot), but do not add an accompanying entry
in the inittab to run kexec, so things aren't working.

Add a new script kexec-restart that does the right thing for all init
systems that Buildroot supports (busybox, sysv, openrc, systemd). OpenRC
and systemd have an upstream way to do a kexec-shutdown. For busybox and
sysv, we add a line to inittab that does kexec -f -e (after the shutdown
scripts have run). Finally, for other cases (where there is no
recognized init system) directly use kexec -f -e.

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
[Arnout:
 - install kexec-restart in /usr/libexec/petitboot, where it was before;
 - determine init system statically based on config instead of dynamically.
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-12 23:59:25 +02:00
2024-06-05 23:31:18 +02:00
2024-06-12 12:30:36 +02:00
2024-07-12 23:04:41 +02:00
2024-06-12 18:41:29 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches
Description
No description provided
Readme 206 MiB
Languages
Makefile 62.5%
Python 19%
C 8.5%
Shell 6.1%
PHP 1.4%
Other 2.1%