Commit graph

45 commits

Author SHA1 Message Date
Daniel Barlow
28264febdb add smaller-than-gnu "hello world" package 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
ad3ef53171 ntp: don't install manpages, docs etc 2023-04-18 23:57:15 +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
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
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
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
045f10e79b build kexec statically 2023-03-24 17:12:19 +00:00
Daniel Barlow
e84285e576 remove second copy of lua 2023-03-23 13:18: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
9f9558c9e8 style: let inherit fetchpatch 2023-03-18 14:30:10 +00:00
Daniel Barlow
4596bc3e88 build smaller versions of hostap and nftables 2023-03-06 17:49:59 +00:00
Daniel Barlow
aa5f8c07e6 don't patch s6 if new enough not to need it 2023-03-06 17:49:11 +00:00
Daniel Barlow
a8cb872859 add service name to log lines 2023-03-04 23:08:25 +00:00
Daniel Barlow
08bed15cf8 ssh service
- dropbear
- generate host keys on first use
- mount /dev/pts

It's not ideal having the host key disappear when the device is
reboot, but without persistent storage the alternative is generating
it at build time. Deferring this problem to another time
2023-03-04 12:10:06 +00:00
Daniel Barlow
fd500041fa move new packages to pkgs/default.nix 2023-03-03 22:21:27 +00:00
Daniel Barlow
626a365f79 replace waitup with more generally useful ifwait
* wait for $interface present before ip link set up dev
* wait for wlan0 running before adding to bridge
2023-03-01 18:16:01 +00:00
Daniel Barlow
59ce03630a consistent ownership/permissions for /run/service-state/** 2023-02-25 22:53:06 +00:00
Daniel Barlow
03aec58c2c add "waitup", s6 readiness helper for network interfaces
run e.g. "waitup wlan0 10" to wait until wlan0 is operationally
up and running, and then send a newline to file descriptor 10
2023-02-24 23:22:28 +00:00
Daniel Barlow
751920c8fc qemu: switch to building wireless as kernel modules
This is a hefty change

* add support for kernel backports project
* build wireless stack/drivers as modules from a backported kernel
* create a service to load/unload the modules
2023-02-22 18:41:41 +00:00
Daniel Barlow
05576eeb94 harcode paths for kpppoed, add port num in config 2023-02-17 00:09:02 +00:00
Daniel Barlow
e84833e52f WIP create VM for pppoe and tftpd 2023-02-15 22:06:28 +00:00
Daniel Barlow
8cead61740 convert devices from overlay to module
this makes it possible for devices to stash things in
`config` (e.g. pathname to DTS) that can later be overwritten
(even by the end user)
2023-02-10 17:54:33 +00:00
Daniel Barlow
4addcbbd51 turn run-qemu.sh script into mips-vm buildEnv command 2023-02-08 22:17:06 +00:00
Daniel Barlow
cc7daeabb3 add routeros to overlay 2023-02-08 18:13:35 +00:00
Daniel Barlow
f1b7780537 speed up kernel build
by having two separate derivations for patching the kernel source tree
and building it, we have to copy said source trees from one store
location to another which takes non-neglible time on spinning rust
(literally minutes on my machine). Replace with a single derivation
that can do more things on one tree in-place
2022-10-19 17:34:22 +01:00
Daniel Barlow
20b9eb16ec make dnsmasq smaller
remove dependency on nettle -> gmp -> glibc
2022-10-08 20:05:17 +01:00
Daniel Barlow
8da5a88e07 build real lzma 2022-10-05 18:19:09 +01:00
Daniel Barlow
e7987c9520 add build-host tftp server 2022-10-04 23:08:43 +01:00
Daniel Barlow
c320d0afc7 add dnsmasq and example config for it
would be good to move more of this into a module, but that
doesn't sit well with the (potential) ability to run more than one
dnsmasq service, as modules are singletons
2022-09-28 21:33:18 +01:00
Daniel Barlow
e2650aa162 add pppoe derivation, replacing override
we use a custom installPhase so we don't drag in a bunch of
scripts that we don't need and don't work
2022-09-27 22:04:22 +01:00
Daniel Barlow
4cbe669783 move make-image to subdirectory 2022-09-27 16:47:42 +01:00
Daniel Barlow
797aa30c47 make s6-init-files into a module 2022-09-27 10:19:44 +01:00
Daniel Barlow
c6c6b51893 make s6-rc-database a package 2022-09-26 15:59:21 +01:00
Daniel Barlow
d5ccecf038 make "shutdown" work
create a package for the s6-compatible shutdown/halt/poweroff
commands and put it on the path ahead of busybox
2022-09-26 14:13:23 +01:00
Daniel Barlow
676c94782b separate files for networking and services 2022-09-26 12:26:54 +01:00
Daniel Barlow
01aa423dad pkgs.writeAshScript is similar to writeShellScript but busybox 2022-09-25 20:50:20 +01:00
Daniel Barlow
c1835d97ee add pppoe 2022-09-25 11:54:31 +01:00
Daniel Barlow
e46abbccca put liminix-tools in package overlay 2022-09-22 11:10:41 +01:00
Daniel Barlow
45025f128a switch to s6-linux-init and s6-rc
This is at the point where it runs a getty and a pile of s6-supervise
processes, though it doesn't seem to run the things being supervised
2022-09-21 23:01:21 +01:00
Daniel Barlow
4b118bca19 generate a mips squashfs with some s6-rc services
haven't even tried booting it but I don't expect it to work. Needs

- s6-linux-init or some other pid 1 program
- a kernel
2022-09-19 23:51:38 +01:00