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
Daniel Barlow
0a2881914b
set erase block size to something that works for jffs2
2023-04-10 22:57:50 +01:00
Daniel Barlow
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
Daniel Barlow
633a4f8003
move BLK_DEV_INITRD to base.nix
2023-04-10 22:57:50 +01:00
Daniel Barlow
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
Daniel Barlow
42725f56f9
make jffs2 module provide o.rootfs, conditionally
...
it's enabled if config.rootfsType == "jffs2"
2023-04-10 20:01:58 +01:00
Daniel Barlow
63a89f7d0d
add config.boot.initramfs.enable
2023-04-10 19:07:27 +01:00
Daniel Barlow
07eb3d66da
remove unused combined-image output
2023-04-10 18:15:48 +01:00
Daniel Barlow
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
Daniel Barlow
2e15acd61c
whitespace
2023-04-10 17:46:39 +01:00
Daniel Barlow
18b35b1ca6
thinking ...
2023-04-10 17:36:00 +01:00
Daniel Barlow
f5156425a2
correct jffs2 endian, remove unused bindings
2023-04-07 09:39:47 +01:00
Daniel Barlow
db54c877d6
add CI test for jffs2
2023-04-06 20:58:26 +01:00
Daniel Barlow
54a1ab3529
support jffs2, with initramfs
...
the jffs2 filesystem contains only /nix/store and a script which is
run in early init (initramfs) and is responsible for recreating
"traditional" directories (/bin /etc/**/* /var &c) based on the
configuration.
this is tested only in qemu so far and could use some cleanup
2023-04-04 23:35:49 +01:00
Daniel Barlow
25d9da967c
remove support for sockets in pseudofiles
...
(1) we can't make them on a real filesystem except by running
something that calls socket()
(2) whyever would we want to?
2023-04-04 23:23:22 +01:00
Daniel Barlow
aa1a2e5d75
package gen_init_cpio, tool for making an initramfs
2023-04-04 22:54:20 +01:00
Daniel Barlow
f02efa3fe3
refactor
2023-04-04 21:11:28 +01:00
Daniel Barlow
342c87b256
qemu: boot from mtd using mtd2block
...
doesn't make much difference for squashfs but this will make it much
simpler to test jffs2/ubifs
2023-04-04 21:07:02 +01:00
Daniel Barlow
07e7d63ade
fixup 98243d43da
2023-04-02 18:46:27 +01:00
Daniel Barlow
3194262eb3
it has not been a production-ready week
2023-03-31 23:44:49 +01:00
Daniel Barlow
98243d43da
add mtdutils mkfs.jffs2 --graft option
...
we'd like a bit more of the convenience of mksquashfs
(never thought I'd say _that_) for jffs2, in particular
not having to copy all the desired store paths into a
single directory just so we can create an image from them
2023-03-31 23:42:13 +01:00
Daniel Barlow
e0bd64b80f
week source
2023-03-28 16:14:00 +01:00
Daniel Barlow
a5630c1f30
add cautionary note about flashing a running device
2023-03-26 10:21:36 +01:00
Daniel Barlow
a172180be8
don't set lua5_3 in overlay
...
sphinx depends on lua5_3, so overriding it globally means rebuilding
that - which isn't really necessary
2023-03-24 23:43:13 +00:00
Daniel Barlow
608d750b60
describe how to flash Liminix, and kexecboot
2023-03-24 23:39:06 +00:00
Daniel Barlow
f5a7b78679
rename kexec-tools-static
...
it doesn't build natively on x86-64 and I don't suppose we need it to
anyway
2023-03-24 20:51:46 +00:00
Daniel Barlow
3608cc5e33
add kenrel command line cookie to mips-vm script
2023-03-24 18:48:38 +00:00
Daniel Barlow
c831859513
add flashcp to allow flashing from a running system
2023-03-24 17:32:46 +00:00
Daniel Barlow
404162ac1e
support all kinds of boot for arhcive
...
now we can have flashable and tftpboot in the same configuration
2023-03-24 17:14:15 +00:00
Daniel Barlow
045f10e79b
build kexec statically
2023-03-24 17:12:19 +00:00
Daniel Barlow
4ea60a6082
watchdog support for mt300n-v2
2023-03-24 17:11:36 +00:00
Daniel Barlow
561d55ed5f
arhcive: rsync daemon needs a group
2023-03-24 17:10:49 +00:00
Daniel Barlow
a5cfa37ed3
unify kernel command line handling
...
We now use MIPS_CMDLINE_DTB_EXTEND for all boot varieties
(tftpboot, flash boot, kexec) with the addition of
MIPS_BOOTLOADER_CMDLINE_REQUIRE_COOKIE - local patch -
so that the bootloader args are ignored unless they
contain the string "liminix"
2023-03-23 22:24:44 +00:00
Daniel Barlow
1c36f1b373
demonstrate adding ssh keys
2023-03-23 13:18:05 +00:00
Daniel Barlow
beb6e260d4
PoC support for hardware watchdog
2023-03-23 13:18:05 +00:00
Daniel Barlow
e84285e576
remove second copy of lua
2023-03-23 13:18:05 +00:00
Daniel Barlow
64d8602408
some kexecboot notes
2023-03-19 20:27:43 +00:00
Daniel Barlow
8250d592ba
don't hardcode root device, too confusing when adding phram
2023-03-19 20:27:05 +00:00
Daniel Barlow
4b19568f1b
add kexecboot
...
This allows booting a new image from a running OS, creating a
phram mtd for the root squashfs
* enable CONFIG_KEXEC
* add modules/kexecboot
* patch kexec-tools to add --map-file option for the squashfs
* patch kernel kexec code to call new kernel with DTB
2023-03-19 20:25:43 +00:00
Daniel Barlow
429ffa8e7d
make applyPatches work for ramips
2023-03-19 20:25:23 +00:00
Daniel Barlow
efd878dc5e
extract common code for patching kernel source fdorm openwrt
2023-03-18 19:17:58 +00:00
Daniel Barlow
e40170f7d5
pppoe test: update to expect change in root's PS1
2023-03-18 19:16:27 +00:00
Daniel Barlow
b85492c744
when flashing, only need to erase the space we're writing
2023-03-18 14:50:09 +00:00
Daniel Barlow
3c6ec354ce
move root's home directory to /home/root
...
/ is a bad choice of home directory
/home/root instead of /root is to make it easier to write
ssh keys to the right place
2023-03-18 14:46:50 +00:00