Commit graph

526 commits

Author SHA1 Message Date
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
Daniel Barlow
28264febdb add smaller-than-gnu "hello world" package 2023-04-23 20:56:20 +01:00
Daniel Barlow
2c4f8b823e remove jffs2boot target
It's not needed now initramfs is compiled into the kernel.
2023-04-23 20:56:20 +01:00
Daniel Barlow
3595e36294 workaround for huge musl binaries
something in our configuration is causing gcc to generate binaries
in excess of 68K for "hello world". hardeningDisable seems to stop it
doing that, turning it on for s6 which writes _lots_ of binaries
but would be good to get to the bottom of this

https://discourse.nixos.org/t/crosscompilation-to-musl32-problems/3110
may have more
2023-04-22 23:04:03 +01:00
Daniel Barlow
245bf534e6 refactor: inline definition 2023-04-22 23:03:36 +01:00
Daniel Barlow
3feb8eb5f9 shrink hostap, build it without openssl 2023-04-22 22:17:35 +01:00
Daniel Barlow
c7aa8c7756 some notes on how we couldn't make it smaller 2023-04-19 22:03:18 +01:00
Daniel Barlow
c6b8a8488f build s6 with shared libraries 2023-04-19 21:44:06 +01:00
Daniel Barlow
99af416e14 use /bin/sh for init scripts 2023-04-19 21:41:05 +01:00
Daniel Barlow
ad3ef53171 ntp: don't install manpages, docs etc 2023-04-18 23:57:15 +01:00
Daniel Barlow
65dfbad365 systemconfig: chown files if uid/gid > 0 2023-04-15 22:53:28 +01:00
Daniel Barlow
5dd0c6e3c0 rewrite preinit as very small C program
By using the kernel "nolibc" header to avoid requiring a C library, we
can bring the initramfs size to around 4k

This does involve a tiny bit of inline mips assembly which I'm not
sure about. gcc seems unwilling to generate the code to load $gp at
function entry of main(), so we do it by hand - but I'd rather find
out why gcc doesn't.
2023-04-15 18:27:39 +01:00
Daniel Barlow
b1a89ae8c3 jffs2: squash uids, enable lzo compression 2023-04-15 17:23:58 +01:00
Daniel Barlow
11f2715d18 mips-vm: enlarge mtd 2023-04-15 17:22:35 +01:00
Daniel Barlow
1cc0b13b57 rewrite systemconfig in C and link statically
systemconfig (a.k.a "activate") is run from the initramfs. Converting
it from a shell script to an executable means it doesn't depend on
there being a shell in the initramfs
2023-04-15 17:21:27 +01:00
Daniel Barlow
c744ef8c17 systemconfig: accept uid and gid options
all we do with them is assert they're zero, to unbreak CI.
This code is getting rewritten anyway
2023-04-14 23:19:56 +01:00
Brian McKenna
fb796e61e0 pseudofile: allow setting uid and gid of files
Necessary for Dropbear to accept non-root authorized_keys files.
2023-04-14 23:12:52 +01:00
Daniel Barlow
9f3c80e774 make initramfs busybox (very slightly) smaller 2023-04-11 23:08:02 +01:00
Daniel Barlow
29c7af5892 set qemu flash erase block size 2023-04-10 22:57:51 +01:00
Daniel Barlow
2566dc564c remove need for symlinks in initramfs busybox 2023-04-10 22:57:50 +01:00
Daniel Barlow
0ad7b0e48b don't hardcode mtd0 initramfs->second stage 2023-04-10 22:57:50 +01:00