b70c8ee258
support USB ethernet in bordervm
2023-05-09 22:58:56 +01:00
55387b0ee3
extract common shell fns in tests
2023-05-07 23:01:24 +01:00
d8cc6ab61c
eth1 is lan in qemu
2023-05-07 22:52:09 +01:00
cc6c790746
set up path for min-copy-closure
2023-05-07 22:51:10 +01:00
bcf5dac5d7
min-copy-closure: honour $SSH_COMMAND env var
2023-05-07 22:07:35 +01:00
1c002c4065
min-copy-closure: improve output
2023-05-07 22:06:49 +01:00
2af8f2382a
test min-copy-closure
2023-05-07 22:02:10 +01:00
74f2aa6247
initramfs-peek: an initramfs image with a shell, for debugging
2023-05-06 23:03:51 +01:00
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
30153a2d4e
add min-copy-closure, a minimal nix-copy-closure substitute
2023-05-06 22:47:03 +01:00
67768004ee
erase full flash, it seems to help with jffs2
2023-04-26 22:19:01 +01:00
26c6eac937
delete config boot.tftp.enable as it doesn't enable anything
2023-04-26 22:18:23 +01:00
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
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
151dc88c28
little evidence of thinking
2023-04-23 21:24:37 +01:00
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
6adab44fcf
rotuer; run chronyd for accurate time
2023-04-23 20:56:20 +01:00
4342d3403f
make rotuer example build again
2023-04-23 20:56:20 +01:00
28264febdb
add smaller-than-gnu "hello world" package
2023-04-23 20:56:20 +01:00
2c4f8b823e
remove jffs2boot target
...
It's not needed now initramfs is compiled into the kernel.
2023-04-23 20:56:20 +01:00
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
245bf534e6
refactor: inline definition
2023-04-22 23:03:36 +01:00
3feb8eb5f9
shrink hostap, build it without openssl
2023-04-22 22:17:35 +01:00
c7aa8c7756
some notes on how we couldn't make it smaller
2023-04-19 22:03:18 +01:00
c6b8a8488f
build s6 with shared libraries
2023-04-19 21:44:06 +01:00
99af416e14
use /bin/sh for init scripts
2023-04-19 21:41:05 +01:00
ad3ef53171
ntp: don't install manpages, docs etc
2023-04-18 23:57:15 +01:00
65dfbad365
systemconfig: chown files if uid/gid > 0
2023-04-15 22:53:28 +01:00
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
b1a89ae8c3
jffs2: squash uids, enable lzo compression
2023-04-15 17:23:58 +01:00
11f2715d18
mips-vm: enlarge mtd
2023-04-15 17:22:35 +01:00
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
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
9f3c80e774
make initramfs busybox (very slightly) smaller
2023-04-11 23:08:02 +01:00
29c7af5892
set qemu flash erase block size
2023-04-10 22:57:51 +01:00
2566dc564c
remove need for symlinks in initramfs busybox
2023-04-10 22:57:50 +01:00
0ad7b0e48b
don't hardcode mtd0 initramfs->second stage
2023-04-10 22:57:50 +01:00
0a2881914b
set erase block size to something that works for jffs2
2023-04-10 22:57:50 +01:00
4638092d3d
build initramfs into kernel
...
this doesn't matter for qemu, but there's no other way of
getting a hardware device to find it if the bootloader
won't co-operate
2023-04-10 22:57:50 +01:00
633a4f8003
move BLK_DEV_INITRD to base.nix
2023-04-10 22:57:50 +01:00
fe99abc450
shrink rsync
...
remove openssl requirement, it uses it for "optimised assembly
versions" of md5 - but only on x86/arm/sparc not mips anyway
2023-04-10 22:57:50 +01:00
42725f56f9
make jffs2 module provide o.rootfs, conditionally
...
it's enabled if config.rootfsType == "jffs2"
2023-04-10 20:01:58 +01:00
63a89f7d0d
add config.boot.initramfs.enable
2023-04-10 19:07:27 +01:00
07eb3d66da
remove unused combined-image output
2023-04-10 18:15:48 +01:00
0687ae7f5c
rename flashable->flashimage, o.squashfs to rootfs
...
"rootfs" describes what it is for, "squashfs" merely says
how it's implemented
(also, rootfs-as-jffs2 will soon be added)
2023-04-10 18:13:27 +01:00
2e15acd61c
whitespace
2023-04-10 17:46:39 +01:00
18b35b1ca6
thinking ...
2023-04-10 17:36:00 +01:00
f5156425a2
correct jffs2 endian, remove unused bindings
2023-04-07 09:39:47 +01:00
db54c877d6
add CI test for jffs2
2023-04-06 20:58:26 +01:00