Commit Graph
2014 Commits
Author SHA1 Message Date
Joachim Wiberg 69e3e4672b Minor issues observed when preparing the first demo
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-27 19:24:02 +01:00
Joachim Wiberg c84af105ec board/common: 192 MiB RAM is not longer enough, increase to 256 MiB
Regrettably, the latest additions of functionality to Infix have also
incresed the size of the ramdisk.  We expect it to go down slightly
before v1.0, but considering we'll add Frr before then it's better to
be realistic of our needs when run in GNS3.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-26 17:59:59 +01:00
Joachim Wiberg 4cc1a14a87 configs: fix .gns3a file generation, missing rw.ext4
Sync amd64 build with genimage support from aarch64.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-26 15:58:04 +01:00
Joachim Wiberg 193a51af86 .github: always update latest tag on builds
The previous fix, setting 'rm: false' to prevent the parallel builds
from replacing each other, caused the latest tag to not be updated.
Very confusing, not just to end-users, but also for devs.

This patch changes the workflow to use a separate release step that
runs in sequence, waiting for the build to finish, before it moves
the latest tag.

The trick to solving this is to use upload/download artifact.  It is the
recommended way of sharing files between independent jobs in a workflow.
Notice the lack of 'name:' in both and 'path:' in the latter, it means
"don't care" just upload and then download everything to the artifact/
directory.  Making the job of the releaser action quite simple.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-26 08:22:05 +01:00
Joachim Wiberg cba6926918 TODO: wizard idea, use pdmenu for initial setup
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 21:22:49 +01:00
Joachim Wiberg 2d7ca5ac88 board/common: drop bridge.template, same text now in 'help net'
Will also be part of the upcoming setup-bridge wizard built on pdmenu.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 21:20:45 +01:00
Joachim Wiberg 91b40a1385 Fix factory default, untagged access ports
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 21:16:38 +01:00
Joachim Wiberg 37ab226c9e Adjust ingress, we've moved to ifupdown-ng
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 21:00:00 +01:00
Joachim Wiberg ee926b52a2 Update 'help' with info on most, pwgen, fping, socat, etc.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:57:54 +01:00
Joachim Wiberg 2872227ec1 configs: add ttyd to all builds for sharing terminal over web
Experimental, may be reverted later after evaluation.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:50:27 +01:00
Joachim Wiberg b3c08d3503 configs: add irqbalance and the full kmod tools, for evaluation
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:49:19 +01:00
Joachim Wiberg 4aec9bf8cb configs: add pdmenu, neofetch, and pwgen to all builds
- pdmenu for the made-easy management tool for Infix
 - neofetch is just for demo purposes, we can add KernelKit logo
 - pwgen is for basic help, like netcalc

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:47:11 +01:00
Joachim Wiberg 05d86832f0 configs: enable fping and netcat for all builds
- fping is better for checking multiple hosts
 - OpenBSD netcat has more features and is generally better for multiple
   network testing scenarios

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:44:45 +01:00
Joachim Wiberg 45a03f17f8 configs: enable stress-ng, for stressing SoC, kernel, etc.
For board bringup, burn in testing, compliance testing, and general
troubleshooting.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:42:58 +01:00
Joachim Wiberg e7fad6fc7f We have terminfo for more terminals, let's default to TERM=linux
This gives us much better rendering of help system and other
console mode tools.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:41:40 +01:00
Joachim Wiberg 683e16cba2 configs: enable text-mode browser lynx
For debugging and external viewing of, e.g., man pages.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:40:18 +01:00
Joachim Wiberg df1cf36437 Change help viewer to 'most', more helpful to newbies
- Default to start pager (most), fall back to less/more/cat
 - Drop : from sub-headings
 - Repeat 'See Also' section
 - Relocate network section's Interesting Files to end
 - Add dhcpcd.conf to list of interesting files

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 20:36:55 +01:00
Joachim Wiberg 08cd175cfc package/tetris: new package
Small easter egg for presentations, demos, etc.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 19:57:32 +01:00
Joachim Wiberg 028298714a configs: add conntrack tools to default build
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 19:02:40 +01:00
Joachim Wiberg 579d0b5789 configs: add universal nework logging daemon (netfilter logging)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 19:01:52 +01:00
Joachim Wiberg fdd94a5943 configs: add nftables, with iptables compat, to default build
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 19:00:05 +01:00
Joachim Wiberg 36ccea2ab0 configs: enable a few more network debugging tools
- traceroute + mtr
 - nmap et al

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:52:06 +01:00
Joachim Wiberg 04ad1b90e3 Minor update, mention GNS3 support, initial password, and 'help'
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:41:13 +01:00
Joachim Wiberg 3e4891bcaf board/common: update gns3a template, better description and usage
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:41:13 +01:00
Joachim Wiberg e421e938ff board/common: ensure dhcpcd backgrounds immediately for quicker boot
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:41:13 +01:00
Joachim Wiberg 96c8f838e3 Update online help slightly
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:41:13 +01:00
Joachim Wiberg 2730c87772 configs: udev + dbus + avahi
This patch drops our use of mdnsd and mdev in regular Infix builds, yet
keeping them in the config and repo for smaller builds, e.g. endpoints.

Also, enable dbus to increase level of integration between compoents.
The dbus-test-tool is included for debugging connections.

Since it's about the tenth time I've been missing strace on target, it
too is added in this commit.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:41:13 +01:00
Joachim Wiberg f5a95b3a91 package/finit: bump to latest snapshot (pre -rc1)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:41:13 +01:00
Joachim Wiberg 1fd929a68e buildroot: bump to latest master for upcoming 2023 LTS
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:41:13 +01:00
Joachim Wiberg 1ee3ab604d package/skeleton-init-finit: enable Avahi if selected in Buildroot
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 17:41:13 +01:00
Joachim Wiberg d6e578e060 package/ifupdown-ng: change to KernelKit integration branch
- Disable IPv6 on bridge links when adding to a bridge

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-25 12:41:14 +01:00
Joachim Wiberg 7a9af5d244 package/skeleton-init-finit: let /var/lock be a symlink to /run/lock
The whole of /var may be read-only, while /run is a newstyle ramdisk.
The /run/lock directory is created by the Finit bootmisc.so plugin at
boot.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-24 14:45:52 +01:00
Joachim Wiberg 51f24b7765 board/common: initial /etc/mdev.conf from mdev-like-a-boss
- Support modprobe for hotplugged devices
 - Allow writable /dev/{null,zero,...} by all users
 - Correct TTY and console permissions
 - Adapt groups to Buildroot standard (Debian)

https://github.com/slashbeast/mdev-like-a-boss

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-24 08:06:07 +01:00
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 9fd0015873 package/ifupdown-ng: new package
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-19 16:13:15 +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 2a89445570 board/common: default to show group 'iface' in show iface command
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-16 19:15:40 +01:00
Joachim Wiberg 59a2abb203 board/common: include a default (empty) rc.local as example
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-16 19:15:40 +01:00
Joachim Wiberg 9cda32b4f5 board/common: bridge template for ifupdown2
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-16 19:15:40 +01:00
Joachim Wiberg e514cf419d board/common: use swup to ensure port and iface groups exist
Used by the 'show' script for grouping and filtering Linux interfaces.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-16 19:15:40 +01:00
Joachim Wiberg 3283090401 .github: always replace artifacts in the latest release
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>
2023-01-12 15:21:56 +01:00
Joachim Wiberg 3160162f9c .github: debug workflow, try *.tar.gz instead of *.tgz
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-11 22:43:59 +01:00
Joachim Wiberg ebc776bbfc .github: add workflow to build and upload tarballs to latest tag
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-11 18:35:32 +01:00
Joachim Wiberg b05f51f673 Guidelines for how to contribute to the project
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-11 18:07:12 +01:00
Joachim Wiberg d625a4915d Import a general CoC for project
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-11 17:58:35 +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 ec177085d9 Reminders for later
@wkz look here, something for your ~/.emacs:

(use-package magit-org-todos
  :after magit
  :config
  (magit-org-todos-autoinsert)
  (setq magit-org-todos-filename "TODO.org"))

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-03 20:41:15 +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 ccba72b083 Add factory default, all switch ports in group VLAN 1 on br0
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>
2023-01-03 18:25:18 +01:00
Joachim Wiberg ec3c6e245a show: drop auto-port classification
This should now be handled by the swup script at bootstrap instead.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-03 18:14:43 +01:00