With two parallel builds (amd64, aarch64) we have contention of who last
uploads their artifact, meaning aarch currently removes the amd64 build.
This change should fix that.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This change adds a `factory` tool, and login shell, that schedules a
reset of all writable (overlay) filesystems. The tool is set up with
the suid gid flag to allow all members of the wheel group to perform
the reset.
The login method only allows reset from /dev/console, to prevent any
malicious reset over SSH. This should be further constrained later
when PAM is introduced.
To initiate factory reset from the login prompt, use login/pass:
factory/reset
To initiate factory reset from the shell, call
factory
Both methods are interactive by default, but two command line options
can be used to modify the behavior:
-r Skip reboot, and "reboot now?" question
-y Assume yes to all questions, for non-interactive use
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Needed by, e.g., new swup script, but also everything else we might want
to do with jq in any sane way.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This change checks¹ if the system does not have a br0 interface, creates
a default one consisting of all switch ports in VLAN 1 of br0.
On top of br0 a vlan1 management interface is created with DHCP address.
For emulation and test purposes, a way to supply tap interfaces from
Qemu, and pass off as if they were regular switch ports, is added.
____
¹ obviously a better way to detect a factory-reset device is needed,
not all systems running infix will need or want a br0 interface.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Do not wait for dhclient to acquire first release, this will cause
unnecessary delays when booting, and not provide any real value in our
system. Because we will never have any service that depends on a
network address being set when starting up, this is a feature that
Finit can provide for us as a condition when starting such services.
Also, never set global "README" in multiple policy files, this will
cause ifupdown2 to crash in horrific ways.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The default policy for management interface prefix in ifupdown2 is
"eth", which currently clashes with Infix default switch port names.
Changing our naming policy of switch ports to "swpN", mimicing the
naming using in Cumulus Linux, would also help. To be discussed.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
We will not use features like batman, vxrd, or openvswitch. Also, the
clagd and vxrd addons are not in ifupdown2, so likely proprietary ext.
by Cumulus. Dropping them makes "unknown addon" warnings go away.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Various scripts and tools search for the ip command in different
places. Most distros install it to /bin/ip and symlink to /sbin
and /usr dito, but Buildroot only installs to /sbin/ip
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This is a workaround for the following code in ifupdown/template.py:37
that throw the exception with python-mako >= 1.2.0:
try:
self.logger.debug('setting template lookuppath to %s'
template_lookuppath)
lc = utils.importName('mako.lookup', 'TemplateLookup')
self.tclassargs['lookup'] = lc(
directories=template_lookuppath.split(':'))
except Exception as e:
self.logger.warning('unable to set template lookup path'
' %s (%s): are you sure \'python3-mako\''
'is installed?'
% (template_lookuppath, str(e)))
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The ifupdown2 package is incompatible with python-mako >= v1.2.0. So as
a workaround we add the old one as a local override.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Unlike debugfs, cfgfs is currently an optional feature in Infix, so
let's set it to noauto for now.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The Westermo querierd is an IGMP querier daemon for use on top of a
standard Linux VLAN-aware bridge.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Latest Buildroot now has mdio-tools in mainline. This is useful when
debugging devices attaced over MDIO interfaces, eg. switches.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This change replaces the BusyBox ifup/ifdown applets with the full-blown
ifupdown2 package. To get it fully working we also need to enable a few
missing kernel features: ipv4 + ipv6, multiple routing tables, and some
netfilter features. We take the opportunity to sync kernel features in
between the two archs as well.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This is the next generation ifupdown from Cumulus Networks (now NVIDIA).
The idea is to use this to set up everything port/lag/vlan/interface
related in the system.
This first import uses the kkit branch from the KernelKit fork, becuase
of, amongst other things, integration problems with upstream packages.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The qemu.sh script can fail, due to misconfiguration or other problems,
before it actually starts qemu. Therefore, move the help text to right
before starting the emulator.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>