6c63e02ef6
update dropbear patch for 26.05
2026-06-04 22:03:24 +01:00
c212824209
Merge remote-tracking branch 'pcc/s6'
2026-05-27 13:14:33 +01:00
f6978f9770
Merge remote-tracking branch 'pcc/mitig'
2026-05-27 13:10:19 +01:00
f85d4a66ca
Merge remote-tracking branch 'pcc/hrt'
2026-05-27 13:07:47 +01:00
Peter Collingbourne
0cb8383b90
Adjust kernel exploit mitigation settings on arm64
...
CONFIG_RANDOMIZE_BASE enables KASLR. It doesn't increase the size of the
kernel image for OpenWrt One (technically it increases .text size by 256
bytes, but that was cancelled out by alignment padding). Set this to y on
arm64. The other architectures are not modified (arm doesn't support it,
and mips only supports it for some targets).
CONFIG_ARM64_PTR_AUTH is enabled by default by the kernel and enables
pointer authentication instructions at entry and exit of most kernel
functions. However, none of our targets support pointer authentication,
so these instructions are just taking up space for no purpose. Set this
one to n, which reduces OpenWrt One kernel image size by 24KB.
2026-05-24 03:56:29 -07:00
Peter Collingbourne
01ded6eb25
Patch s6-linux-init to fix running from non-root filesystem
...
With #26 the s6 binaries will run from a non-root filesystem. This
exposed a bug in s6-linux-init which is now fixed upstream. Apply the fix.
2026-05-24 03:54:50 -07:00
Peter Collingbourne
3ed4e32525
Enable CONFIG_HIGH_RES_TIMERS in the default kernel config
...
At least on OpenWrt One, the kernel default of
CONFIG_HIGH_RES_TIMERS=n causes slow SPI NAND access speeds. See:
https://lore.kernel.org/all/CAPQLkRit9bRH2gnSpvt60evu31T=1YNFdTFH2emS6RSsY=eDJQ@mail.gmail.com/
Since this doesn't seem to be an inherently device-specific issue,
and leaving it disabled may cause other performance problems that are
difficult to debug, enable it in the default config.
2026-05-23 19:21:28 -07:00
430ed12902
think
2026-05-11 12:23:32 +01:00
8e36690ae2
Merge remote-tracking branch 'pcc/upg'
2026-05-11 12:19:17 +01:00
6a390fa716
add luad (unused yet)
2026-05-11 12:19:09 +01:00
Peter Collingbourne
b2a7ae4bc4
openwrt: v25.12.1 -> v25.12.3
2026-05-08 02:40:44 -07:00
7e5d1ccf67
fix tests thst need overlay.nix
2026-05-05 20:51:40 +01:00
93125bb09b
fix fennel errors in test
2026-05-05 20:50:53 +01:00
43fd9112af
Merge remote-tracking branch 'pcc/fix1'
2026-05-05 14:25:43 +01:00
482b60eb91
Merge remote-tracking branch 'pcc/fix5'
2026-05-05 14:18:20 +01:00
875a4ae512
Merge remote-tracking branch 'pcc/fix7'
2026-05-05 14:17:32 +01:00
cf490e8c26
Merge remote-tracking branch 'pcc/fix9'
2026-05-05 14:15:33 +01:00
Peter Collingbourne
b061e6903b
anoia: Fix crash if a watched output directory does not exist
2026-05-03 20:18:29 -07:00
ce56c9e1f4
Merge remote-tracking branch 'pcc/fix10'
2026-05-03 13:35:23 +01:00
639e924ce2
Merge remote-tracking branch 'pcc/fix11'
2026-05-03 13:31:59 +01:00
be882c62a6
Merge remote-tracking branch 'pcc/fix3'
2026-05-03 13:30:59 +01:00
ab93e0075c
Merge remote-tracking branch 'pcc/fix2'
2026-05-03 13:30:27 +01:00
aead19df04
Merge remote-tracking branch 'pcc/fix12'
2026-05-03 13:27:02 +01:00
65847bec4b
Merge remote-tracking branch 'pcc/fix13'
2026-05-03 13:26:27 +01:00
f2ec49f9f2
Merge remote-tracking branch 'pcc/fix14'
2026-05-03 13:26:09 +01:00
Peter Collingbourne
17d8576cc4
Make Liminix usable as an input to a flake
...
This change allows Liminix to be used as a non-flake input to a flake
by making <nixpkgs> into a default argument.
An example flake that makes use of this is here:
https://github.com/pcc/liminix-flake-demo
2026-05-03 04:02:31 -07:00
Peter Collingbourne
15a886cf9a
ifwait: Fix flapping on bridged interfaces
...
We use ifwait to monitor a bridged interface so we can add or remove it
to the bridge by bringing the associated service up or down. However,
bridge related netlink events can cause ifwait to incorrectly consider
the interface to have gone down. For example, nlmsg_type=RTM_DELLINK
with ifi_family=AF_BRIDGE, which is triggered by removing an interface
from a bridge, and does not indicate that the interface itself was
removed. Because a later RTM_NEWLINK will indicate that the link is still
up, ifwait will bring the service down and then up again, triggering
more netlink messages that keep ifwait in an infinite loop.
Fix it by checking specifically for RTM_NEWLINK and RTM_DELLINK messages
with ifi_family=AF_UNSPEC, which indicates an event related to the
interface itself.
2026-05-03 04:02:31 -07:00
Peter Collingbourne
86e55ff3cf
dnsmasq: Pass --bind-interfaces
...
This allows users to run another DNS server, such as unbound, and have
dnsmasq use it as the upstream.
2026-05-03 04:02:31 -07:00
Peter Collingbourne
33f2a93489
ifwait: React to interface up by bringing up the service tree
...
This allows a system to be configured to dynamically bring up services
associated with an interface. For example, attaching a USB ethernet
adapter could trigger starting a DHCP client and an additional default
route for failover to an additional upstream.
2026-05-03 04:02:31 -07:00
Peter Collingbourne
3dee66b3d5
openwrt: Add a patch to fix the MT7915 build in 25.12
...
These changes are part of the patch that went upstream [1], but for some
reason they're missing from OpenWrt's backport [2].
[1] 96326447d4
[2] a0c7d5ecff/target/linux/generic/backport-6.12/731-v6.18-net-mediatek-wed-Introduce-MT7992-WED-support-to-MT7.patch
2026-05-03 04:02:31 -07:00
Peter Collingbourne
83e7c6f2dc
Move extraRules to the end of the recursiveUpdate
...
extraRules is the user-specified ruleset so this allows the
user configuration to override the builtin rules.
2026-05-03 04:02:31 -07:00
Peter Collingbourne
e994e25d6e
Avoid dependency on specific PCI addresses in qemu config
...
These addresses will vary depending on the target architecture,
so let's name them via /bus instead.
2026-05-03 04:02:31 -07:00
Peter Collingbourne
b832496802
openwrt-one: Upgrade to kernel 6.12
...
The config changes here are a combination of:
- Converting the output of (in the OpenWrt repo):
```
git diff v24.10.6:./target/linux/mediatek/filogic/config-6.6 v25.12.2:./target/linux/mediatek/filogic/config-6.12
```
into Nix.
- Removing some overspecification of the kernel configuration, not
only for the 6.12 upgrade but also to support some changes that I made
to my personal configuration.
2026-05-03 04:02:31 -07:00
Peter Collingbourne
0d5922c811
kmodloader: Filter out builtin lines from modprobe output
...
modprobe will print "builtin" lines for modules that are statically
linked into the kernel, which confuses this shell pipeline. Fix it by
adding a grep for "^insmod".
2026-05-03 04:02:31 -07:00
Peter Collingbourne
5a224c8980
openwrt-one: Move the load address again
...
U-Boot declares a reserved-memory region at address 0x4fc00000 which makes
0x48000000 problematic for very large images. Move it again to 0x50000000.
2026-05-03 04:02:31 -07:00
Peter Collingbourne
57f6656d87
tufted: Roll over the tid on overflow
...
The specific rollover value is unspecified, but we assume that the other
side is U-Boot which rolls over to 0.
bb0f3eebb3/net/tftp.c (L275)
This allows for very large images to be transferred, which is sometimes
necessary for running debugging or profiling tools designed for normal
Linux distributions such as perf.
2026-05-03 04:02:31 -07:00
d0376d4101
add configuration for gateway test
...
it can't share the rotuer example as rotuer's secrets aren't
checked into git
2026-04-29 13:23:18 +01:00
5f2abc0d2b
test that rotuer example builds
...
there is no test in CI that builds the firewall or any of those
modules, so this is temporary-ish to increase coverage
2026-04-26 18:10:56 +01:00
Peter Collingbourne
c03d50235a
Move openwrt-one TFTP load address after reserved-memory regions
...
I was seeing random filesystem corruption when booting larger images
over TFTP, and it turned out to be caused by the image being loaded
on top of some reserved-memory regions (see link below).
897d54018c/arch/arm64/boot/dts/mediatek/mt7981b.dtsi (L72)
2026-04-26 12:57:53 +01:00
f1277b0564
make elfutils build
2026-04-26 12:33:32 +01:00
Peter Collingbourne
16fb3f5343
Remove iptables modules
...
With Linux 6.12, some of the iptables modules are no longer directly
selectable, leading to a failure to build the module loader. We don't
need them anyway as we use nftables, so remove them.
2026-04-26 11:58:17 +01:00
9c62e8333d
think
2026-04-26 11:57:06 +01:00
dc62a8b75f
disaable util-linux lastlog support as it depends on PAM
2026-03-30 14:03:02 +01:00
7f6b05ef96
switch from mainline ag71xx driver to openwrt version
2026-03-30 13:35:19 +01:00
4299293cc5
backport OF "compatible" changes for ath79
2026-03-28 21:17:55 +00:00
b6b420bc5b
gl-ar750 upgrade ath10k firmware
2026-03-28 21:17:08 +00:00
5af28615f1
gl-ar750: update to newer kernel + openwrt
...
this device is not (yet?) in mainline, but openwrt 25.12 has
the right patches to make it work with linux 6.12
2026-03-28 21:15:51 +00:00
e8a60d2860
bordervm switch usb passthru from ehci to xhci
...
this was to fix a bug that turned out to be something else,
but the qemu docs say it's better anyway
2026-03-22 15:23:50 +00:00
82164d3968
think
2026-03-22 15:23:19 +00:00
0b179a6e04
force create ca-certificate symlink
2026-03-22 15:22:56 +00:00
29d51396f5
s6-rc-up-tree doesn't need runtime fennel
2026-03-18 21:09:55 +00:00
5f92529f4f
odhcp6c: upgrade to newer (but not new) upstream
...
* we need new enough for cmake 3
* but not so new it depends on libubox
This is a "get it working again" patch, not a long-term solution.
Either we should add libubox to liminix or we should find another
dhcp6 client
2026-03-18 21:07:49 +00:00
a1d7c49e22
luaossl: remove .orig file after patching
...
*something* tries to patch src/openssl.c again in the install phase
(I haven't figured out what) and dies because it can't make
src/openssl.c.orig if it exists already.
2026-03-18 21:06:19 +00:00
7f23c5dc0f
update dropbear, simplify authorized_keys patch
2026-03-11 18:22:39 +00:00
c364095c44
build our own fennel
...
final.lua53Packages.fennel seems somehow to drag in glibc
2026-03-11 07:45:00 +00:00
ef07dcc10a
bump ubifs max leb count
2026-03-11 07:38:00 +00:00
4b40e51a1d
run-liminix-vm tell qemu not to reboot when guest terminates
2026-03-11 07:30:00 +00:00
9fef673ca0
remove ci.nix "all" attribute
...
use ci-all.nix instead if you want to do all the jobs
2026-03-09 12:01:19 +00:00
7b1324208b
note nixpkgs version reqt
2026-03-09 11:42:38 +00:00
cab0d7a805
update ppp package
2026-03-09 11:12:40 +00:00
41375681dd
hash for firmwre-utils
2026-03-09 11:12:27 +00:00
dd3629ae8e
update firmware-utils for compatibility with newer cmake
2026-03-08 01:08:50 +00:00
3026eaf879
copy airoha firmware recursively
2026-03-08 00:28:45 +00:00
48022da733
nixpkgs fennel moved into luaPackages
2026-03-07 23:03:43 +00:00
9596a7eccf
chrony doesn't use texinfo any loger
2026-03-07 22:28:33 +00:00
f15ffaeac2
kludge: force gcc 13 for kernel builds
...
we can get rid of this when we upgrade devices from kernel 5.x to 6.x
(which clearly we also need to do)
2026-03-07 22:27:12 +00:00
9f3c8f7cbd
treewide: nixfmt and deadnix
2025-11-11 21:49:45 +00:00
9784e90d1f
bridge: remove obsolete workaround
...
we no longer need to remove ipv6 routes from member interfaces when
adding to the bridge, because there will no longer be any ipv6 routes
on the member interfaces
2025-11-11 21:49:01 +00:00
18193bf765
add dhcp6 client to wap profile
2025-11-11 21:49:01 +00:00
9f21c3036f
dnsmasq: set ipv6 autoconfig in "router" mode
...
dnsmasq is configured to send RA, so the interface it's running on
should not also be accepting RA.
2025-11-11 21:49:01 +00:00
40194d5351
enable ipv6 autoconfig when dhcp6c is specified
...
DHCP6 and autoconfig work in tandem not in opposition! dhcp6 does not
provide a default gateway: it depends on router solicitation/router
adverts for that
Tl;dr the network/site admin will ensure that router adverts are being
sent periodically. The adverts will have either Autonomous or Managed
bits set and that is what tells the host to use SLAAC or to use DHCP6
2025-11-11 21:49:01 +00:00
ff7aaec874
disable ipv6 autoconfig when bringing links up
2025-11-11 21:44:38 +00:00
9bb2d4d4fb
remove commented code
2025-11-11 21:44:38 +00:00
53ec331e29
attempt disabling ipv6 autoconfiguration at boot
...
This dosn't work as well as you might think if you didn't know that
the config semantics are weird. By setting 'default' we disable
autoconfig on interfaces that do not yet exist, but setting 'all' here
has no effect.
2025-11-11 21:44:38 +00:00
d538e8f6cf
add options for setting sysctl parameters at boot time
2025-11-11 21:44:37 +00:00
8646677ead
think
2025-11-11 21:44:37 +00:00
bedc1009f8
whitespace
2025-11-11 21:44:37 +00:00
4abdbeb1ea
fix reference to dhcp client in tutorial
2025-11-11 21:44:37 +00:00
e5c036f100
fix bad relative path
2025-11-11 21:44:37 +00:00
e49f8055f3
add etc/hosts to base module
...
this is hardcoded to localhost only. it would be better to have
a config option to allow defining static hosts
2025-11-11 21:44:37 +00:00
7261ef8b21
DHCPNAK means we can't use the requested address
...
so probably we should flush it
2025-11-11 21:44:37 +00:00
489d1843b5
no action needed for dhcp renewal message
...
... according to my reading, a renewal is always for the same
address we have already
2025-11-11 21:44:37 +00:00
bf7d02ae85
note dhcp client rename
2025-11-11 21:44:37 +00:00
d9f91e4820
update examples for dhcp4c rename
2025-11-11 21:44:37 +00:00
46dcf71e16
fix swconfig build
...
missing ctype.h
2025-11-04 18:53:38 +00:00
6e3bfa9029
think
2025-11-04 00:28:26 +00:00
78e4d30120
dhcp4 client: start controlled service when lease acquired
...
it is problematic to have dhcp signal readiness when a lease is
acquired, because it holds the s6 service lock while it's waiting
and that can lead to deadlock. Instead, start the dhcp client
"daemon" process and monitor its outputs, bringing up and down
a controlled "dhcp lease acquired" service that other services
(e.g. ntp, or resolvconf, or ...) can declare as a dependency
2025-11-04 00:24:39 +00:00
bb2c36a0b4
prefer modules/dhcp4c over system.services.network.dhcp.client
2025-11-03 23:51:52 +00:00
c5e0567511
bridge: flush ipv6 routes via member interfaces
...
Adding an interface as a bridge member does not (by itself) remove the
routes which go via that interface, whioch makes them basically into
null routes. This isn't a problem for IPv4 because there were no
addresses anyway, but interfaces can acquire IPv6 addresses via
autodiscovery before they get added to the bridde
Possibly it would be better to disable autodiscovery on these
interfaces. More thought needed.
2025-11-03 22:01:35 +00:00
a3c4ebbe29
dhcpc touch outputs/state
...
this is important for service subscribers to see the change event
2025-11-03 19:12:58 +00:00
5da61c6d31
bundles depend on controlled services if any of their contents do
2025-11-03 19:12:07 +00:00
d3b99aba96
remove unneeded comma
2025-11-01 11:35:55 +00:00
671b795fbb
think
2025-11-01 11:35:38 +00:00
574c95640b
remove dhcpc readiness notification
...
because there's an ugly deadlock. s6-rc won't start anything else
while waiting for int.link.dhcpc to announce it's ready, and the
-running service needs to call s6-rc to launch the scripts that add
members to the bridge. dhcpc won't work until the bridge has a member
2025-10-31 21:46:21 +00:00
19360eca57
remove ifwait service name clash opportunity
2025-10-31 21:45:01 +00:00
9699f0eaa4
think
2025-10-31 21:44:23 +00:00
f2ba9c2f61
use correct openssl in cqueues
2025-10-29 21:19:11 +00:00
5c4004e1b8
add readiness support for ntp
2025-10-29 21:16:49 +00:00
32f0be84be
think
2025-10-28 23:40:44 +00:00
5d810dbbbd
README should probably not stil claim we're pre-1.0
2025-10-28 23:39:57 +00:00
ead6cb918a
log backfill: synthesize timestamps when in 1970s
...
if the log message timestamp is in 1970, treat it as if
the epoch were the system boot time
2025-10-28 23:29:20 +00:00
f4b87430ea
tai64: write timestamp
2025-10-28 23:28:33 +00:00
c3d6ad7ad4
unix time to TAI conversion
2025-10-28 21:05:55 +00:00
8049714cdb
rename anoia.tai64.to-utc as to-unix
...
it's a far more accurate name for somethingthat return non-leap
seconds since 1-1-1970
2025-10-28 20:17:35 +00:00
8106389b74
add log backfill services
2025-10-27 21:19:43 +00:00
0f90f3f46d
lualinux.open needs three args
2025-10-27 21:18:52 +00:00
481715f906
remove debug output
2025-10-27 21:16:49 +00:00
c29416a287
move log fifo away from /run/log which doesn't exist yet
2025-10-27 21:16:17 +00:00
9e042bd385
ppp: ignore error return from writing readiness notification
...
ip-up and ipv6-up both attempt to write to fd 10, but only the
first writer will succeed because the peer closes the pipe as soon
as it gets anything. I can't see a way to make this race-proof, so
... here we are
2025-10-27 21:12:06 +00:00
26e1608fa7
align log shipping start/stop messages between producer and consumer
...
also there's no need to make it configurable, so get rid of that
2025-10-26 20:41:19 +00:00
ad9bba4f93
logtap: add WIP backfill command
2025-10-26 20:34:52 +00:00
6f559e3700
add fennelc, a script to do what writeFennel does
...
it's a bit simpler because no need to do quite as much string surgery
to compute package.{c,}path
also it can be used in Makefiles
2025-10-26 20:32:52 +00:00
6478c56ed1
log.shipping.command is now a command not a string
2025-10-25 17:34:50 +01:00
186543d2de
remove option for log shipping socket
...
* it's a fifo now not a socket
* I think it's an internal detail, not public interface
* backfill will need a second fifo anyway
2025-10-24 23:53:46 +01:00
c8b3188bd4
remove unneeded module
2025-10-24 23:46:13 +01:00
60ff3ab688
bordervm espose 443 for logs not 9428
...
this is because nginx is proxying them.
probably we should pick a non-default port all the same, but need to
investigate what's convention here
2025-10-20 23:48:21 +01:00
bfb4799075
certifix-client provice ca-certificate as an output
2025-10-20 23:47:21 +01:00
1b14161a0e
modern openssl needs rsa key >= 2048
...
per
https://docs.openssl.org/3.3/man3/SSL_CTX_set_security_level/#default-callback-behaviour
the default "security level" in openssl 3.3 is 2
2025-10-20 23:45:53 +01:00
72acb2e711
Merge remote-tracking branch 'newedge/fix-gl-ar750'
2025-10-19 14:22:49 +01:00
87c45dec67
switch certifix-client to luahttp
2025-10-19 14:11:51 +01:00
53244beab8
add luaossl to lua overlay
...
this means it can be seen by other lua packages (needed for
e.g. luahttp)
2025-10-19 14:11:51 +01:00
3c0f55cd9e
remove outdated cmake patch
2025-10-19 14:11:51 +01:00
d1cd13d5dc
CSR version should be 1 not 3
2025-10-19 14:11:51 +01:00
88dcfc8a05
think
2025-10-19 14:11:51 +01:00
33fdf0d86d
add missing prototype to fetch-freebsd lua glue to make it build
2025-10-19 14:10:13 +01:00
5aa18101b7
shorten bordervm dhcp allocation
...
we use .8 and .10 for static addresses, so start the dhcp range at .12
2025-10-19 14:10:13 +01:00
540c106530
bordervm expose certifix from loachost
2025-10-19 14:10:13 +01:00
4f4aecc8e8
rename openssl => opensslNoThreads, make soft-float if arch 24kc
2025-10-19 14:09:45 +01:00
kurogeek
3f1f7c08d4
Missing repo https://github.com/dfskoll/rp-pppoe is fixed
2025-10-14 14:17:11 +07:00
kurogeek
9621ac51e9
Missing repo https://github.com/kvalo/ath10k-firmware is fixed
2025-10-14 10:14:51 +07:00
cd44343fb7
upgrade luaossl
2025-10-13 19:42:18 +01:00
8b1e871b8a
bordervm forward 9428 (victorialogs) from eth1 to vm hypervisor
2025-10-10 23:42:56 +01:00
bd430f1abd
build luaossl without using luarocks
...
luarocks wants to build cmake, python, curl etc mips packages and I'm
not smart enough to figure out why, but the python doesn't work
2025-10-10 23:39:20 +01:00
77c6552e18
victorialogsend: cope with blank mesage field
2025-10-10 22:43:50 +01:00
a6442c872f
change log shipper interface
...
* it's now a command not a service
* shipper is expected to open() the fifo passed as $LOG_FIFO instead of
getting logs on stdin
logtap determines that remote logs are getting sent when there's a
reader on the fifo it's writing, but opening the fifo as stdin of
s6-tcpclient is too early as it hasn't even connected to the remote
log server at that time
2025-10-09 21:38:49 +01:00
b49beb2c86
make logtap notice sooner when the shipper dies
...
fifo(7) says
Under Linux, opening a FIFO for read and write will succeed both
in blocking and nonblocking mode. POSIX leaves this behavior
undefined. This can be used to open a FIFO for writing while
there are no readers available.
When a process tries to write to a FIFO that is not opened for
read on the other side, the process is sent a SIGPIPE signal.
but ... that doesn't match what I saw, which was that it carried on
writing until the buffer filled and then it blocked or returned -1
(depending on O_NONBLOCK)
Switch to opening O_WRONLY | O_NONBLOCK and retrying periodically
if it fails
2025-10-09 21:16:54 +01:00
12704f1c4a
think
2025-10-08 20:12:34 +01:00
29fbb5461d
send log timestamp parse errors to victorialogs
2025-10-08 20:10:11 +01:00
70786712b3
make victorialogsend ucspi-compatible
2025-10-08 20:10:11 +01:00
be26df4e95
don't send 9 digits of nanosecond to victorialogs
...
It fails to parse. I havent investigated how many digits it will
parse, but let's try 3
2025-10-08 20:10:11 +01:00
71aed767f2
switch logtap to use fifo unstead of af_unix
2025-10-08 20:10:11 +01:00
af6e41db7a
logshippers: add victorialogsend script
...
it's only very lightly tested but it seems to work. the _stream
may be quite wrong, or perhaps that's a local admin decision anyway
2025-10-08 20:10:11 +01:00
947a1c1373
return utc as (values seconds nanos)
...
fractional seconds is just inviting too much fun with floating point
error
2025-10-08 20:10:11 +01:00
59eea64985
add tai64 module to anoia
2025-10-08 20:10:11 +01:00
a343e63231
rename logshipper -> logtap
...
- it matches the executable name
- it doesn't ship anything anyway, it's just plumbing
2025-10-08 20:10:11 +01:00
cacde953cb
don't ask chrony to drop privs, it needs libpcap
2025-10-08 20:10:11 +01:00
9f64eabeb4
rename incz package to logshippers
2025-10-08 20:10:11 +01:00
39fe428e24
bordervm: forward victorialogs connections to host
2025-10-08 20:10:11 +01:00
0147a048fa
bordervm: comment out tang forwarding
2025-10-05 15:00:19 +01:00
ce8a5c1cd3
think
2025-10-05 14:59:15 +01:00
4bdd30b58d
convert all the hardware docs to adoc
2025-09-18 21:58:26 +01:00
ebfaba45e6
Merge remote-tracking branch 'raboof-cdeberg/devel-docs'
2025-09-18 19:03:14 +01:00
Arnout Engelen
2dfe9732bd
docs: link to mailinglists section for devel@
...
To make it clearer that you first need to be subscribed,
and how to do that.
2025-09-18 14:13:13 +02:00
Arnout Engelen
a59e39c314
OpenWRT: additional installation/update docs
2025-09-17 18:33:10 +02:00
cb43857ecf
update mtdutils to fix musl compilation problems
2025-08-12 20:08:24 +01:00
7e6a59631a
firewall needs the secrets subscriber
2025-08-12 20:07:39 +01:00
71b3f3d6d7
chatgpt go 'way
2025-08-11 23:27:23 +01:00
3dde3fff0b
maybe this helps
2025-08-11 21:31:57 +01:00
6721b71340
does this make it build on hydra against nixpkgs unstable
...
problem: libadwaita fails to build on hydra with the error
Gdk-DEBUG: error: XDG_RUNTIME_DIR is invalid or not set in the
environment.
but it doesn't fail locally with nix-build so I can't easily see if
this is a fix
2025-08-11 19:43:24 +01:00
92643e03b3
min-copy-closure use rsync instead of rogue as demo package
...
this is to fix the CI job - because rsync builds and rogue presently doesn't
2025-04-15 12:58:29 +01:00
e55043a5a9
update uboot malta virtio support patch
...
compiler warnings are fatal, so add the header file that declares virtio_init
2025-04-15 12:57:28 +01:00
bad55a5f66
qemu needs libslirp for user networking
2025-04-15 12:56:37 +01:00
1977d3b8a1
fix chrony in 25.05
...
I'm currently too stupid to work out why it drags in go whenever I
enabale libpcap, because pkgs.libpcap works just fine without it
2025-04-14 23:09:33 +01:00
e1d8c5de61
accommodate newer dropbear in nixpkgs 25.05
2025-04-14 22:12:06 +01:00
6a89b5b4d4
qemu 9.2 won't start network devices without romfile option
2025-04-14 21:27:44 +01:00
d749538e9e
remove qemu vga adapter
...
it doesn't work with qemu 9.2 (coming soon) but we don't need it
anyway
2025-04-14 21:27:44 +01:00
f728b584a2
add "nobody" user needed by rp-pppoe
2025-04-14 21:27:44 +01:00
e04724d7fc
upgrade rp-pppoe
2025-04-14 21:27:44 +01:00
2721481ce1
fix qemu build in nixpksg unstable/25.05
2025-04-14 21:27:38 +01:00
fd9f5cb45f
disambiguate expected string
...
"{ lan }" appears only in output
"lan" appears also in the command line we send
2025-04-12 23:49:13 +01:00
b3bdb5a9c4
output-template add lua type() function
...
I hope you never need it, but (1) I did; (2) it's harmless
2025-04-12 23:40:23 +01:00
8e5f3e29a7
don't write service properties with null values
...
because serialisation causes them to become empty strings
which are not null
2025-04-12 23:39:13 +01:00
46769563b7
think
2025-04-12 22:24:54 +01:00
73f1a566c3
massage doc pathnames for publishing
2025-04-10 00:22:29 +01:00
a720f8f114
intro: subtitles, add irc links
2025-04-08 23:57:20 +01:00
f9f55ee6bc
placeholder doc for porting to new device
2025-04-08 23:51:12 +01:00
16168dc730
move stuff about implementing modules/services into Developer manual
2025-04-08 23:41:27 +01:00
b3f0c33347
add note about Hydra
2025-04-08 21:27:34 +01:00
2f092e126a
add appendices for modules/service/outputs generated doc
2025-04-08 21:25:54 +01:00
eb16a35ff3
convert "supported hardware" to an appendix
2025-04-08 21:24:31 +01:00
6a7aa0898e
add community and CoC to the manual
2025-04-08 13:27:57 +01:00
a792fab8ac
think
2025-04-07 23:58:36 +01:00
9910ecefc0
improve the Contributions section (IMO it's better)
2025-04-07 23:48:08 +01:00
98a377b551
mess with the outline
...
(config and admin now come under a single top-level section)
2025-04-07 23:40:42 +01:00
9f9a4a2dc7
remove unnecessary words
2025-04-07 23:40:09 +01:00
643e2ec376
add tiny bit of phram info
2025-04-07 23:39:40 +01:00
887fe16020
review installation docs
2025-04-07 23:33:10 +01:00
6b61ba3b52
move Contributions to the top of the Development section
...
and various minor edits
2025-04-07 21:40:42 +01:00
a0b36be5e4
randomly proofread small sections
2025-04-06 23:53:03 +01:00
9bc9a077e3
fix refs and raise heading levels in generated hardware doc
2025-04-06 23:46:24 +01:00
9f501018bf
include all the doc sections in index
2025-04-06 21:38:17 +01:00
de2757b798
extract ci doc derivation into its own file
2025-04-06 21:37:18 +01:00
de861a2ee0
convert rst to asciidoc
...
for i in *.rst ; do pandoc -f rst -t asciidoc -o `basename $i .rst`.adoc $i ;done
2025-04-06 18:16:53 +01:00
936eb1a7cd
setup to parse asciidoc
2025-04-06 18:10:35 +01:00
e4aad311a8
think
2025-04-02 21:09:13 +01:00
6674826990
think
2025-04-02 21:08:49 +01:00
97ff2f3009
think
2025-03-31 23:22:04 +01:00
210b41efc0
improve robustness of ppp readiness notification
...
there was a race where ip-up could write ifname and then
ip6-up could write its outputs and then test ifname and
signal ready before ip-up had written the rest of its outputs
2025-03-31 23:17:50 +01:00
53c6d506cf
dhcp6c subscribe to ppp ifindex
...
when the peer bounces ppp, s6 will restart the ppp process but not
restart the dependent services (because the service isn't considered
to have gone down)
so the dependent services need to notice when the outputs from ppp
have changed
2025-03-31 23:15:28 +01:00
01fe2159b4
ppp: write ifindex as output
...
because what happens if the service is restarted but the new ppp0 is
a different interface than the old one so that services which had
bound to it with the old name are now not getting new data
(I am not 100% that this actually happens but it seems like it would
be good to avoid it if it does)
2025-03-31 23:11:30 +01:00
d7d19b5ed0
dhcp6 client: fix service dir in address and prefix acquirers
...
the scripts now expect the actual service dir instead of the .outputs
subdir
2025-03-31 23:06:40 +01:00
ee683f2202
firewall: fix syntax of icmp v4 rule
2025-03-31 23:03:24 +01:00
d9723aeb87
secrets subscriber: make restart-all work
2025-03-31 23:01:48 +01:00
46ed8f0199
add bandwidth as a service option for ppp (l2tp, pppoe)
2025-03-27 20:23:26 +00:00
dd44fbaec1
rate limit for v4 icmp
2025-03-27 20:21:48 +00:00
89065be6cd
bandwidth is bits/second so divide by 8
2025-03-27 20:21:14 +00:00
420320e434
firewall: remove unused args/names/vars
2025-03-27 18:40:07 +00:00
9ecd2b4fb4
think
2025-03-25 23:55:00 +00:00
1a6160bcab
firewall: show how to ratelimit icmp6 to 5% of available bandwidth
...
it's a little klunky as yet, requires setting properties.bandwidth on
the interface service
2025-03-25 23:53:02 +00:00
b1bf13bb01
add svc:directory, mostly for use in debugging messages
2025-03-25 23:47:01 +00:00
c3f550698d
watch-outputs fix update logic
...
it was only working by accident, when it worked, which was by no
means all of the time
note that we unconditionally perform the action (restart or whatever)
once we've started and got the initial state of the outputs. That's
because we have no idea whether the outputs changed in the interval
between the controlled service initially starting and watch-outputs
starting, so updates in that interval could be lost
2025-03-25 23:44:21 +00:00
05991225de
anoia.svc allow open of a service that is not yet running
...
we change the inotify watcher so that it attempts to monitor
/run/service as well as /run/service/foo. If foo doesn't yet exist
then that call to addwatch fails, so we need to be looking at the
parent if we are to be told when foo gets created
2025-03-25 23:37:58 +00:00
7ce1c6bb7d
add realpath to lualinux
2025-03-24 22:39:59 +00:00
8440378a39
anoia: make dirname handle tralning / like posix
2025-03-24 22:37:24 +00:00
e5cfd41013
add nft_limit kmodule for rate limiting in firewall
2025-03-21 21:19:48 +00:00
0ae5689a40
support maps in firewallgen
2025-03-21 21:19:18 +00:00
45047dc023
squahs falls back
2025-03-21 21:09:05 +00:00
3673804b93
think
2025-03-21 21:08:17 +00:00
be03e9e8c8
service outputs falls back to properties (untested)
2025-03-18 18:38:04 +00:00
4e51977ae0
provide properties attr to services
...
properties are similar to outputs, but are different in that they are
fixed values (do not change) and are present even when the service is
down
if the attribute is present and an attrset, this will write the
equivalent recursive directory structure to $out/.properties/
2025-03-12 23:35:56 +00:00
2b0972ed73
svc.open accepts a /nix/store folder not an outputs folder
...
this mostly makes things simpler
2025-03-11 00:21:44 +00:00
f22237a3b3
doc: filter src attribute to not rebuild as much
2025-03-10 23:08:37 +00:00
9dc0f25587
min-copy-clocure test: ensure sshd up before starting
...
this test goes wrong intermittently in CI, see if this makes it more
reliable
2025-03-09 21:37:13 +00:00
9ab77a7d7e
remove unused function
2025-03-09 20:44:35 +00:00
c6918fec00
firewall: use extraText for zone set contents
...
* the lua necessary is quite wordy, but it's less of a hack than
post-processing the rules file with pseudo-sed to get rid of `elements
= { }` lines
* also switch from stop/starting the firewall service to using a
signal, so that we don't go briefly offline every time a new interface
appears
2025-03-09 20:42:02 +00:00
d4e46dbe28
secrets/subscriber don't depend on the services we're watching
...
this means a watched service can stop and start without killing
the subscriber, and that we can watch for services that don't
yet exist
2025-03-09 20:35:40 +00:00
d1f87a56e0
secrets/subscriber: use correct numbers for signals to s6-svc
2025-03-09 20:34:29 +00:00
8c39b47cae
output-template: allow splicing statements instead of expression
...
if the text inside the delimiters begins with ; (a semicolon) then
the rest of it is expected to be one or more Lua statements. It needs
to say `return "foo"` to interpolate anything, as there is no
implicit return of the value of the last statement
2025-03-05 22:38:48 +00:00
2c7a16d792
firewallgen: add extraText param to set
...
anything in here is added verbatim to the set definition
2025-03-05 22:36:35 +00:00
d6b06abb63
delet second copy of output-template
2025-03-02 21:34:02 +00:00
6b32aa569e
think
2025-03-02 21:21:45 +00:00
234d1bd87e
basic unit tests for output-template
2025-03-02 21:14:46 +00:00
c38f180fb7
output-template expose table module
2025-03-02 21:14:16 +00:00
9a8b22997c
output-template: pass the tests
2025-03-02 21:09:32 +00:00
c32d09bd83
output-template: run the tests
2025-03-02 21:09:11 +00:00
6649ebeccd
firewall: use watch-outputs to track changes in zone->interface map
...
includes a horrible hack to work around (claimed (by me)) deficiencies
in the nftables parser
2025-02-28 00:43:20 +00:00
929226ed9e
delete commented code
2025-02-27 20:55:30 +00:00
a98f026210
think
2025-02-27 20:54:44 +00:00
f4dc001b71
check firewall zones in pppoe test
2025-02-25 23:32:05 +00:00
024c018262
run the output-template test
2025-02-22 00:10:19 +00:00
e1293e3778
think
2025-02-21 23:22:39 +00:00
0c406058e9
remove acceotance of udp sport 5 on wan
...
this was added for replies to dns queries but isn't needed for
that purpose as connection tracking does that anyway
2025-02-12 21:54:01 +00:00
19d441333c
remove duplicate rule
2025-02-10 23:50:07 +00:00
a726c09ae4
improve explanaton of reverse path filtering rule
...
thanks RoS for the references :-)
2025-02-10 23:48:29 +00:00
7e2b0068e6
nixfmt-rfc-style
...
There is nothing in this commit except for the changes made by
nix-shell -p nixfmt-rfc-style --run "nixfmt ."
If this has mucked up your open branches then sorry about that. You
can probably nixfmt them to match before merging
2025-02-10 21:55:08 +00:00
13cc5a8992
Merge pull request 'support firewall zones: don't hardcode interface names in rules' ( #16 ) from firescape into main
...
Reviewed-on: dan/liminix#16
2025-02-10 21:23:15 +00:00
3f889c7119
default firewall zones in gateway profile
2025-02-10 21:21:08 +00:00
7f17125039
firewall: update zones with interface names as they appear
2025-02-10 21:21:08 +00:00
4bb081ffcf
export anoia.svc:fileno so it can be used with event loops
2025-02-10 21:21:08 +00:00
6587813577
WIP add zones to firewall module
...
- zones are an attrset of name -> [interface-service]
- the firewall will create empty "ifname" sets for each zone name
in each address family (ip, ip6)
- then watch the interface services, and add the "ifname" outputs
to the corresponding sets when they appear
This commit only adds the empty sets
2025-02-10 21:21:08 +00:00
1d780de0f1
add (very basic) set support in firewallgen
...
and add sets for lan/wan/dmz/guest interface names to default
firewall rules
2025-02-10 21:17:43 +00:00
8cf602da91
think
2025-02-10 21:17:43 +00:00
c92aacc6fd
firewall rules: use @lan and @wan sets instead of ifnames
...
we don't have anything yet to create or populate the sets
2025-02-06 09:22:41 +00:00
eff255fe12
boot.expect: sleep more, for gl-ar750
...
the bootloader on gl-ar750 loses characters if we shovel them too fast
2025-02-05 20:35:04 +00:00
453baede61
rt3200: add installer compatibility note
2025-02-05 20:35:04 +00:00
2295ed3110
Merge pull request 'OpenWrt One device support' ( #13 ) from raboof/liminix:openwrt-one into main
...
Reviewed-on: dan/liminix#13
2025-01-08 13:57:39 +00:00
Arnout Engelen
e71d92eb3d
OpenWrt One support
...
https://openwrt.org/toh/openwrt/one
2025-01-07 16:10:04 +01:00
f77da6f14c
remove remaining refs to kexecboot
2025-01-05 17:22:30 +00:00
61eaaa82eb
drivel
2025-01-05 17:17:44 +00:00
95dd1a1fab
add missing code-block
2025-01-05 15:45:04 +00:00
2f9b0f12f9
switch uid
2025-01-05 12:57:51 +00:00
9fd9b8b878
rt3200 kconfig for 6.6.x
...
* DMA stuff needed for wired ethernet
* DSA MDIO _probably_ (based on guessing from openwrt dmesg) needed
for wired ethernet
* some or all of NVMEM so that wireless drivers can read their eeprom
2025-01-05 00:16:03 +00:00
26f206d0e1
phram dtb reserved-memory needs no-map
...
c.f. 69429404ab
Co-authored-by: Arnout Engelen <arnout@bzzt.net >
2025-01-04 23:50:44 +00:00
8cd068ea68
belkin rt3200: set tftp loadAddress to match u-boot
...
the old value of 0x4007ff28 was originally copied from something
upstreamy but I have no record of what. 0x48000000 is $loadaddr
in u-boot so let's use that instead
2025-01-04 23:48:19 +00:00
350ddde260
add pkgs.openwrt_24_10
...
is needed by Belkin RT3200 and might also be handy for OpenWrt One?
this is very copy-pastey, will tidy it up after it
stops being a moving target
2025-01-03 23:52:08 +00:00
13cb8d3692
sort imports
2025-01-03 15:41:22 +00:00
62b7aea8ab
add btrfs.nix to outputs imports
2025-01-03 15:40:33 +00:00
76e3fd9a55
add rt3200 to CI
2025-01-03 15:39:08 +00:00
92284fa9ba
mtdimage can't be a default import
...
it adds kernel config that depend on openwrt patches,
which aren't used/needed on all devices
2025-01-03 00:19:17 +00:00
a2bb55e885
oops fix syntax error
2025-01-03 00:07:00 +00:00
74027b44d7
extract log persistence config from s6 to new module
...
because it frobs kernel config, it breaks levitate
as levitate evalModules doesn't include the kernel
2025-01-02 23:56:49 +00:00
ea5370b3f4
import mtdimage in outputs
2025-01-02 23:37:07 +00:00
55ed365920
turris omnia: default rootfs and bootloader settings
2025-01-02 23:36:15 +00:00
aa2160dd05
logtap: fix indentation
...
spaces not tabs
2025-01-02 22:45:00 +00:00
df414b796f
drivel
2025-01-02 22:19:49 +00:00
7377f7ceb2
implement mechanism for reverting from update.sh
2025-01-02 22:19:49 +00:00
49432aeda5
Merge pull request 'Fix typo: Buildiing -> Building' ( #15 ) from raboof/liminix:typo into main
...
Reviewed-on: dan/liminix#15
Reviewed-by: dan <dan@telent.net >
2025-01-02 14:46:36 +00:00
Arnout Engelen
3caf8a75bb
Fix typo: Buildiing -> Building
2025-01-02 10:53:38 +01:00
cc94ef57fa
in rc.init copy log from previous boot to place of safety
2025-01-01 18:22:45 +00:00
fd28f0ce04
rt3200 needs pmsg-size set in its dts for persistent logging
2025-01-01 14:11:22 +00:00
497307588f
automate ubimage instructions a little
2025-01-01 12:38:08 +00:00
788169586f
/boot is a directory, copy files instead of replacing it with symlink
...
for the record, u-boot doesn't like having /boot/fit -> ../nix/store/..../fit
symlinks so we don't use symlinks inside /boot either
2025-01-01 12:29:25 +00:00
3af9e86624
rt3200: replace bootcmd variable
...
the default is to boot to recovery if there's anything in pstore, but
this doesn't interact well with persstent logging
2025-01-01 11:56:54 +00:00
28d39cd66d
provide etc/kconfig in updater output
...
this is for debugging/documentation purposes and isn't copied to the
device
2025-01-01 11:55:33 +00:00
9dd169d500
add "config" output to kernel derivation
2025-01-01 11:54:46 +00:00
2e513eb4a7
example sni proxy using nginx
2024-12-29 23:34:15 +00:00
f2e4e77d73
firewall: don't use oifname in input rules
...
because it's empty, these are input rules for the local machine
2024-12-29 23:17:31 +00:00
48dfbe0c01
add nginx-small : nginx with finegrained configure options
2024-12-29 20:47:03 +00:00
6f697db57c
remove PSTORE from rt3200 default kconfig
...
we have config.logging.persistent.enable at home
2024-12-29 13:33:55 +00:00
fe1ee12e3d
swap strchr for strchrnul in dropbear authkeyfile patch
...
The strchrnul version was giving weird crashes on aarch64
belkin-rt3200. I haven't figured out why but this one doesn't
2024-12-29 13:30:21 +00:00
4d273a9469
dropbear would like /etc/shells to exist
2024-12-29 13:27:49 +00:00
40db175b41
complain if user attempting to tftpboot a ubifs
2024-12-29 13:26:45 +00:00
ab07212a7e
include jffs2 module per default
...
it has no effect unless enabled
2024-12-29 13:26:06 +00:00
f5e08ac9d9
rt3200 default to loader.fit
2024-12-29 13:25:26 +00:00
0cb18eabcd
boot.expect: improve reliability
...
don't depend on seeing u-boot prompt, it's just too easy to get
out of sync
2024-12-27 18:08:01 +00:00
24151425b8
and fix quoting
2024-12-24 14:29:01 +00:00
e06295ed83
rt3200: add fw_setenv commands to update boot_production
2024-12-24 14:19:29 +00:00
608d3e3abf
proofread
2024-12-24 14:01:30 +00:00
3e19f1b927
Merge branch 'runciter'
2024-12-24 13:47:27 +00:00
3f6e9b6384
rt3200 defaults to ubifs
2024-12-24 13:46:36 +00:00
294492a176
jiggle imports
2024-12-24 13:46:19 +00:00
67a1cd3718
improve install instructions for belkin rt3200
2024-12-24 13:45:11 +00:00
Arnout Engelen
f8a275d1a3
use Linux kernel sources associated with openwrt by default
2024-12-24 12:30:15 +00:00
0ee9c76c33
think
2024-12-24 12:30:15 +00:00
452aaa2f60
Merge pull request 'use Linux kernel sources associated with openwrt by default' ( #12 ) from raboof/liminix:linux-version-with-openwrt into main
...
Reviewed-on: dan/liminix#12
2024-12-24 12:24:31 +00:00
52967f746b
Merge branch 'main' into linux-version-with-openwrt
2024-12-24 12:24:13 +00:00
Arnout Engelen
a89f866bf0
use Linux kernel sources associated with openwrt by default
2024-12-24 12:21:28 +00:00
f3fadd5cd7
think
2024-12-24 12:20:48 +00:00
bc20f4c6b7
rt3200 test install
2024-12-23 23:59:52 +00:00
848214d104
add ubivolume output
2024-12-23 22:37:07 +00:00
ede8f12d2b
declare options.hardware.ubi unconditionally
...
this is so it can be defined in device modules even when
ubifs is not included in the configuration
2024-12-23 22:37:07 +00:00
6cd5b90678
outputs.rootubifs -> ubifs
2024-12-23 22:37:07 +00:00
db4f098c02
add fit bootloader
...
this is for the belkin rt3200, whose uboot doesn't do
extlinux but can load a fit from a ubifs. It adds the
a kernel+dtb as /boot/fit
2024-12-23 11:21:58 +00:00
1347937345
rename file
2024-12-23 10:31:22 +00:00
a7b5f80674
rename extlinux output to bootfiles
...
this is in preparation for introducing other non-extlinux
modules that populate /boot
2024-12-23 00:09:31 +00:00
5c78338d71
make mtdutils use no-systemd util-linux
2024-12-22 23:24:11 +00:00
ed02d02767
bump NEWS
2024-12-22 21:12:36 +00:00
f07a38b0fd
extract uimage output module into own file
2024-12-22 21:10:07 +00:00
ac189f2977
outputs.zimage -> outputs.kernel.zImage
...
remove config option/derivation in favour of accessing
as output of the kernel derivation (matches what we do
with e.g. modulesupport)
2024-12-22 17:27:59 +00:00
ebb4d4a831
think
2024-12-22 16:03:24 +00:00
6bfbdf352d
bordervm: expose ssh on port 2222
2024-12-22 16:01:38 +00:00
4ea1cf7f32
rt3200 better install docs
2024-12-20 22:26:40 +00:00
f60b74f415
add a new updater output
...
this is so that we don't have to obfuscate store paths in
systemConfiguration to avoid dragging in build system
deps.
breaking-ish change to workflows, docs updated
2024-12-20 00:05:07 +00:00
812e35b7b9
systemconfig: improve filenames/pathnames
...
no more make-stuff
2024-12-19 22:28:30 +00:00
172f368633
fix markup
2024-12-19 21:59:04 +00:00
1af9a39db1
omnia: delete pstore config we're probably not using
2024-12-19 20:59:52 +00:00
420552ce98
add omnia to ci
2024-12-19 20:56:05 +00:00
56c667cfd5
extract systemConfiguration into its own output module
2024-12-19 20:55:10 +00:00
f9b4f0bc9c
move modules/squashfs.nix into outputs/
2024-12-19 14:33:50 +00:00
ba5e4704a0
add short note about persistent logs
2024-12-18 23:08:28 +00:00
3357d21d7f
enlarge pmsg buffer to full size of ramoops region
...
4k was a piddly amount and we weren't using the rest of it for
anything else
2024-12-18 21:16:49 +00:00
ffaca615ba
copy logs to /dev/pmsg0 when ogging.persistent.enabled
2024-12-18 21:11:58 +00:00
77cd4492b2
unbreak nix-shell
2024-12-17 23:26:56 +00:00
81f5550bf0
config.logging.persistent enables /dev/pmsg0
...
- whatever's written to /dev/pmsg0 appears as
/sys/fs/pstore/pmsg-ramoops-0 after reboot
- only works on devices with the relevant device tree
support (gl-ar750 and whatever has it by default)
- nothing in the system is actually writing this file yet
- or reading it at boot time, for that matter
2024-12-17 23:24:31 +00:00
b52133a28b
add hardware.dts.includes option
2024-12-17 20:36:14 +00:00
Arnout Engelen
1ff779c1a9
use Linux kernel sources associated with openwrt by default
2024-12-17 20:24:14 +01:00
44caefcd3b
rename config.hardware.dts.includes -> includePaths
...
(1) it's a better name
(2) I want to use `includes` to specify dtsi files
2024-12-17 17:41:53 +00:00
6e6b8790eb
think
2024-12-17 17:24:52 +00:00
2e5a8a572e
tufted: more robust merge-pathname impl
2024-12-17 17:24:40 +00:00
464d046b5a
append-path spec behaviour for repeated /
2024-12-17 17:24:16 +00:00
ac8b971cc0
new fn append-path in anoia
...
complains if you try to ../../../
2024-12-11 17:26:44 +00:00
13087d17e3
use assert macros in anoia/init.fnl
...
there is no circularity (maybe there was once?)
2024-12-11 17:25:39 +00:00
5572c0ecb0
rewrite parts of inout test to be differently wrong
2024-12-09 23:36:22 +00:00
4cbe3ba683
add some debug output in inout test
2024-12-09 21:00:11 +00:00
20f4a12689
inout: improve robustness, maybe?
2024-12-07 16:02:42 +00:00
33e5c436d5
add environment variables that scapy now needs (24.11)
2024-12-04 21:16:36 +00:00
cde30bcd54
in nixos 24.11 chrony no longer expects nss/nspr/readline
2024-12-03 21:39:54 +00:00
1f7d6544e3
provide stdout to ppp callback scripts
...
pppd runs them with 0,1,2 => /dev/null but we actually quite like
seeing errors in the logs
2024-10-17 21:37:08 +01:00
1bca072509
fix chrony pidfile error
2024-10-17 21:35:33 +01:00
7b98724643
turns out we did need usepeerdns
2024-10-17 21:05:16 +01:00
b1625763ee
ppp service signal readiness only when ip-up has run
...
as downstream services need e.g. ifname which is not written by ipv6-up
2024-10-16 22:59:01 +01:00
91bdfc2766
remove apparently obsolete rp-pppoe configure setting
...
this were copied from nixpkgs but perhaps is for an older version of
rp-pppoe because it builds just fine without
2024-10-16 22:56:05 +01:00
14bfebc5c3
enable unloading modules so that scripts work
...
if we can't unload them then the service that loads them will fail
the second time it's run
2024-10-16 22:54:19 +01:00
0447ac0ff9
did we need MODULE_SIG?
...
I think this may be a hangover from using backports modules for wlan
2024-10-16 22:53:16 +01:00
e35a1514ab
send kernel logs to s6
2024-10-16 18:59:42 +01:00
4a0120487c
remove usepeerdns - it causes only errors
...
we handle dns with service outputs anyway
2024-10-16 18:58:34 +01:00
888688ce28
buuld ppp with path to /run
2024-10-16 18:57:26 +01:00
9e3f48768e
think
2024-10-14 18:49:10 +01:00
72171021e3
support finish script in longrun
2024-10-10 18:26:14 +01:00
17517dd34f
remove KEXEC from base kernel config
...
we're not using it any more
2024-10-10 18:23:50 +01:00
5112eab4da
apply incoming-allowed-ip[46] rules to input as well as forward pkts
...
this makes it possible to open ports on the router itself
2024-10-10 18:18:23 +01:00
e383f1b3d3
obfuscate store path for min-copy-closure
...
otherwise the systemconfig closure drags in a bunch of build system
things (bash, etc) which we don't want or need to copy to the device
2024-10-10 16:25:00 +01:00
da1245432e
no more iminix-rebuild
2024-10-09 19:34:55 +01:00
541b1c61c2
ensure $toplevel is path in /nix/store
2024-10-09 18:59:33 +01:00
55c7410a55
add result/install.sh to systemConfiguration output
...
this makes it possible to install a systemconfig instead of
having to use nix-shell (which is very slow)
2024-10-09 13:35:02 +01:00
0f50648157
don't put hostname in levitate logs
...
there might not be one
2024-10-08 22:55:39 +01:00
f1c260d4f7
make ci.ni "all" a derivation
...
this is to stop hydra complaining
2024-10-06 18:04:56 +01:00
3d611d3ba2
fix unstable qemu build?
...
nix-repl> (lib.versionOlder "24.11pre-git" "24.11")
true
nix-repl> (lib.versionOlder "24.11pre-git" "24.10")
false
n
2024-10-06 18:04:48 +01:00
e6b7d86381
sort lines
2024-10-06 17:53:34 +01:00
83fbffb39b
catch another uncaught-logs
2024-10-06 17:53:09 +01:00
f8c579b41e
add CI "all" target
2024-10-06 17:52:59 +01:00
ca9efc4b26
simplify CI
...
* I didn't know what I was doing when I set up Hydra
* it's not certain that I do now either, but hey ho
2024-10-06 15:55:01 +01:00
336fc7e495
think
2024-10-06 14:27:45 +01:00
4cc0add2ad
update refs to uncaught-logs in docs/tests
2024-10-06 13:46:14 +01:00
2d7e6188ac
log shipping service now gets logs on stdin
...
instead of having to open the unix socket
2024-10-06 13:26:58 +01:00
b9999857cb
longrun: don't add logger if producer-for is already set
2024-10-06 13:13:04 +01:00
ba03ddeb38
border-vm: add tang service
2024-10-06 12:38:06 +01:00
493c5f69d7
add module for certifix-client
2024-10-06 11:27:39 +01:00
1a915e91ff
add altname to CSR
2024-10-06 10:13:28 +01:00
197e2eb5b1
new package certifix-client uses certifix to sign ssl client cert
...
this is initially for TLS-enabled logging but would be useful for
anything on a liminix box that wants to talk to a network service in a
"zero trust" setup
2024-10-03 23:00:08 +01:00
7ca822c826
more messing around with lua derivation
2024-10-03 23:00:08 +01:00
e5631783e1
add luaossl package with patch for CSR attributes
2024-10-03 23:00:08 +01:00
635590d37a
implement log shipping config
...
to use this, you need config like for example
+ logging.shipping = {
+ enable = true;
+ service = longrun {
+ name = "ship-logs";
+ run = let path = lib.makeBinPath (with pkgs; [ s6 s6-networking s6 execline ]);
+ in ''
+ PATH=${path}:$PATH
+ s6-ipcserver -1 ${config.logging.shipping.socket} \
+ s6-tcpclient 10.0.2.2 19612 \
+ fdmove -c 1 7 cat
+ '';
+ };
+ };
but I think we can reduce the noise a bit if we use an s6-rc pipeline
with an s6-ipcserver on one side and and a (whatever the user wants)
on the other
2024-09-18 22:14:34 +01:00
17630f2678
rename logtee->logtap
2024-09-18 20:58:02 +01:00
707a471bc2
add logtee to catchall logger
2024-09-16 21:30:06 +01:00
d3fce5edd4
implement error() for musl
2024-09-16 20:35:23 +01:00
5771108fed
improve logtee socket connection warning
...
* print it less often
* to the correct stream (stdout not stderr)
2024-09-16 20:34:26 +01:00
9e5f2d663d
close socket fd if we can't connect it
2024-09-15 22:09:31 +01:00
21eeb1671e
print diagnostic when eof on stderr
2024-09-15 21:59:24 +01:00
44762d38fc
write start cookie when socket connect succeeds
2024-09-15 21:54:21 +01:00
1f6cfc3679
extract method is_connected
2024-09-15 21:40:05 +01:00
8ec00f1710
improve error message
2024-09-15 21:37:04 +01:00
6a6dd32dea
make pollfd array global
2024-09-15 21:32:48 +01:00
9b1fc11a59
logshipper/logtee :copy stdin to stdout & to a unix socket if present
...
first draft
2024-09-15 19:33:21 +01:00
aaa6e353db
incz is a very rudimentary log shipper for zinc search
...
although it probably would work with elasticsearch as well
as zinc is alleged to be ES-compatible
this is just the package and needs hooking into the service/log
infrastructure somehow
2024-09-08 16:38:37 +01:00
69bf6cb5fb
write-fennel quote PATH properly
...
escapeShellArg only quotes if the string contains special
characters, but for a Lua string we must quote unconditionally
2024-09-07 22:31:44 +01:00
9f58e7b926
maybe fix nixpkgs-unstable lua
2024-09-07 00:58:11 +01:00
5a5c27ab9f
think
2024-09-06 22:37:49 +01:00
277c91acdf
Revert "remove luaposix ref in write-fennel"
...
This reverts commit a60c2539a6 .
2024-09-06 00:33:30 +01:00
e0725489ca
unbreak pppoe ci job
2024-09-06 00:33:30 +01:00
cc47515cf8
watch-outputs remove debug code
2024-09-06 00:13:54 +01:00
464913cc8f
tangc use spawn to invoke jose
...
hopefully we are now deadlock-free
2024-09-06 00:12:45 +01:00
e604d628e3
fennel anoia.process.spawn
...
runs a subprocess and invokes a callback whenever its io
descriptors are ready
2024-09-06 00:11:33 +01:00
e2a597589b
anoia.fs.find-executable looks for bin in colon-sep list of directories
2024-09-06 00:08:40 +01:00
Raito Bezarius
a139a262c1
seedrng: init at 2022.04
...
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-09-05 14:18:00 +01:00
6a5fed83dd
conditional fetch in json-to-fstree
2024-09-05 11:14:47 +01:00
bcf5ab24e8
tidy watch-outputs startup message
2024-09-05 10:11:16 +01:00
32bf80c6fa
devout: unlink socket pathname before binding
2024-09-05 10:05:13 +01:00
12275f6896
add more test for table=
2024-09-04 21:21:30 +01:00
a60c2539a6
remove luaposix ref in write-fennel
2024-09-04 21:21:02 +01:00
146a2d9ac0
fix startup race/fencepost in watch-ssh-keys
...
if it starts _after_ the outputs are populated, it should
write the first lot of outputs without waiting for a change
2024-09-04 21:19:51 +01:00
091d863710
extract pppoe/l2tp common code
2024-09-04 12:02:00 +01:00
c7bcfbfa34
make pppoe/l2tp more consistent
2024-09-03 22:57:45 +01:00
500a3c1025
make nodefaultroute explicit in ppp
2024-09-03 22:53:13 +01:00
0c0d0eed8a
make watch-ssh-keys robust against missing key
2024-09-03 22:51:29 +01:00
699cf97206
improve tangc http error messages
2024-09-03 22:50:55 +01:00
cd0093279c
think
2024-09-01 10:14:31 +01:00
034d6aacc4
tangc handle non-zero exit from jwe dec
...
Sometimes it exits non-zero but decrypts the file *anyway*. It only
does this on the device and I haven't been able to reproduce on build,
so this is a workaround until we find the root cause
2024-09-01 09:57:38 +01:00
e590c0ad3f
secrets subscriber: add provider as dep to controlled service
2024-09-01 09:56:59 +01:00
14abdd9998
tang: notify on ready
2024-08-31 23:24:50 +01:00
6287b92000
fix bugs handling base64 padding
2024-08-31 22:43:25 +01:00
d2215d3e56
tangc popen retry on short read
2024-08-31 22:18:23 +01:00
3cf2308bee
tangc: stop printing unexpected blank lines
2024-08-31 15:29:10 +01:00
3913989be3
provide string to perform-encryption
...
instead of letting it read stdin, which I think may have been read
by a subprocess already sometimes?
2024-08-31 15:27:54 +01:00
43e5e6876e
improve tangc error messages
2024-08-31 15:22:26 +01:00
7d6c80570c
refactor all writeFennelScript calls to use writeFennel directly
2024-08-30 20:57:42 +01:00
e745991b9d
restart pppoe/l2tp in secrets changes
2024-08-30 20:49:27 +01:00
defbfce1fb
finish converting outputRef to lambda
2024-08-30 20:46:48 +01:00
0df2c83382
tighten perms on service state directory
2024-08-29 23:56:43 +01:00
01c28de88d
think
2024-08-29 23:56:20 +01:00
2bf197cad8
document outputs and secrets
2024-08-29 23:55:32 +01:00
a8a19977ca
(untested) template service for tang encrypted secrets
2024-08-28 22:32:26 +01:00
8a9284af1e
think
2024-08-28 22:23:00 +01:00
7351e143c5
remove redundant sourcing of ${serviceFns}
...
this is done by the oneshot and longrun functions
2024-08-28 21:28:27 +01:00
283c3154a7
missing file in s6-rc-up-tree test fixture
2024-08-28 21:18:54 +01:00
34f37d60d9
missed adding this
2024-08-28 20:56:52 +01:00
fe7b092075
(untested) http basic auth for outboard secrets
2024-08-28 20:53:59 +01:00
b56f121e04
fetch lua glue: handle missing content-length
2024-08-28 19:52:00 +01:00
d5d621f310
rename http-fstree => json-to-fstree
...
it works for file urls as well, not just http
2024-08-28 16:36:49 +01:00
da95a9fa62
tangc support encryption
2024-08-28 18:55:20 +01:00
85071c88e7
remove argv0 from calls to jose
2024-08-28 11:16:43 +01:00
74093b7ee3
josep! runs jose without json parsing the output
2024-08-28 08:13:50 +01:00
41733e58d6
remove unused code, tidy string parsing
2024-08-28 07:20:07 +01:00
9041d5d63a
add jose! fn to reduce error-checking boilerplate
2024-08-28 07:10:47 +01:00
001ebdc601
remove unused requires
2024-08-28 06:52:04 +01:00
1f97409474
add popen2 to anoia.fs
2024-08-28 06:49:43 +01:00
a41839f3d1
clevis-decrypt-tang in fennel
...
needs a lot of tidying up, but works on my test file
2024-08-28 01:37:44 +01:00
ff76d854fc
extend libfetch lua glue to other HTTP methods
2024-08-28 01:37:02 +01:00
81a6480a4f
anoia add base64 deode
2024-08-27 22:42:03 +01:00
c7164a6f4a
sshd can use outputRef for authorized_keys
2024-08-25 16:35:50 +01:00
83ca86fe42
keys in service output tree are strings
2024-08-25 15:59:24 +01:00
1b4106e2a3
ssh-keys service, draft
2024-08-25 15:09:31 +01:00
89912c766b
nixpkgs 24.11 qemu does not expect texinfo
2024-08-25 14:23:29 +01:00
9828b007ae
watch-ssh-keys turns secrets-service into authorized_keys files
2024-08-24 23:25:32 +01:00
f34abc85ae
add macros param to write-fennel
2024-08-24 23:19:46 +01:00
b475a680fb
define-tests macro, evals body only when inside fennelrepl --test
2024-08-24 22:26:25 +01:00
43612af71a
anoia: %% is alias for string.formt
2024-08-24 13:56:54 +01:00
5695c47496
add dig to anoia
2024-08-23 23:27:29 +01:00
e3ec514710
think
2024-08-23 23:27:17 +01:00
99f68e5421
destructure params in ssh service
2024-08-23 23:13:49 +01:00
9c30b6f882
change output references from attrset to lambda
...
this is so that we can distinguish a ref from a literal parameter that
might be a attrset
2024-08-23 22:25:57 +01:00
dd75322c10
think
2024-08-23 21:45:18 +01:00
869a508c0a
add authorizedKeys option to ssh service
...
this has no apparent use as it stands, but opens the door to
having the keys managed by an external secrets service
2024-08-23 20:35:07 +01:00
e835473945
patch dropbear to add -U option
2024-08-23 19:58:05 +01:00
055268d5d2
upgrade dropbear
2024-08-23 19:57:10 +01:00
ff38bcacbb
improve devout error reporting
2024-08-21 23:24:13 +01:00
a6128955e7
ppp modules: permit (mostly) same params for l2tp as pppoe
...
this also means that l2tp can use secrets for username/password
2024-08-21 23:10:28 +01:00
531cb113be
devout needs a longer startup timeout
...
seems to be taking around 40 seconds now, would be worth digging in to
find out why
2024-08-21 23:09:11 +01:00
daede666cb
in router-with-l2tp use secrets for ppp username/password
2024-08-21 00:17:53 +01:00
2992771c7e
pppoe allow secrets for username/password
2024-08-21 00:17:22 +01:00
4cc82e1502
liminix.types.replacable is a string or ref to an output
2024-08-21 00:16:14 +01:00
21f2320d86
inline method
2024-08-20 23:26:11 +01:00
d40ada4251
use structured ppp params in ppp test
2024-08-20 23:25:31 +01:00
4053ea9481
secrets/subscriber implement different restart types
2024-08-20 22:56:26 +01:00
54d3415885
pppoe convert to using a config file
...
mostly for ease of implementation but does mean we don't
have username/password secrets on the command line
2024-08-20 22:55:30 +01:00
264d83c98d
move some secret-watching stuff from hostapd to secrets
2024-08-20 21:49:11 +01:00
97defc2076
hostapd: get secrets service/path from attrs
2024-08-17 22:25:30 +01:00
ddaa5476d3
override clevis derivation (experimental)
2024-08-15 23:02:54 +01:00
bcd9d56624
start devout after mdevd
...
not 100% sure that there's a dependency but it's plausible, and
would explain the observed occasional failure to start at boot
2024-08-15 23:01:29 +01:00
e2c883356c
add secrets-subscriber service, make hostapd use it
2024-08-15 23:00:41 +01:00
d79a941504
new package watch-outputs and example of its use
2024-08-14 22:58:17 +01:00
2f82e0dab8
hostapd set permissions on dir in /run/
2024-08-14 22:57:02 +01:00
fc03965915
hostapd literal_or_output use an attrset for dispatch
2024-08-14 22:56:01 +01:00
d2d3af2587
outboard secrets: loop in service
...
if we just quit and expect s6 to restart us, the finish script
wipes our outputs and anything with an inotify watch gets confused
2024-08-14 22:41:56 +01:00
310ac30f24
http-fstree needs to write state and .lock for anoia.svc
2024-08-14 22:39:41 +01:00
45a7f96bd4
anoia table= compares tables
2024-08-14 22:36:28 +01:00
79445fd962
support multi-arg assoc
2024-08-14 22:34:37 +01:00
a9ddd78482
think
2024-08-12 22:59:03 +01:00
4fb8253e57
first pass at outboard secrets
...
- a module to fetch them with http(s)
- a service using templating to consume them
- update an example to use it
needs service restarts
needs other services to use the template mechanism
needs tidying up
2024-08-12 22:57:21 +01:00
ff3a1905a5
pass service to output fn in output-template
...
instead of on command line
2024-08-12 22:53:07 +01:00
3c353e4aff
support json quoting in output-template
2024-08-10 23:42:08 +01:00
ba21384fde
new: output-template interpolates output values into config file
2024-08-10 23:06:47 +01:00
2480fdef5b
set up nginx on bordervm for testing outboard secrets
2024-08-10 23:05:50 +01:00
409c1cfb16
think
2024-08-10 23:05:15 +01:00
9767078878
add the example used in the video
2024-08-08 19:24:58 +01:00
d760c2d27b
http-fstree downloads a json file and converts to service outputs
2024-08-08 15:35:11 +01:00
1e139c22fd
think
2024-08-08 15:21:24 +01:00
a1ff07b063
add rxi/json lua module
2024-08-08 15:05:26 +01:00
9550772cec
add lua binding to fetch-freebsd
2024-08-08 15:05:03 +01:00
64cd1626c6
new package fetch-freebsd: small http(s) client library
...
[*] smaller than curl, maybe not maximally small
2024-08-08 11:38:38 +01:00
eb79928b37
anoia.svc allow writing outputs
2024-08-08 11:37:50 +01:00
0a629df48d
anoia.fs: improve error messages
2024-08-08 11:36:47 +01:00
64afd18e2a
why does this fail on hydra?
2024-08-06 23:18:39 +01:00
47e96ddc15
think
2024-08-06 18:43:49 +01:00
5db9d7269e
ppoe structured options are optional
2024-08-06 18:43:27 +01:00
985df8792d
overlay: handle cross-only overrides consistently
2024-08-06 18:42:58 +01:00
528afae8b1
doc: punctuate
2024-08-06 14:15:57 +01:00
384835c89d
admin doc: updte round-robin, explain health check
2024-08-06 14:14:52 +01:00
5051625d31
mention health check in docs
2024-07-30 22:53:21 +01:00
c4d00e062a
add health check service and example that uses it
2024-07-30 22:37:43 +01:00
8fa3443923
Revert "anoia.svc use timeout for inotify"
...
This reverts commit eca8e37e7a .
2024-07-30 17:37:38 +01:00
8091e207b6
some notes on controlled services
2024-07-28 22:57:23 +01:00
39020607ad
rename service-trigger rule to match service name
2024-07-28 22:35:37 +01:00
fe735408a1
v:address is nil if missing, but code expects an array
2024-07-27 17:40:32 +01:00
a9d1582b53
remove unused arg
2024-07-26 23:41:50 +01:00
eca8e37e7a
anoia.svc use timeout for inotify
...
in case we miss a message, check the directory every 5s
anyway
2024-07-26 23:40:40 +01:00
d300373b96
anoia fs.dir use case not match
...
match was accidentally pinning the return from readdir against the
function parameter. Which didn't work.
2024-07-26 23:37:40 +01:00
70ca7fac17
elfutils is reqd by iproute2 (for bpf?), build sans kitchen sink
2024-07-24 22:07:58 +01:00
79a3a45061
build iproute2 without rb to avoid stdatomic
2024-07-24 21:13:55 +01:00
612d6d7a51
build openssl without threads to avoid stdatomic
2024-07-24 21:12:52 +01:00
e1ae986cf6
convert l2tp example to use gateway profile
2024-07-23 09:31:34 +01:00
bce0c7ffb6
rename services.dhcpc in l2tp example
...
it's only used to get the address of the l2tp server, not for
name lookups in general
2024-07-23 09:31:34 +01:00
28ca1e68ab
wwan module needs mdevd
2024-07-23 09:31:34 +01:00
acf33a100f
think
2024-07-23 09:31:34 +01:00
7f9cae9d5c
generalise profile.gateway.wan so not just pppoe
2024-07-23 09:31:34 +01:00
3012c91b47
executive decision: rotuer example should build on gl-ar750
2024-07-23 09:31:34 +01:00
1edf20c08f
fix whitespace
2024-07-23 09:31:34 +01:00
7195cb10ce
add structured config for common pppoe options
2024-07-23 09:31:34 +01:00
135a445672
restore param removed by deadnix
...
dochain is called with `family` even if it never uses it
2024-07-16 20:41:21 +01:00
3899daee56
create a module for round-robin
2024-07-15 22:37:37 +01:00
b17f623d03
need insmod when we habve kmodloader
2024-07-15 22:35:26 +01:00
df395a4d5d
finish moving pkgs.linimix.callService to config.system
2024-07-15 19:00:08 +01:00
75e9f8210c
remove the fixpoint we didn't need
2024-07-15 18:54:04 +01:00
1c3242cab1
doc: swap order of configuration and installation
...
you can get a device up and running using a lightly edited example
config before you need to read all the reference info, so let's
have the documentation in that order.
2024-07-14 12:26:07 +01:00
44ea683391
think
2024-07-14 12:08:02 +01:00
725d8b608f
huawei-cdc-ncm kernel driver -> module
2024-07-14 12:07:28 +01:00
bc9ced5d38
fix doc ref from admin section -> configuration
2024-07-14 11:56:35 +01:00
73ae7788b9
rename wwan-related modules/services
...
we only currently support huawei e3372/cdc ncm so let's make that
explicit in the naming
2024-07-14 11:53:45 +01:00
d34919766a
improve reinstallation docs
2024-07-12 18:38:04 +01:00
2fe0cd2f48
add first draft instructions for using Levitate
2024-07-12 00:17:25 +01:00
241f1013ed
add new Installation guide
...
move the u-boot/serial stuff here from development, as the
reality of Liminix development in 2024 is that serial connection
is still the smoothest installation method
2024-07-11 23:31:00 +01:00
2ce361d4e3
think
2024-07-11 09:39:38 +01:00
3f8cc24dcc
fix most doc warnings
2024-07-10 23:36:24 +01:00
57e3b449f8
proofreading
2024-07-10 21:23:24 +01:00
3964505131
some notes on services
2024-07-10 20:50:08 +01:00
941479b144
use round-robin failiover in l2tp example
2024-07-08 22:01:54 +01:00
ac551536da
set cwd before exec xl2tpd
2024-07-08 21:56:26 +01:00
6f908156af
fix dependency between modem-atz and modeswitch
...
for values of "fix" more than slightly reminiscent of "kludge"
2024-07-08 21:55:05 +01:00
534a49e827
s6-rc-round-robin
...
runs services in order, starting the next one when the previous one
dies or fails to start
2024-07-08 21:53:51 +01:00
07a6eb73cd
set lcp-echo timeout in l2tp
2024-07-08 21:45:54 +01:00
159bfa3057
make xl2tpd quit when the connections close
2024-07-08 21:44:15 +01:00
8f0ab5be40
enable tail -F
2024-07-08 21:37:07 +01:00
7f9971512d
a6-rc-up-tree: handle blocked deps, exit 1 if nothing started
2024-07-08 21:28:31 +01:00
f0f6cc80d7
remove dead code
2024-07-08 21:28:11 +01:00
afcc6a6436
s6-rc-up-tree pass -b to s6-rc command
2024-07-08 21:27:54 +01:00
2e8e05f31a
wip: rewrite s6-rc-up-tree in an actual procgramming language
...
and write some tests for it, too
2024-07-08 21:27:42 +01:00
143137cbc6
pppoe: set lcp echo failure timeout
2024-07-08 21:25:42 +01:00
8d228f2bef
mess with redial
2024-07-08 21:24:44 +01:00
5751058d59
gl-ar750 swap lan and wan
...
I don't know if I just got it wrong the first time or if something
weird is going on
2024-07-08 21:19:30 +01:00
5ac7e1e9b2
write-fennel: set $PATH if lualinux is available
2024-07-08 21:18:02 +01:00
c75452549b
think
2024-07-08 21:17:12 +01:00
2663f58807
disable security for bordervm "liminix" share
...
tftp needs to be able to follow symlinks into the store
2024-07-01 20:53:03 +01:00
9dbc285605
build libusb1 without libatomic
2024-06-30 17:52:17 +01:00
8b6aa2134e
zyxel dual image; restore deleted params
2024-06-30 17:50:45 +01:00
3df1ec76ff
cleanup whitespace and commas
...
* [] is now [ ]
* {} is now { }
* commas in arglists go at end of line not beginning
In short, I ran the whole thing through nixfmt-rfc-style but only
accepted about 30% of its changes. I might grow accustomed to more
of it over time
2024-06-30 17:16:28 +01:00
0d3218127f
remove unused makeWrapper input
2024-06-30 10:46:37 +01:00
e94bf62ec1
remove dead code (run deadnix)
2024-06-29 22:59:27 +01:00
16a2499d74
avoid makeWrapper on host, it requires bash
2024-06-29 22:36:05 +01:00
d4d8093f97
working l2tp-over-wwan stick example
2024-06-20 10:15:54 +01:00
7c9c801afc
rename isTrigger to restart-on-upgrade
...
we're moving away from "trigger" services to "controller" services,
and "restart-on-upgrade" is the name used by s6-rc
2024-06-16 12:58:06 +01:00
c4185617c0
a6-rc-up-tree wait for lock if needed
2024-06-15 15:36:07 +01:00
06d28e9b08
dhcpc handle case when env vars are missing
...
the notify-script should continue and signal readiness even if one or
more of the outputs it writes are mssing in the environment
2024-06-15 15:34:49 +01:00
9540fc2641
add writeAshScriptBin (forgot to add file)
2024-06-15 15:04:56 +01:00
adc84108ad
Revert "wwan gets address from ppp ipcp not dhcp"
...
This reverts commit be13ab23ca .
2024-06-15 15:04:33 +01:00
eae99051fa
exec devout in service definition
...
makes little practical difference but saves a process slot
2024-06-15 15:01:57 +01:00
49d1703428
add s6-rc-up-tree: start reverse deps of controlled service
...
When s6-rc stops a service, it also stops everything that
depends on it. but when it starts a service it starts only
that service, so we have to go through the other services
depending on it and figure out if they should be started too.
2024-06-15 14:59:34 +01:00
1d337588f9
think
2024-06-15 09:04:19 +01:00
29a869b4fa
qemu: use kmodloader for wifi
2024-06-13 10:12:17 +01:00
5ae1b0a193
Revert "bodervm: remove usbutils until we can fix the udev dep"
...
This reverts commit c22e3fb2ef .
2024-06-12 20:58:13 +01:00
473a4947a5
inout test: wait longer for disk to appear
2024-06-12 20:44:03 +01:00
50bad5c604
libusb needs udev on build
...
this is a workaround to make CI work again, but what we really need to
do is completely separate the nixpkgs used for nixos build-system
tools from the nixpkgs we use for liminix host binaries
2024-06-12 18:55:30 +01:00
c22e3fb2ef
bodervm: remove usbutils until we can fix the udev dep
2024-06-12 13:07:29 +01:00
f898e4dca2
remove debug
2024-06-12 13:03:26 +01:00
5121a8563d
callService: dependencies are services not names
2024-06-12 12:58:57 +01:00
78be354b6e
think
2024-06-12 12:52:52 +01:00
be13ab23ca
wwan gets address from ppp ipcp not dhcp
2024-06-12 12:51:07 +01:00
4b30cd7a75
think
2024-06-11 14:05:32 +01:00
b15542b668
start correct services at boot
...
- uncontrolled services that are not dependent on a controlled service
- controllers
- _not_ controlled services or any other service that depends on one
2024-06-11 14:04:14 +01:00
6daeaf29a0
flip controller/controlled relationship for wwan services
2024-06-11 14:02:48 +01:00
e6ca5ea064
store derivations not just names for service deps
...
.. also controllers, contents. This is to make it possible (easier)
to work out transitive dependencies at build time
2024-06-11 14:01:06 +01:00
e6e4665a18
flip dependencies for triggered/controlled services
...
Instead of treating the trigger as the "main" service and the
triggered service as subsidary, now we treat the triggered
service as the service and the trigger as "subsidary". This
needs some special handling when we work out which services
go in the default bundle, but it works better for declaring
dependencies on triggered services because it means the
dependency runs after the triggered service comes up, not
just when the watcher-for-events starts
2024-06-09 22:37:45 +01:00
2c10790a6d
think
2024-06-09 11:19:38 +01:00
571adf84c0
inherit builtins.map
2024-06-07 16:55:45 +01:00
c8c79fd75a
update all calls to uevent-watch
2024-06-02 20:42:09 +01:00
884d8d194e
wrap uevent-watch in a service
2024-06-02 20:42:09 +01:00
f091bbd706
devout: recognise attr,attrs when parsing search term string
2024-06-01 23:48:05 +01:00
37d7e20582
wwan use uevent-watch to find tty for AT commands
2024-06-01 23:47:20 +01:00
04b068f7a3
delete unused code
2024-06-01 22:43:48 +01:00
53f57c1a8c
devout: support sysfs attributes for (grand*)parent device
2024-06-01 22:43:27 +01:00
19aba0d873
devout: support search for sysfs attributes
2024-06-01 21:20:41 +01:00
7d00b39249
rename attributes->properties when referring to uevent fields
...
properties: key-value pairs in the uevent message
attributes: file contents in sysfs
2024-06-01 12:17:49 +01:00
7aa8633cde
think
2024-06-01 12:16:21 +01:00
58bec8a40f
semi-automate tftpbooting with minicom
2024-05-26 18:03:32 +01:00
a3fca5bf05
devout: add functions to read sysfs attributes
2024-05-26 18:03:32 +01:00
e0bd7aec1e
wwan: hook usb-modeswitch to uevent
2024-05-26 18:03:32 +01:00
e815f61bb5
think
2024-05-26 18:00:31 +01:00
af9200a136
skip symlink handing unless linkname was provided
2024-05-26 18:00:31 +01:00
898958fa10
make a serviceDefn for wwan
2024-05-22 18:54:49 +01:00
fa0f262706
commentary
2024-05-22 18:54:49 +01:00
71aeb27b2f
add hacky wwan service with hardcoding all over
2024-05-22 18:54:49 +01:00
530b4080c9
create cdc-ncm module
2024-05-22 18:54:49 +01:00
58cd007ccc
barebones usb_modeswitch package
2024-05-22 18:54:49 +01:00
3a56798eb5
l2tp set default route via tunnel
2024-05-22 18:54:49 +01:00
758c7ef657
exec xl2tpd
...
haven't fully worked out why, but without this s6 is unable to stop it.
2024-05-22 18:54:49 +01:00
73225a70b2
add rudimentary l2tp service module
2024-05-22 18:54:49 +01:00
ab304dd3f1
bordervm enable nat
2024-05-22 18:47:37 +01:00
0d49f0f7a7
gl-ar750 appendDTB
2024-05-22 18:47:16 +01:00
e64390460a
memorable net device names for gl-ar750
...
linux's view of eth1 and eth0 are opposite to that of u-boot
2024-05-22 18:47:08 +01:00
c0ef6ce282
list pkgs we need in bordervm build
...
it's a bit silly trying to build it with the whole liminix overlay
when it's a nixos system not a liminix system
2024-05-22 18:45:35 +01:00
bd6ec5201f
run dhcp server on bordervm
...
this is for testing clients that have dhcp upstream
2024-05-22 18:45:35 +01:00
b4068da9fe
tftp addresses
2024-05-22 18:45:35 +01:00
aa4b09da85
think (foreshadowing)
2024-05-22 18:45:23 +01:00
471c63b399
s6-rc do cleanup in "finish", don't append to "run" script
...
s6-supervise sends signals (e.g. SIGTERM) to the pid of the process
running "run", so how do we know if the ceanup commands are even
getting executed if the shell interpreter that is supposed to do that
got killed already?
2024-05-13 17:53:02 +01:00
782feaeafa
set default for firewall extraRules
2024-05-03 16:28:53 +01:00
ac54c89427
add busybox to bordervm for udhcpd
2024-05-01 23:09:23 +01:00
5a3646cb29
add authorized keys to bordervm
...
You don't often need this because it has autologin, but sometimes
you want to do antics involving sshing through it to the wan port
of a test device.
Note that you probably wanted to start bordervm with funny qemu
options to even make that possible
nix-shell --run "QEMU_NET_OPTS=hostfwd=tcp::10022-:22 run-border-vm"
2024-05-01 23:07:11 +01:00
e249f48cff
add deps on {ins,rm}mod and kconfig for firewall module
2024-05-01 23:06:12 +01:00
6661e42684
mt300a tftpboot needs appendDTB
2024-05-01 23:04:25 +01:00
b9ba9ef835
mt300a remove unneeded service dependencies
2024-05-01 23:03:55 +01:00
8b69dcc209
pass entire config fragment to levitate, not just services
...
to make it useful we need to be able to set packages, passwords, ssh
keys etc
2024-04-29 20:07:01 +01:00
9b3a3b9ff7
add levitate to arhcive
...
this is largely untested
2024-04-28 21:38:13 +01:00
7d08497bcb
arhcive remove coldplug fudge
2024-04-28 21:37:30 +01:00
0e84adaa0e
maybe don't need deps for gl-mt300a vlan devices?
...
will delete them next time I have that device open to test
2024-04-28 21:35:09 +01:00
660ed5df8f
vlan interface services depend on primary
2024-04-28 21:33:36 +01:00
792a11c8c0
gl-mt300n-v2 use full path to swconfig in service stop
2024-04-28 21:32:42 +01:00
7e4a05bbf8
separate kernel and base modules
...
this is needed for levitate
2024-04-28 12:44:27 +01:00
a4ba5c85e1
alphabetize list in all-modules
2024-04-28 12:42:47 +01:00
723ef73d5a
inout: test hotplug and coldplug
2024-04-27 22:41:30 +01:00
3d4e782929
devout: run tests in postBuild
...
because checkPhase is not executed when cross-compiling, and this
package is always only cross-compiled
2024-04-27 21:07:25 +01:00
1b6a05aec5
make uevent-watch use devout instead of direct netlink
2024-04-27 21:07:25 +01:00
80628a3d90
move event matching tests to devout
...
in preparation for future uevent-watch not needing to do
event matching
2024-04-27 21:07:25 +01:00
bf0cafffed
start devout alongside mdevd
...
ensure it starts before mdevd-coldplug so it can populate
its database
2024-04-26 20:52:12 +01:00
e49aba127c
devout: improve socket error handling
2024-04-26 20:49:23 +01:00
324465bc18
devout: write uevent KEY=value format to clients
2024-04-26 17:37:28 +01:00
b33249a050
devout: add readiness notification
2024-04-26 17:23:29 +01:00
b9c084415e
devout: handle readiness on netlink socket but no event
2024-04-26 17:20:33 +01:00
cf9cadd212
devout: replay relevant events to new subscriber
2024-04-26 17:20:33 +01:00
a116fe084a
devout: use socket constants from anoia.net.constants
2024-04-26 16:48:51 +01:00
74cf3e0711
add anoia.net.constants for SOCK_{STREAM,DGRAM} etc
...
we use an ugly bit of C preprocessor to get the values from
header files, because certain constants are different on MIPS
than on other architectures
2024-04-26 16:43:09 +01:00
9795f03da4
think
2024-04-26 16:41:31 +01:00
cdb23b147c
convert anoia.fs to use lualinux
2024-04-25 21:14:37 +01:00
dbd1264352
convert anoia.fs to use lualinux instead of lfs
2024-04-24 20:44:32 +01:00
834858d5bc
think
2024-04-24 18:33:57 +01:00
18335b95e3
devout: strip newlines from client terms
...
this is just to make testing with socat easier
2024-04-24 18:33:02 +01:00
6bee2f67ac
devout: add incoming netlink messages to database
2024-04-24 18:32:27 +01:00
b4ba3eea21
fix revents in unpack-pollfds
2024-04-24 18:31:26 +01:00
16af3984c9
add lualinux to fennelrepl
2024-04-24 18:30:34 +01:00
ce7e395295
devout test: replace minisock with lualinux
2024-04-24 18:29:24 +01:00
7e13e017eb
add readline suport to fennelrepl
2024-04-24 18:28:39 +01:00
bbf2f53c0e
cross-compile lualinux
2024-04-24 18:28:14 +01:00
032d0f8aca
add netlink socket
...
it's not hooked up to anything yet, but it proves we can
do this with lualinux
2024-04-23 23:34:25 +01:00
b8ac9e5279
convert devout from minisock to lualinux
2024-04-23 23:33:11 +01:00
ff2604ca5d
think
2024-04-23 23:30:50 +01:00
72789984ce
add lualinux package
2024-04-23 22:41:38 +01:00
90d9d0e811
update minisock to not scribble on lua strings
2024-04-23 20:19:33 +01:00
97a8ae1c84
devout: add event loop and main run function
2024-04-23 20:15:02 +01:00
52eb283a26
implement unsubscribe
...
and add ids to subscribe so that there's a unique identifier
to pass to unsubscribe
2024-04-23 20:12:46 +01:00
cbb1de804e
switch to minisock fork witj poll() call
...
this is likely to be temporary as minisock is getting
replaced with lualinux
2024-04-23 20:09:41 +01:00
f9c03998b8
implement subscriptions with callback
2024-04-21 13:19:17 +01:00
50de1b090f
add the rest of the test list (all we've thought of)
2024-04-21 11:22:26 +01:00
648382f64a
report bodyless tests as PENDING
2024-04-21 11:19:42 +01:00
e9370358ae
implement "remove" events
2024-04-21 11:19:06 +01:00
762ce7b6b8
cut/paste devout implementation into a real module
2024-04-20 22:48:00 +01:00
b1c0560f4f
implement fetch by path
2024-04-20 22:20:43 +01:00
e34135c41a
improve failed test reporting
2024-04-20 21:46:37 +01:00
712c9b266f
implement find
2024-04-20 18:42:42 +01:00
4df963996c
devout: add device
2024-04-20 18:24:10 +01:00
349bfecbb8
new package "devout", does nothing yet
2024-04-20 17:45:40 +01:00
450d3820b2
clean up uevent-watch test using writeFennel and mainFunction
...
requires less cavorting with globals and stuff
2024-04-20 16:53:43 +01:00
771585546d
import expect= where previously it was copy-pasted
2024-04-20 15:09:50 +01:00
73abf952d5
package minisock, a minimal Lua socket library
2024-04-20 15:09:17 +01:00
8af4e9fd5b
package anoia assert macros and point fennelrepl at them
2024-04-20 14:59:14 +01:00
7e19d80130
anoia: add assert macro module
...
contains expect and expect=
2024-04-20 14:04:32 +01:00
0f0688c802
think
2024-04-20 14:03:48 +01:00
b43f17f655
think
2024-04-20 12:23:04 +01:00
adf62d4483
arhcive: make it work when disk is attached before boot
...
This is a bit of a kludge (a lot of a kludge) but it will
get it running whilt I work on something better
2024-04-17 18:49:30 +01:00
68eb1360f6
use appended dtb in gl-mt300n-v2 tftpboot
...
probably the A variant needs this as well
2024-04-17 18:48:19 +01:00
19ad6cd278
watchdog: put s6 pkg on $PATH for s6-svstat
2024-04-17 13:01:10 +01:00
00076c7b81
mount service: use uevent-watch
2024-04-17 12:59:13 +01:00
721e7499f3
arhcive: use usb module instead of harcoded kconfig
2024-04-17 12:53:43 +01:00
fc723b9a35
think
2024-04-16 18:59:01 +01:00
a5f16dfa81
convert inout test to use uevent-watch
2024-04-15 22:15:27 +01:00
41a4b1f7ef
clean cruft from inout test script
2024-04-15 22:00:44 +01:00
42a5699326
remove unneeded config from inout test
2024-04-15 21:19:18 +01:00
ea2b25168e
add uevent-watch, which toggles services based on uevent msgs
2024-04-15 21:15:07 +01:00
5564cf0554
add nellie.close
2024-04-14 22:45:29 +01:00
f3a13630d3
add multicast groups param to nellie.open
2024-04-14 22:45:29 +01:00
f233acf9ff
netlink uevent hello world
2024-04-14 22:45:29 +01:00
b6a054c588
add mdevd as module
...
following the upstream example, it republishes uevent messages
using multicast group 4 instead of group 2 as used by udev.
2024-04-14 21:59:23 +01:00
b231664a06
anoia: add basename, dirname
2024-04-11 23:11:20 +01:00
f4bf3029fa
anoia: alphabetize exports
2024-04-11 23:11:13 +01:00
05f2c9a2f7
add lua in nix-shell environment
2024-04-11 23:11:06 +01:00
5df5c822ea
convert mount service to trigger
...
Good: this means it's not hanging holding the s6 dataase lock.
Bad: it's the ugliest implementation and doesn't deserve to be preserved
(tbf the ugliness is not new)
2024-04-03 23:17:36 +01:00
4795dd05b7
unconditionally restart trigger services on liminix-rebuild
...
We call s6-rc -u -p default to restart/start the base services
on a rebuild, otherwise services that are only in the new
configuration won't come up. However, this stops any service
started by a trigger. So, workaround is to restart the trigger
service and expect it to restart the services it manages if they're
needed
2024-04-03 23:07:56 +01:00
a192f08881
remove missing module
2024-03-29 17:34:10 +00:00
a873dc6608
Merge commit 'efcfdcc'
2024-03-28 23:47:04 +00:00
2fb4756a7f
add soft restart option to liminix-rebuild
...
instead of doing a full reboot, it runs activate / and uses
s6-rc-update to install the new service database
2024-03-28 23:45:10 +00:00
04f5174425
fix vanilla-configuration defaultroute
2024-03-28 22:13:21 +00:00
dca2e4def1
fix params to s6-rc-init
...
flags must precede scandir otherwise they're ignored
2024-03-28 21:56:28 +00:00
b60126775a
improve liminix-rebuild test
...
* make it executable
* improve robustness
* do't hardcode services.default (why did it do this?)
2024-03-28 21:37:47 +00:00
76f11bcc93
liminix-rebuild: remove -f flag from reboot call
...
now we have timeouts in service definitions, shouldn't need this
any more
2024-03-28 21:37:47 +00:00
efcfdcc21d
think
2024-03-28 20:59:39 +00:00
77f1a78331
ifwait block if s6-rc lock is held
...
otherwise it doesn't trigger the service if something else is
slow to start
2024-03-28 20:59:39 +00:00
28a5dec7dd
implement ifwait trigger service and use in bridge
...
should we convert all ifwait uses to this trigger too? seems
reasonable
2024-03-28 20:59:39 +00:00
fad0a47b75
add config.system.callService
...
this is like pkgs.callService except that it passes
config.system.service as a param so that the service
being defined can invoke other services
if this proves to be a good idea, all uses of
pkgs.callService should be changed to use it instead
2024-03-28 20:59:39 +00:00
af52aafc84
deep thoughts
2024-03-28 20:59:39 +00:00
34442b6069
failing test for ifwait
2024-03-28 20:59:39 +00:00
b8a46fc05e
allow buildInputs param to s6 service
...
this is in preparation for trigger services that need to
close over the triggered service without adding it to
s6-rc dependencies
2024-03-28 20:58:53 +00:00
8ac2c6cec1
support timeouts (default 30s) for starting s6-rc services
2024-03-28 20:58:47 +00:00
8879b2d1ba
fix rt2x00 wifi
2024-03-28 20:58:39 +00:00
83e346d5a0
add deviceName param
2024-03-22 21:55:44 +00:00
156b1fe64a
deep thoughts
2024-03-22 21:54:38 +00:00
1a314e55b7
firewall module: provide default rules and merge extraRules
...
a firewall with no configuration will get a relatively sane ruleset. a
firewall with `extraRules` will get them deep merged into the default
rules. Specifying `rules` will override the defaults
2024-03-21 12:00:34 +00:00
9263b21faa
create gateway profile by extracting from rotuer example
2024-03-21 10:04:42 +00:00
0a820a702a
extneder: delete nftables kernel config
...
don't need nftables on a bridge. (do we? hope not)
2024-03-20 19:05:31 +00:00
4ea518e296
expose modulesPath to ease out-of-tree configuration.nix
2024-03-20 18:58:44 +00:00
98318b450d
deep thoughts
2024-03-16 20:16:49 +00:00
e4ac7f19dc
fix ifwait deps
2024-03-16 20:16:49 +00:00
9c22744850
deep thoughts
2024-03-16 20:16:49 +00:00
c697be8c28
temporary fix for cmake cross-compilation
2024-03-16 20:16:49 +00:00
202a37221a
Merge pull request 'tftpboot: use commandLineDtbNode' ( #11 ) from flokli/liminix:tftpboot-honor-commandLineDtbNode into main
...
Reviewed-on: dan/liminix#11
2024-03-16 18:18:18 +00:00
436eb03a7b
tftpboot: use commandLineDtbNode
...
config.boot.commandLineDtbNode can be set from `bootargs` to
`bootargs-override` (used for boards where the u-boot on the board does
set `bootargs` on its own).
In that case, the code updating the cmdline for tftpboot purposes also
needs to update this node, not the `bootargs` node.
Otherwise the kernel won't find the phram device, as it never heard
about it, as it didn't get the necessary cmdline options.
2024-03-16 20:06:38 +02:00
e5963ae3f7
deep thoughts
2024-03-06 23:19:47 +00:00
f164f19d95
service starts and stops
2024-03-06 23:19:47 +00:00
dd4ab41f6a
rename run-event
2024-03-06 23:19:47 +00:00
5d5dff6729
WIP add failing test that service starts
2024-03-06 23:19:47 +00:00
570d29c368
pass command line params to run instead of reffing global
2024-03-06 23:19:47 +00:00
725af00dc9
improve test for dummy0 up
...
if we run off the end of the events fixture, it didn't work
2024-03-06 23:19:47 +00:00
e1b932ec27
remove hardcoded filename in test event generator
2024-03-06 23:19:47 +00:00
7173b6fb1c
don't call os.exit
2024-03-06 23:19:47 +00:00
ed9548f21d
pass event producer fn as param
2024-03-06 23:19:47 +00:00
0787807a7f
ifwait: don't run on load if in test harness
2024-03-06 23:19:47 +00:00
38ed91f641
simplify assertion
2024-03-06 23:19:47 +00:00
ffe9603c39
remove file-scoped parameters var
2024-03-06 23:19:47 +00:00
cbd3dfefc5
ifwait fixture/test harness
2024-03-06 23:19:47 +00:00
018c1868b5
ifwait: use anoia.assoc
2024-03-06 23:19:47 +00:00
5184ff63f7
add anoia.nl, a convenience wrapper on netlink
2024-03-06 23:19:47 +00:00
35909c9a23
add netlink to fennelrepl
2024-03-06 23:19:47 +00:00
4383462199
deep thoughts
2024-03-06 23:19:47 +00:00
9730cdd63b
add assoc to anoia
2024-03-06 23:19:47 +00:00
095853214b
Merge pull request 'Fix kernel build on belkin' ( #10 ) from sinavir/liminix:fix_kernel_build_on_belkin into main
...
Reviewed-on: dan/liminix#10
2024-03-06 18:21:13 +00:00
9d6e50cbbc
extract extneder example to a "profile"
...
this is a bit of an experiment to reduce the copy-paste in
examples by turning them into "application" modules.
planning to follow up with another module for "wifi router"
2024-02-27 23:13:12 +00:00
94dbc56595
fix doc
2024-02-27 20:08:30 +00:00
2cd7f932eb
alignment may be null
2024-02-27 19:47:46 +00:00
sinavir
27c7735f02
belkin-RT3200: fix kernel options
2024-02-22 21:57:40 +01:00
sinavir
29c9de248d
fix import of openwrt sources
2024-02-22 21:57:33 +01:00
3ca0d87c27
ci.nix: alphabetise systems
2024-02-21 19:49:14 +00:00
8f30db58ae
New port to Zyxel NWA50AX: update NEWS and ci.nix
2024-02-21 19:32:50 +00:00
f9ab0590a6
Merge remote-tracking branch 'raito/nwa50ax'
2024-02-21 19:27:23 +00:00
84fa8d65f4
fennel: system: verbose log of command that was run
2024-02-21 19:27:14 +00:00
9b0149ecb7
deep thoughts
2024-02-21 19:26:33 +00:00
Raito Bezarius
baf3cf7413
devices/zyxel-nwa50ax: fix dual image mgmt after DTB expansion
...
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 03:13:35 +01:00
Raito Bezarius
c5145b5fc9
devices/zyxel-nwa50ax: make zyxel-bootconfig executable
...
Otherwise, it doesn't work well…
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 03:13:21 +01:00
Raito Bezarius
628f4dfdbe
devices/zyxel-nwa50ax: developer todo
...
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 03:13:21 +01:00
Raito Bezarius
da59e2a349
devices/zyxel-nwa50ax: complete documentation
...
It covers everything I know more or less.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:57:34 +01:00
Raito Bezarius
c0a9571a13
devices/zyxel-nwa50ax: upgrade MT7915 firmware from OpenWRT repository
...
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:57:34 +01:00
Raito Bezarius
d6ffdd7be6
devices/zyxel-nwa50ax: expose primary and secondary images
...
To support A/B a bit better.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:57:34 +01:00
Raito Bezarius
985f982435
examples/nwa50ax-ap: support bridge between lan and ethernet
...
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:48:50 +01:00
Raito Bezarius
a893c0dc4c
devices/zyxel-nwa50ax: use our own more advanced DTB
...
OpenWRT had a DTB for the NWA50AX LEDs that I didn't pick up.
Anyway, we need to include our own special DTB for the NWA platform in general
to support A/B operations, because OpenWRT original one just mark everything else read-only.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:48:50 +01:00
Raito Bezarius
3ec29dc1b9
examples/nwa50ax-ap: ensure mtdutils is available for further flashing
...
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:48:50 +01:00
Raito Bezarius
0e81953b67
devices/zyxel-nwa50ax: cleanup of flash attribute and rootDevice
...
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:48:50 +01:00
Raito Bezarius
3c70a0d037
devices/zyxel-nwa50ax: ensure bridge is always available
...
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:48:50 +01:00
Raito Bezarius
422f3edab1
modules/zyxel-dual-image: init
...
This adds a simple boot blessing module, to be used, with the Zyxel NWA50AX.
There's a lot of elephant in the rooms: how do you upgrade kernel, etc.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:48:50 +01:00
Raito Bezarius
c14b2f6356
modules/busybox: add dhcprelay
...
This enables to run a DHCP relay from multiple interfaces.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:48:50 +01:00
Raito Bezarius
cdafff2095
examples/nwa50ax-ap: init
...
This is a quite comprehensive example using maximally the hardware
available to reach nice performance.
In the future, I will even add RADIUS examples.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-19 02:48:50 +01:00
Raito Bezarius
13f1bb9f52
devices/zyxel-nwa50ax: init
2024-02-19 02:48:48 +01:00
Raito Bezarius
019fef6929
zyxel-bootconfig: init at no version
...
This tool is useful for manipulating the A/B boot status of the image.
2024-02-18 20:30:41 +01:00
Raito Bezarius
63007859c2
modules/outputs/zyxel-nwa-fit: init
...
Zyxel "firmware" format is just… a FIT with some metadata on the models.
This FIT is like this:
--------------------------
uImage FIT header
--------------------------
Linux kernel
--------------------------
FDT DTB
--------------------------
Padding so that
this makes
8192kb [1]
--------------------------
UBI volume
as a root filesystem
--------------------------
We just reproduce this in a very brutal and naive way.
In the future, this seems worth to generalize and modularize this idea
so that zyxel-nwa-fit is just an instance of a more general output.
[1]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/ramips/image/mt7621.mk;h=ab1b829ba0086cb9fc9ca8cbbf3cbc14735034d6;hb=refs/heads/main#l3097
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-18 20:30:41 +01:00
Raito Bezarius
e9ab8d7183
modules/outputs/ubivolume: introduce ubinization
...
It creates an UBI image based on an UBI volume configuration.
For now, it creates only an empty rootfs.
2024-02-18 20:30:41 +01:00
Raito Bezarius
3dc58de0eb
modules/outputs: expose commandLineDtbNode option
...
We allow `bootargs` and `bootargs-override` for now only.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-18 20:30:41 +01:00
Raito Bezarius
dde8386f75
builders/uimage: support aligning the FIT
...
This is necessary when writing to a MTD partition with a certain erasesize.
2024-02-18 20:30:41 +01:00
Raito Bezarius
c59364d623
modules/outputs/ubifs: expose rootubifs rather than rootfs
...
I believe there should be another module exposing `rootubifs` as `rootfs`
or let any other module just subsume that component like `zyxel-nwa-fit` output.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-18 20:30:41 +01:00
Raito Bezarius
b76c5b4abe
modules/ubifs: revamp to offer directly access to the UBIfs partition
...
Adds the LEB and PEB option and let the user remove the boot image in case
where U-Boot does not support UBI boot.
2024-02-18 20:30:41 +01:00
Raito Bezarius
0a8343be66
pkgs/kernel/uimage: introduce commandLineDtbNode
...
Certain devices like the Zyxel NWA50AX will pass information on the command-line
to explain what is the current image (`bootImage=1` vs. `bootImage=0`).
Unfortunately, if we set the `chosen/bootargs` node, this will be overridden forcibly
by U-Boot.
To avoid this problem, it's easier to simply just use another DTB node like `bootargs-override` which
is what OpenWRT does [1].
[1]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch;h=e7dca7af886e8c0b69ba2b23f5855ddfeeb0d4a1;hb=refs/heads/main
Signed-off-by: Raito Bezarius <masterancpp@gmail.com >
2024-02-18 20:30:41 +01:00