Commit Graph
100 Commits
Author SHA1 Message Date
Daniel Barlow 708350711b allow running scripts using fennelrepl
e.g.

FENNEL_PATH=pkgs/?/init.fnl\;pkgs/?.fnl nix-shell --run "fennelrepl ./examples/acquire-delegated-prefix.fnl /tmp/boo eth1"
2023-07-08 23:08:24 +01:00
Daniel Barlow e7de889403 explain why all the examples are misspelled 2023-07-07 17:45:23 +01:00
Daniel Barlow a12e5888e9 rotuer: remove hardcoded wan address 2023-07-05 20:34:30 +01:00
Daniel Barlow 2de4d7a8f9 fennel: extract some common functions into a shareable module 2023-07-05 20:23:27 +01:00
Daniel Barlow c3bb33c9ce add fennelrepl package
Runs fennel using a Lua compiled with the same options as the
host system, and with packages set up so it can find all the local
Lua packages

To shorten the dev feedback loop further, allows FENNEL_PATH to be set
on the command line so you can point directly it at the Fennel sources
for some library you're working against instead of having to run
nix-build and compile them to Lua
2023-07-04 22:58:51 +01:00
Daniel Barlow 24befe6bf7 install fennel from source as a package
nixos lua packaging is giving me a headache
2023-07-04 22:56:17 +01:00
Daniel Barlow 41687e916d rename luaSmall package to lua 2023-07-02 18:19:54 +01:00
Daniel Barlow 3900683413 simplify protocol for watchers of service output directories
Previously: the service wrote a timestamp and the receiver
read and parsed it to see if there was new data

Now: the service writes and removes a .lock file to prevent
the receiver reading partial data. The receiver is responsible
for remembering the *previous* state and only updating if it's changed
2023-07-02 12:09:13 +01:00
Daniel Barlow 5532144747 hardcode global wan address, temporarily 2023-07-01 12:50:06 +01:00
Daniel Barlow 9aa5ff6ed1 make a package for odhcpc-script 2023-06-30 20:02:03 +01:00
Daniel Barlow b6e72504d6 ipv6 default route
needs to specify the ppp0 *peer* address not the local address
2023-06-30 10:17:33 +01:00
Daniel Barlow 5306b36181 ipv4 nat rules 2023-06-28 23:51:37 +01:00
Daniel Barlow 1f1164cc98 allow dhcp client on wan 2023-06-28 23:51:21 +01:00
Daniel Barlow 8affb151b5 rotuer: enable ipv6 forwarding 2023-06-28 22:31:01 +01:00
Daniel Barlow a9848b9668 firewall: enable incoming ssh and dhcp6 2023-06-28 22:20:45 +01:00
Daniel Barlow 25eecabc6d typo 2023-06-28 22:19:11 +01:00
Daniel Barlow 80b6f62896 comment-out example of allowed incoming 2023-06-27 22:33:24 +01:00
Daniel Barlow c595ae0ccb firewallgen: make nft shebang work 2023-06-27 21:26:23 +01:00
Daniel Barlow 64e0ef5931 use numeric proto number (tautology...) for HIP 2023-06-27 21:25:30 +01:00
Daniel Barlow 78d223a839 move nftables fib rule to the prerouting hook 2023-06-27 21:23:15 +01:00
Daniel Barlow 6101f3f3d8 load necessary kernel modules for firewall 2023-06-27 21:18:09 +01:00
Daniel Barlow 89693af82b thonk 2023-06-26 20:50:18 +01:00
Daniel Barlow 591bd78509 extract writeKconfig to its own file 2023-06-26 20:49:43 +01:00
Daniel Barlow 15be80e9de remove dead config option 2023-06-22 17:46:57 +01:00
Daniel Barlow bc62f7df45 remove rsync openssl dependency 2023-06-22 17:34:44 +01:00
Daniel Barlow 26cb331d8b remove dead config optiuon 2023-06-22 16:56:30 +01:00
Daniel Barlow 5e45817f98 example rotuer-secrets 2023-06-22 16:54:24 +01:00
Daniel Barlow 943820d4dd add doc note about finding supported devices 2023-06-22 10:06:40 +01:00
Daniel Barlow fc620df322 thunk 2023-06-22 09:40:27 +01:00
Daniel Barlow 6bc45c2b55 preinit: null-terminate argv array for execve 2023-06-22 09:29:44 +01:00
Daniel Barlow b898364719 extend timeout for pppoe test 2023-06-20 23:39:46 +01:00
Daniel Barlow 0896c9c1d3 remove non-building ntp service from test config 2023-06-20 22:15:38 +01:00
Daniel Barlow b002a94e07 rotuer: use firewallgen to make packet filter rules 2023-06-20 20:20:32 +01:00
Daniel Barlow d79a1e15bb get fennel from source instead of luarocks 2023-06-20 20:19:11 +01:00
Daniel Barlow 340f7211ef remove unused packages 2023-06-20 20:13:59 +01:00
Daniel Barlow 3dd247a719 update arch for gl-ar750
not sure this is needed, tbh
2023-06-20 20:11:25 +01:00
Daniel Barlow c1ba067fad remove deps from chrony
it's trying to build Perl and all manner of stuff that for
our purposes I don't think we need
2023-06-20 20:09:17 +01:00
Daniel Barlow 435a36f267 delete unused derivations in overlay 2023-06-20 20:06:36 +01:00
Daniel Barlow ce207e4763 chronyd: disable editline
it drags in ncurses, which is Too Much
2023-06-19 21:37:06 +01:00
Daniel Barlow a7e7146887 preinit: disable nolibc
- it stopped working with 22.11->23.05
- linking statically against musl is about 17k, so
  this is costing us 11k or so
2023-06-18 23:04:26 +01:00
Daniel Barlow d66f5901a2 fix nftables syntax 2023-06-18 22:18:44 +01:00
Daniel Barlow a65bb9d585 improve file-exists? function 2023-06-18 17:41:09 +01:00
Daniel Barlow 80639a7256 add firewallgen package, which creates an nft script 2023-06-18 17:40:16 +01:00
Daniel Barlow 994cca671b þe saga continueth 2023-05-31 23:30:41 +01:00
Daniel Barlow 3f4dbfcfd3 ipv6 prefix delegation for rotuer
much tidying needed, but it works
2023-05-31 23:29:05 +01:00
Daniel Barlow d82173133c odhcpc script: mkdir 2023-05-30 21:00:20 +01:00
Daniel Barlow 19212b1eeb add funky dd features reqd by ath10k_cal_data 2023-05-30 18:20:42 +01:00
Daniel Barlow cb30ce52eb rotuer: use writeFennelScript for odhcpc update script 2023-05-30 18:20:14 +01:00
Daniel Barlow fdffdbb22a add writeFennelScript function, make ifwait use it 2023-05-29 20:20:12 +01:00
Daniel Barlow fa7e682e87 dhcp6c readiness notification 2023-05-26 18:36:44 +01:00
Daniel Barlow 447f068569 partly support getting IPv6 addresses
- gets interface id from ppp
- runs odhcpc to get RA and prefix delegation
- doesn't do anything useful with the data yet
2023-05-24 23:01:50 +01:00
Daniel Barlow 339c2d9873 upgrade to ppp 2.5.0 2023-05-22 23:31:57 +01:00
Daniel Barlow 3f6585f6be mention min-copy-closure 2023-05-22 00:27:41 +01:00
Daniel Barlow e83b33686f typo 2023-05-22 00:20:52 +01:00
Daniel Barlow 35a5605266 improve(?) markup 2023-05-22 00:14:32 +01:00
Daniel Barlow 4429f2b177 grammar 2023-05-21 23:48:10 +01:00
Daniel Barlow 43fa9f0679 link to OpenWrt serial console docs 2023-05-21 23:41:42 +01:00
Daniel Barlow 805c2f7984 update CoC 2023-05-21 23:31:28 +01:00
Daniel Barlow 7bcf6b15c3 declare build product 2023-05-21 21:27:52 +01:00
Daniel Barlow 7020fa99ee build manual in CI 2023-05-21 20:53:05 +01:00
Daniel Barlow bc27f121d9 /etc/ashrc for interactive non-login shells 2023-05-21 17:08:32 +01:00
Daniel Barlow 0173a9ced9 set PATH correctly in ssh sessions
for a non=interactive shell ("ssh linminix foo") ash does not source
*any* startup files, so we need to set this to something more useful
than /bin:usr/bin
2023-05-21 17:07:19 +01:00
Daniel Barlow a48d51ffdc keep dropbear host keys in /persist if it exists 2023-05-21 12:01:42 +01:00
Daniel Barlow f249c12bec cruft 2023-05-20 22:48:30 +01:00
Daniel Barlow b363840901 min-collect-garbage and next steps 2023-05-20 22:48:05 +01:00
Daniel Barlow eadd982a79 rotuer: set hostname 2023-05-20 22:34:57 +01:00
Daniel Barlow 39b09df4d7 liminix-rebuild: test if nix-build succeeds 2023-05-20 22:30:22 +01:00
Daniel Barlow ea2f48cfc9 liminix-rebuild copy nix-store-paths to /persist 2023-05-20 21:55:37 +01:00
Daniel Barlow b0098f1c8e move min-list-garbage into min-collect-garbage pkg
we don't want it in the same package as min-copy-closure as
that depends on bash
2023-05-20 21:55:23 +01:00
Daniel Barlow 68ab6faeb3 write etc/nix-store-paths in systemConfiguration 2023-05-19 23:57:50 +01:00
Daniel Barlow 00aeb81811 min-list-garbage: check all store paths against file
this is step 1 of min-collect-garbage, no point implementing
deletion ourselves when rm -r exists

(arguably no point in implementing any of it, but this is the bit we
can't do efficiently in bourne shell - it means we're reading the
store-paths list once instead of grepping it afresh for every entry in
/nix/store/)
2023-05-19 23:49:11 +01:00
Daniel Barlow a809c28dde liminix-rebuild source /etc/profile to get PATH for reboot 2023-05-18 22:43:08 +01:00
Daniel Barlow 292a4c4d46 liminix-rebuild: put activate in /persist 2023-05-17 22:49:10 +01:00
Daniel Barlow 4cb4399a1c remove standard.nix modues from qemu test
qemu kernel can't be configured for CONFIG_MTD_SPLIT_UIMAGE_FW
required by flashimage
2023-05-17 21:51:54 +01:00
Daniel Barlow 07b92b5df3 more thought 2023-05-17 15:38:22 +01:00
Daniel Barlow aa3b635f61 bordervm: add sshd, usbutils 2023-05-17 15:38:22 +01:00
Daniel Barlow 648ac2eb7f Document jffs2, min-copy-closure, liminix-rebuild
Some of the code is now out of date w.r.t. some of the text
2023-05-17 15:38:22 +01:00
Daniel Barlow b1f4db00a0 add liminix-rebuild command 2023-05-17 15:38:22 +01:00
Daniel Barlow b0a0fdcfcc add "standard" module, which includes flashimage kexec & jffs2
most systems need most of these, so it makes writing the docs a
lot easier
2023-05-17 15:38:22 +01:00
Daniel Barlow 6870abfe83 add min-copy-closure to buildEnv 2023-05-11 23:53:25 +01:00
Daniel Barlow ddd7b68b30 min-copy-closure: remove verbose output 2023-05-11 23:52:13 +01:00
Daniel Barlow 6184148dfd add example host config for bordervm ethernet 2023-05-10 21:38:46 +01:00
Daniel Barlow b70c8ee258 support USB ethernet in bordervm 2023-05-09 22:58:56 +01:00
Daniel Barlow 55387b0ee3 extract common shell fns in tests 2023-05-07 23:01:24 +01:00
Daniel Barlow d8cc6ab61c eth1 is lan in qemu 2023-05-07 22:52:09 +01:00
Daniel Barlow cc6c790746 set up path for min-copy-closure 2023-05-07 22:51:10 +01:00
Daniel Barlow bcf5dac5d7 min-copy-closure: honour $SSH_COMMAND env var 2023-05-07 22:07:35 +01:00
Daniel Barlow 1c002c4065 min-copy-closure: improve output 2023-05-07 22:06:49 +01:00
Daniel Barlow 2af8f2382a test min-copy-closure 2023-05-07 22:02:10 +01:00
Daniel Barlow 74f2aa6247 initramfs-peek: an initramfs image with a shell, for debugging 2023-05-06 23:03:51 +01:00
Daniel Barlow 888a0d5f74 mips-vm: allow env var to override la network interface
this is handy if you want to connect to it from the host
for e.g. seeing if min-copy-closure works
2023-05-06 23:01:56 +01:00
Daniel Barlow 30153a2d4e add min-copy-closure, a minimal nix-copy-closure substitute 2023-05-06 22:47:03 +01:00
Daniel Barlow 67768004ee erase full flash, it seems to help with jffs2 2023-04-26 22:19:01 +01:00
Daniel Barlow 26c6eac937 delete config boot.tftp.enable as it doesn't enable anything 2023-04-26 22:18:23 +01:00
Daniel Barlow 4cfaed7303 specify root device as /dev/mtdblockn
the (openwrt?) magic that autodetects it based on mtd labels
won't work with a two-stage boot
2023-04-26 22:16:15 +01:00
Daniel Barlow 6d6dbe1cbb tftpboot: allow padding image with freeSpaceBytes
this is useful for writable filesystems so that there's more than
an erase block of space to write into
2023-04-26 22:15:19 +01:00
Daniel Barlow 151dc88c28 little evidence of thinking 2023-04-23 21:24:37 +01:00
Daniel Barlow 2f3b108ef1 tftpboot: set phram erase block size to match hardware
this is needed for tftp boot with a jffs2 filesystem
2023-04-23 21:24:37 +01:00
Daniel Barlow 6adab44fcf rotuer; run chronyd for accurate time 2023-04-23 20:56:20 +01:00
Daniel Barlow 4342d3403f make rotuer example build again 2023-04-23 20:56:20 +01:00