Commit Graph
46 Commits
Author SHA1 Message Date
Joachim Wiberg fef42eb45b configs: switch from ifupdown2 to ifupdown-ng
- Replace ISC dhclient with dhcpcd => IPv4 link-local address
 - Enable openresolv to handle /etc/resolv.conf for us
 - iproute2 was a dependency of ifupdown2, but now we need to
   enable it explicitly
 - Ensure we have the same default system interface in infix
 - Reenable BusyBox applets disabled when enabling ifupdown2, for
   infix derivatives that may prefer a smaller base image.

Note: ifupdown-ng prefers dhcpcd over udhcpc, so no risk for conflict by
      reenabling udhcpc.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-19 18:09:26 +01:00
Joachim Wiberg 9018024ca9 Add support for generating GNS3 appliance file for amd64 builds
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-16 19:15:40 +01:00
Joachim Wiberg bc21f93ec2 Add support for returning a device to factory defaults
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>
2023-01-04 15:24:36 +01:00
Joachim Wiberg c748128137 configs: enable jq regexp support with Oniguruma
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>
2023-01-03 20:37:22 +01:00
Joachim Wiberg ef86cd23f4 configs: enable rngd to improve entropy with /dev/hwrng
Also, enable virtio-rng-pci in Qemu for testing.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-12-21 10:35:37 +01:00
Joachim Wiberg 1c5730d193 configs: enable jq for all targets
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-12-21 10:35:00 +01:00
Joachim Wiberg 26e127d495 configs: enable mdnsd for all platforms
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-12-14 23:06:16 +01:00
Joachim Wiberg 245c298f0d configs: drop old ifupdown-scripts, not needed anymore
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-12-14 22:21:16 +01:00
Joachim Wiberg dc42c70f4e configs: enable IGMP querier daemon in default builds
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-12-14 22:21:16 +01:00
Joachim Wiberg 1653980b19 configs/aarch64_defconfig: enable mdio-tools
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>
2022-12-14 22:21:16 +01:00
Joachim Wiberg 66f605681d configs: enable socat, for testing and scripting
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-12-13 17:34:19 +01:00
Joachim Wiberg 989a81fdc9 Enable ifupdown2 for all platforms, replacing BusyBox ifup/ifdown
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>
2022-12-13 17:34:19 +01:00
Joachim Wiberg 8d9bd8ec09 Roll out final product branding
Change all inf/IX or Inf/IX to plain Infix after steering group meeting.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-12-05 21:09:05 +01:00
Joachim Wiberg 5adb612dda board/aarch64: initial support for EspressoBIN
- Drop Cortex A72 in favor of more general A53 images
 - Enable device trees for all supported EspressoBIN models
 - Bump kernel to latest 6.0
 - Currently only starts from SD card, so add genimage to post-build
 - Create Ext2/4 disk image for SD card
 - Add infix-rw partition to sd-card image
 - The genimage tool needs genext2fs to create rw.ext4

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-26 17:05:26 +01:00
Tobias Waldekranz 9358a0f277 aarch64: Enable SMP support for SparX-5i
Upstream device trees specify regular PSCI support for SparX-5i, but
the U-Boot that Microchip ships does not actually support it.
Therefore, wrap the upstream version to disable PSCI and revert to
spin tables for SMP bringup.
2022-11-24 22:55:11 +01:00
Joachim Wiberg 766e07e9c3 amd64,aarch64: change from Dropbear SSH -> OpenSSH
OpenSSH also enable OpenSSL and ZLIB, both of which we'll need later.
This in turn means Net-SNMP no longer needs its built-in OpenSSL stub.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-23 18:02:22 +01:00
Joachim Wiberg 9f9581ae83 amd64,aarch64: drop Finit watchdog in favor of watchdogd
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-23 14:41:23 +01:00
Joachim Wiberg 49b0e81571 aarch64,amd64: add chrony, dnsmasq, mstpd, net-snmp, ssdpd, watchdogd
- chrony will be used as NTP v3/v4 server
 - dnsmasq will serve as a DNS forwarder and DHCP server when the
   very basic BusyBox DHCP server is insufficient
 - mstpd provides RSTP support
 - ssdp-responder provides device discovery in Windows
 - watchdogd provides basic system supervision and reset cause logging

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-23 14:41:23 +01:00
Tobias Waldekranz 4d41f16a7e common: Add ethtool to defconfigs 2022-11-21 20:46:23 +01:00
Joachim Wiberg 03023c23af aarch64,amd64: enable tcpdump support
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-19 15:50:00 +01:00
Joachim Wiberg 4e8e5bc228 aarch64,amd64: enable netcalc command line tool
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 17:44:22 +01:00
Joachim Wiberg e8c2f11821 aarch64,amd64: enable LLDP support
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 17:08:59 +01:00
Joachim Wiberg 3cb760626e aarch64,amd64: enable SSH servver support using Dropbear daemon
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 17:08:59 +01:00
Joachim Wiberg 71948c6c9b aarch64,amd64: enable IEC 62439-2 MRP bridge and userspace support
Set up bridge first:

    root@infix:~# ip link set dev eth0 up
    root@infix:~# ip link set dev eth1 up
    root@infix:~# ip link set dev eth2 up
    root@infix:~# ip link set dev eth3 up
    root@infix:~# ip link add name br0 type bridge
    root@infix:~# ip link set dev eth0 master br0
    root@infix:~# ip link set dev eth1 master br0
    root@infix:~# ip link set dev eth2 master br0
    root@infix:~# ip link set dev eth3 master br0

Start MRP server and add a configuration:

    root@infix:~# mrp_server &
    root@infix:~# mrp addmrp bridge br0 ring_nr 1 pport eth0 sport eth1 ring_role mrm
    root@infix:~# mrp addmrp bridge br0 ring_nr 2 pport eth2 sport eth3 ring_role mrm
    root@infix:~# mrp getmrp
    bridge: br0 ring_nr: 1 pport: eth0 sport: eth1 ring_role: MRM ring_state: CHK_RO
    bridge: br0 ring_nr: 2 pport: eth2 sport: eth3 ring_role: MRM ring_state: CHK_RC

Once all rings are set up:

    root@infix:~# ip link set dev br0 up

For more information, see:

 - https://github.com/microchip-ung/mrp
 - https://lwn.net/Articles/809089/

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 17:08:59 +01:00
Joachim Wiberg 8fe0ac2901 Follow-up to 0332cfe: fix aarch64 toolchain regression
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 17:08:59 +01:00
Tobias Waldekranz 4948cfebff aarch64/sparx5: Add support for PCB135 (eMMC) board 2022-11-18 16:24:32 +01:00
Joachim WibergandTobias Waldekranz 15572e9ec6 aarch64: enable bash, en_CA locale, tzdata, and tmux
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 12:05:51 +01:00
Joachim WibergandTobias Waldekranz e641ca947e aarch64: replace package override with local.mk rule in external.mk
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 12:05:51 +01:00
Joachim WibergandTobias Waldekranz 0332cfe483 configs: bump kernel to last 5.19
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 12:05:51 +01:00
Joachim WibergandTobias Waldekranz 0d31903736 amd64: enable common rootfs overlay import Buildroot linux_defconfig
The Buildroot linux_defconfig doesn't have CONFIG_OVERLAY_FS, which we
need for our shared rootfs overlay.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 12:05:51 +01:00
Joachim WibergandTobias Waldekranz 92dde2ea20 amd64: enable bash, en_CA locale, tzdata, and tmux
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 12:05:51 +01:00
Joachim WibergandTobias Waldekranz d322a7153c configs: sync aarch64 and amd64 defconfigs, same kernel + packages
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 12:05:51 +01:00
Joachim WibergandTobias Waldekranz 9e3a9e12d1 amd64: update defconfig and change from uclibc to glibc
Also, like the other defconfigs, ensure we have gdb-server on target.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-11-18 12:05:51 +01:00
Tobias Waldekranz aba3d1c5ce aarch64: Add post-build script to defconfig 2022-11-17 20:24:53 +01:00
Tobias Waldekranz 5ec3817bf3 aarch64/sparx5: Add defconfig to build U-Boot for devboard 2022-11-17 16:05:20 +01:00
Tobias Waldekranz c4e6a24a47 rootfs: Add common overlay
Start out with some convenience macros and a proper PS1.
2022-10-06 10:46:02 +02:00
Tobias Waldekranz ef8f975b58 aarch64: Add mg and iproute2 to defconfig 2022-10-06 10:41:51 +02:00
Tobias Waldekranz 8b4c2615b2 aarch64: Initial support
Start with a basic config for the CN9130-CRB board.
2022-09-27 16:02:20 +02:00
Tobias Waldekranz 9f31622e77 Add defconfig to build U-Boot for CN9130 CRB
NOTE: We globally disable stack protection, as the ATF specific
setting for disabling it does not seem to be respected by all rules in
the repo.
2022-09-27 13:26:23 +02:00
Joachim Wiberg 22de57e0dc configs: enable Buildroot host env. setup for SDK relocation
Note: update-defconfig moved sysklogd config and dropped custom headers.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-06-13 05:42:08 +02:00
Joachim Wiberg 38b5c16dc1 board/common: generate /etc/os-release in new post-build.sh
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-18 08:33:23 +02:00
Joachim Wiberg 976c45b2b1 configs/amd64: add e2fsprogs for fsck.auto
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-17 08:49:13 +02:00
Joachim Wiberg 123937ea5f configs/amd64: enable sysklogd as system logger
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-17 08:45:50 +02:00
Joachim Wiberg 48195a1894 configs/amd64: enable finit by default
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-17 08:44:44 +02:00
Joachim Wiberg 1b492c905a configs: add custom BusyBox defconfig for amd64_defconfig
- Disable default init
 - Disable syslogd/klogd

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-17 08:41:11 +02:00
Joachim Wiberg a441f9a988 Create basic BR2_EXTERNAL, with a twist
Initial defconfig is based on Buildroot qemu_x86_64_defconfig, with a
Bootlin pre-built toolchain and a very basic qemu.sh script, generated
by a local post-image.sh, for `make run`.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-09 19:52:45 +02:00