You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Paul Fertser 174ff7d754 base-files: send informational UDP message each second waiting
The preinit network initialisation and failsafe informational message
are inherently racy as the interface takes some time to become
functional after "ip link set $pi_ifname up" command.

Consider this timing:

[   12.002713] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   12.008819] IPv6: ADDRCONF(NETDEV_UP): eth1.1: link is not ready
[   12.118877] random: procd: uninitialized urandom read (4 bytes read)
[   13.068614] eth1: link up (1000Mbps/Full duplex)
[   13.073309] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   13.080445] IPv6: ADDRCONF(NETDEV_CHANGE): eth1.1: link becomes ready

Since the UDP message was sent prior to link becoming ready, it was
never seen on the wire.

The default failsafe timeout is set to 2 seconds, so with this patch
there are two attempts to send the message, one spent in vain, and the
other visible in tcpdump on an attached host. Of course, in cases when
the interface is brought up faster it leads to two messages, however it
should be harmless. This patch (almost) doesn't affect normal boot time
while still allowing to enter failsafe reliably with a single button
press, matching the official "generic failsafe" documentation.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
5 years ago
..
02_default_set_state base-files: preinit: Fixed sourcing of diag.sh in /etc/preinit. This caused errors due to frequent use of /proc/cpuinfo to determine board name to pick led layout. Now diag.sh (which only defines set_state and any helper functions) is sourced by a proper preinit function during preinit_main, which is after /proc has been brought up, unlike in /etc/preinit 13 years ago
02_sysinfo treewide: populate boardname and model earlier 7 years ago
10_indicate_failsafe base-files: Allow to disable failsafe mode 8 years ago
10_indicate_preinit merge: base: update base-files and basic config 7 years ago
30_failsafe_wait base-files: send informational UDP message each second waiting 5 years ago
40_run_failsafe_hook base-files: add support for staged sysupgrades from failsafe mode 7 years ago
50_indicate_regular_preinit add "preinit_regular" diag.sh set_state argument 10 years ago
70_initramfs_test base-files: fix whitespaces 11 years ago
80_mount_root base-files: keep sysupgrade.tgz until /etc/init.d/done has been called 9 years ago
99_10_failsafe_login base-files: add support for staged sysupgrades from failsafe mode 7 years ago
99_10_run_init base-files: fix whitespaces 11 years ago