mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
Backport support for saving and restoring system time from a file on systems with broken RTC that reset to the future. With this support a system can be sure time only ever moves forward. Fix #794 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
219 lines
7.2 KiB
Plaintext
219 lines
7.2 KiB
Plaintext
config BR2_PACKAGE_FINIT
|
|
bool "finit"
|
|
depends on BR2_USE_MMU # fork()
|
|
select BR2_PACKAGE_LIBITE
|
|
select BR2_PACKAGE_LIBUEV
|
|
select BR2_PACKAGE_SKELETON_INIT_FINIT # before BR2_INIT_FINIT support
|
|
help
|
|
The original Asus EeePC fastinit clone, on steroids. With process
|
|
supervision, plugin support, and more!
|
|
|
|
https://github.com/troglobit/finit
|
|
|
|
if BR2_PACKAGE_FINIT
|
|
|
|
config BR2_PACKAGE_FINIT_ADVANCED
|
|
bool "Advanced options"
|
|
default n
|
|
help
|
|
Take extra care to verify the resulting system behavior when
|
|
changing these option(s). They are marked advanced for the
|
|
very reason that they may brick your system!
|
|
|
|
if BR2_PACKAGE_FINIT_ADVANCED
|
|
|
|
config BR2_PACKAGE_FINIT_CUSTOM_FSTAB
|
|
string "Custom /etc/fstab"
|
|
default "/etc/fstab"
|
|
help
|
|
In certain use-cases, e.g., embedded systems with a secondary
|
|
partition, or when testing in factory production, users may
|
|
want to mount system partitions from an fstab file other than
|
|
/etc/fstab.
|
|
|
|
This setting allows changing the default fstab Finit looks for.
|
|
It can be set to any file in fstab format, even the emtpy string
|
|
in case you do not want a default fstab.
|
|
|
|
To select a different fstab at boot time, use the following kernel
|
|
command line option. Remeber the -- separator for kernel options
|
|
and options destined for PID 1.
|
|
|
|
finit.fstab=/etc/fstab.alt
|
|
|
|
endif
|
|
|
|
config BR2_PACKAGE_FINIT_INITCTL_GROUP
|
|
string "Group for /run/finit/socket"
|
|
default "wheel"
|
|
help
|
|
On systems with multiple administrators, set the group
|
|
to their shared UNIX group, usually "wheel", to allow
|
|
them to start/stop services and reboot the system.
|
|
|
|
config BR2_PACKAGE_FINIT_SILENCE_KERNEL
|
|
bool "Silence kernel logs to console"
|
|
default n
|
|
help
|
|
By default, Finit >= 4.8 no longer disable kernel logging
|
|
to console. This option can be used to re-enable legacy
|
|
klogctl() code to silence the kernel output.
|
|
|
|
Please note, sysklogd has a similar command line option to
|
|
keep kernel logging, which needs to be disabled as well.
|
|
|
|
config BR2_PACKAGE_FINIT_KEVENTD
|
|
bool "finit-keventd"
|
|
default n
|
|
help
|
|
Build bundled finit-keventd, which monitors kernel events
|
|
for AC power status and generates sys/pwr/fail condition.
|
|
This is a new feature in Finit v4.1 and is still very much
|
|
in an experimental state.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
config BR2_PACKAGE_FINIT_SULOGIN
|
|
bool "finit-sulogin"
|
|
default n
|
|
help
|
|
Build bundled finit-sulogin, which handles rescue mode
|
|
and cases where fsck fails. Its job is to ask for the
|
|
password for the root user, and start a login shell so
|
|
an administrator can perform corrective maintenance.
|
|
|
|
This is disabled by default since most users prefer the
|
|
distribution specific (Busybox) sulogin instead.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
config BR2_PACKAGE_FINIT_WATCHDOG
|
|
bool "finit-watchdogd"
|
|
default n
|
|
help
|
|
Build bundled finit-watchdogd, which provides a simplistic
|
|
watchdog daemon that runs in the background, kicking the
|
|
systemd default /dev/watchdog to prevent reboot. This is
|
|
useful in very small systems where its grownup old cousin
|
|
watchdogd cannot be used.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
if BR2_PACKAGE_FINIT_WATCHDOG
|
|
|
|
config BR2_PACKAGE_FINIT_WATCHDOG_DEV
|
|
string "watchdog device"
|
|
default "/dev/watchdog"
|
|
help
|
|
Device node to use for finit-watchdogd. The default is
|
|
usually sufficient, but some systems have more than one.
|
|
|
|
endif
|
|
|
|
config BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG
|
|
bool "Start (udevd/mdev -df) at boot"
|
|
help
|
|
By default, Finit installs /lib/finit/system/10-hotplug.conf
|
|
which detects if the system has udevd or mdev daemon. They
|
|
are both used to probe for devices, load modules and firmware
|
|
to devices that request it.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
With this you probably do not need the modprobe plugin.
|
|
|
|
config BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS
|
|
bool "hook scripts"
|
|
default n
|
|
help
|
|
Adds a run-parts(8) script runner for Finit hook points. When
|
|
enabled, it allows extending and customizing the boot process
|
|
and do early boot debugging long before regular services are
|
|
available.
|
|
|
|
For example, say that you want to enable some kernel tracing
|
|
before modules are loaded. With hook-scripts, you can just
|
|
drop in a shell script in /libexec/finit/hook/mount/all/ that
|
|
will poke the right control files in tracefs.
|
|
|
|
config BR2_PACKAGE_FINIT_PLUGIN_MODULES_LOAD
|
|
bool "Scan /etc/modules-load.d"
|
|
help
|
|
Scans /etc/modules-load.d for modules to load.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
config BR2_PACKAGE_FINIT_PLUGIN_MODPROBE
|
|
bool "Coldplug modules using modalias magic"
|
|
help
|
|
Coldplug modules using modalias magic. Everything is
|
|
handled automatically based on device trees and their
|
|
matching kernel modules.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
You probably do not want this anymore, use udevd or mdev to
|
|
probe devices, load modules and firmware instead.
|
|
|
|
config BR2_PACKAGE_FINIT_PLUGIN_RTC
|
|
bool "RTC plugin"
|
|
help
|
|
By default, Finit builds and launches its RTC plugin. It is
|
|
responsible for restoring the system clock from the RTC clock
|
|
at boot, and saving the system clock to RTC at reboot.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
if BR2_PACKAGE_FINIT_PLUGIN_RTC
|
|
config BR2_PACKAGE_FINIT_RTC_DATE
|
|
string "Fallback RTC date"
|
|
help
|
|
On many embedded systems there is no RTC battery, maybe there
|
|
is a "supercap" but on first boot it is usually out of juice.
|
|
When this happens the RTC will return its default value, or
|
|
the driver will fail and report error. In these cases Linux
|
|
will detect a too old/invalid date set from userspace. Any
|
|
date prior to 2000-01-01 00:00 is denied. (Previously this
|
|
was the start of the UNIX epoch, Jan 1 1970.)
|
|
|
|
This setting changes the default fallback date/time the RTC
|
|
plugin uses in case of such failures. Useful, e.g., for an
|
|
HTTPS certificate generated at first boot before any network
|
|
connection (DHCP/NTP) has been made to get the current time.
|
|
Ensuring the default system time to be closer to actual time
|
|
for a period after releasing a firmware image.
|
|
|
|
config BR2_PACKAGE_FINIT_RTC_FILE
|
|
string "Fallback file if /dev/rtc is missing"
|
|
help
|
|
For systems with broken RTC, where the default value can be
|
|
completely random, e.g., a time far in the future, it might
|
|
be better to disable the RTC driver or device tree node.
|
|
|
|
Enable this to allow the RTC plugin to save and restore the
|
|
system clock from a file when the plugin does not find any
|
|
usable device node.
|
|
|
|
Since /var/lib/misc is usually persistent across reboots, we
|
|
recommend using: /var/lib/misc/rtc
|
|
|
|
endif # RTC_PLUGIN
|
|
|
|
config BR2_PACKAGE_FINIT_PLUGIN_TTY
|
|
bool "TTY plugin"
|
|
help
|
|
Automatically resart tty services that are plugged in.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
config BR2_PACKAGE_FINIT_PLUGIN_URANDOM
|
|
bool "/dev/urandom plugin"
|
|
help
|
|
By default, Finit builds and launches its urandom plugin. It
|
|
is responsible for seeding /dev/urandom from a previously saved
|
|
seed at boot, and saving a seed at reboot.
|
|
|
|
For lxc/docker application builds you do not need this.
|
|
|
|
endif
|