Daniel Barlow
762ce7b6b8
cut/paste devout implementation into a real module
2024-04-20 22:48:00 +01:00
Daniel Barlow
b1c0560f4f
implement fetch by path
2024-04-20 22:20:43 +01:00
Daniel Barlow
e34135c41a
improve failed test reporting
2024-04-20 21:46:37 +01:00
Daniel Barlow
712c9b266f
implement find
2024-04-20 18:42:42 +01:00
Daniel Barlow
4df963996c
devout: add device
2024-04-20 18:24:10 +01:00
Daniel Barlow
349bfecbb8
new package "devout", does nothing yet
2024-04-20 17:45:40 +01:00
Daniel Barlow
450d3820b2
clean up uevent-watch test using writeFennel and mainFunction
...
requires less cavorting with globals and stuff
2024-04-20 16:53:43 +01:00
Daniel Barlow
771585546d
import expect= where previously it was copy-pasted
2024-04-20 15:09:50 +01:00
Daniel Barlow
73abf952d5
package minisock, a minimal Lua socket library
2024-04-20 15:09:17 +01:00
Daniel Barlow
8af4e9fd5b
package anoia assert macros and point fennelrepl at them
2024-04-20 14:59:14 +01:00
Daniel Barlow
7e19d80130
anoia: add assert macro module
...
contains expect and expect=
2024-04-20 14:04:32 +01:00
Daniel Barlow
ea2b25168e
add uevent-watch, which toggles services based on uevent msgs
2024-04-15 21:15:07 +01:00
Daniel Barlow
5564cf0554
add nellie.close
2024-04-14 22:45:29 +01:00
Daniel Barlow
f3a13630d3
add multicast groups param to nellie.open
2024-04-14 22:45:29 +01:00
Daniel Barlow
f233acf9ff
netlink uevent hello world
2024-04-14 22:45:29 +01:00
Daniel Barlow
b231664a06
anoia: add basename, dirname
2024-04-11 23:11:20 +01:00
Daniel Barlow
f4bf3029fa
anoia: alphabetize exports
2024-04-11 23:11:13 +01:00
Daniel Barlow
4795dd05b7
unconditionally restart trigger services on liminix-rebuild
...
We call s6-rc -u -p default to restart/start the base services
on a rebuild, otherwise services that are only in the new
configuration won't come up. However, this stops any service
started by a trigger. So, workaround is to restart the trigger
service and expect it to restart the services it manages if they're
needed
2024-04-03 23:07:56 +01:00
Daniel Barlow
a873dc6608
Merge commit 'efcfdcc'
2024-03-28 23:47:04 +00:00
Daniel Barlow
2fb4756a7f
add soft restart option to liminix-rebuild
...
instead of doing a full reboot, it runs activate / and uses
s6-rc-update to install the new service database
2024-03-28 23:45:10 +00:00
Daniel Barlow
76f11bcc93
liminix-rebuild: remove -f flag from reboot call
...
now we have timeouts in service definitions, shouldn't need this
any more
2024-03-28 21:37:47 +00:00
Daniel Barlow
77f1a78331
ifwait block if s6-rc lock is held
...
otherwise it doesn't trigger the service if something else is
slow to start
2024-03-28 20:59:39 +00:00
Daniel Barlow
b8a46fc05e
allow buildInputs param to s6 service
...
this is in preparation for trigger services that need to
close over the triggered service without adding it to
s6-rc dependencies
2024-03-28 20:58:53 +00:00
Daniel Barlow
8ac2c6cec1
support timeouts (default 30s) for starting s6-rc services
2024-03-28 20:58:47 +00:00
Daniel Barlow
8879b2d1ba
fix rt2x00 wifi
2024-03-28 20:58:39 +00:00
Daniel Barlow
e4ac7f19dc
fix ifwait deps
2024-03-16 20:16:49 +00:00
Daniel Barlow
f164f19d95
service starts and stops
2024-03-06 23:19:47 +00:00
Daniel Barlow
dd4ab41f6a
rename run-event
2024-03-06 23:19:47 +00:00
Daniel Barlow
5d5dff6729
WIP add failing test that service starts
2024-03-06 23:19:47 +00:00
Daniel Barlow
570d29c368
pass command line params to run instead of reffing global
2024-03-06 23:19:47 +00:00
Daniel Barlow
725af00dc9
improve test for dummy0 up
...
if we run off the end of the events fixture, it didn't work
2024-03-06 23:19:47 +00:00
Daniel Barlow
e1b932ec27
remove hardcoded filename in test event generator
2024-03-06 23:19:47 +00:00
Daniel Barlow
7173b6fb1c
don't call os.exit
2024-03-06 23:19:47 +00:00
Daniel Barlow
ed9548f21d
pass event producer fn as param
2024-03-06 23:19:47 +00:00
Daniel Barlow
0787807a7f
ifwait: don't run on load if in test harness
2024-03-06 23:19:47 +00:00
Daniel Barlow
38ed91f641
simplify assertion
2024-03-06 23:19:47 +00:00
Daniel Barlow
ffe9603c39
remove file-scoped parameters var
2024-03-06 23:19:47 +00:00
Daniel Barlow
cbd3dfefc5
ifwait fixture/test harness
2024-03-06 23:19:47 +00:00
Daniel Barlow
018c1868b5
ifwait: use anoia.assoc
2024-03-06 23:19:47 +00:00
Daniel Barlow
5184ff63f7
add anoia.nl, a convenience wrapper on netlink
2024-03-06 23:19:47 +00:00
Daniel Barlow
35909c9a23
add netlink to fennelrepl
2024-03-06 23:19:47 +00:00
Daniel Barlow
9730cdd63b
add assoc to anoia
2024-03-06 23:19:47 +00:00
sinavir
29c9de248d
fix import of openwrt sources
2024-02-22 21:57:33 +01:00
Daniel Barlow
f9ab0590a6
Merge remote-tracking branch 'raito/nwa50ax'
2024-02-21 19:27:23 +00:00
Daniel Barlow
84fa8d65f4
fennel: system: verbose log of command that was run
2024-02-21 19:27:14 +00:00
Raito Bezarius
c5145b5fc9
devices/zyxel-nwa50ax: make zyxel-bootconfig
executable
...
Otherwise, it doesn't work well…
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-02-19 03:13:21 +01:00
Raito Bezarius
422f3edab1
modules/zyxel-dual-image: init
...
This adds a simple boot blessing module, to be used, with the Zyxel NWA50AX.
There's a lot of elephant in the rooms: how do you upgrade kernel, etc.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-02-19 02:48:50 +01:00
Raito Bezarius
019fef6929
zyxel-bootconfig: init at no version
...
This tool is useful for manipulating the A/B boot status of the image.
2024-02-18 20:30:41 +01:00
Raito Bezarius
dde8386f75
builders/uimage: support aligning the FIT
...
This is necessary when writing to a MTD partition with a certain erasesize.
2024-02-18 20:30:41 +01:00
Raito Bezarius
0a8343be66
pkgs/kernel/uimage: introduce commandLineDtbNode
...
Certain devices like the Zyxel NWA50AX will pass information on the command-line
to explain what is the current image (`bootImage=1` vs. `bootImage=0`).
Unfortunately, if we set the `chosen/bootargs` node, this will be overridden forcibly
by U-Boot.
To avoid this problem, it's easier to simply just use another DTB node like `bootargs-override` which
is what OpenWRT does [1].
[1]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch;h=e7dca7af886e8c0b69ba2b23f5855ddfeeb0d4a1;hb=refs/heads/main
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-02-18 20:30:41 +01:00
Raito Bezarius
d14ee41325
liminix-rebuild: use -f
flag to reboot effectively
...
My AP does not reboot upon `reboot` but `reboot -f`… why?
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-02-17 11:45:17 +00:00
Daniel Barlow
4bcc3d5b28
dhcpc6 scripts: simplify (and improve correctness)
2024-02-16 18:47:12 +00:00
Daniel Barlow
b5722a0153
gl-ar750: ath10k wireless depends on firmware
...
so make sure the firmware is present _first_
the ath10k is still broken anyway, looking into why
2024-02-16 00:38:36 +00:00
Daniel Barlow
3c950704e1
rename /run/service-state to /run/services/outputs
2024-02-13 21:41:43 +00:00
Daniel Barlow
16e4b05653
dhcp6c: set preferred and valid address lifetimes
...
also workaround a bug in rebinding/updates where we get an error
from "ip addr add" trying to add an address that's already present
2024-02-13 13:49:12 +00:00
Daniel Barlow
79926c6fe7
remove call to deleted package
2024-02-12 14:56:12 +00:00
Daniel Barlow
b9c0d93670
build modules at same time as main kernel vmlinux
...
This changes the practice for building kernel modules: now we expect
that the appropriate Kconfig symbols are set to =m in
config.kernel.config, and then use pkgs.kmodloader to create
a service that loads and unloads all the modules depended on by
a particular requirement.
Note that modules won't be installed on the target device just by
virue of having been built: only the modules that are referenced by a
kmodloader package will be in the closure.
An example may make this clearer: see modules/firewall/default.nix
in this commit.
Why?
If you have a compiled Linux kernel source tree and you change some
symbol from "is not set" to m and then run make modules, you cannot in
general expect that newly compiled module to work. This is because
there are places in the build of the main kernel where it looks to see
which modules _may_ be defined and uses that information to
accommodate them.
For example in an in-kernel build of
https://github.com/torvalds/linux/blob/master/net/netfilter/core.c#L689
some symbols are defined only if CONFIG_NF_CONNTRACK is set, meaning
this code won't work if we have it unset initially then try later to
enable it and build modules only. Or see
https://github.com/torvalds/linux/blob/master/include/linux/netdevice.h#L160
2024-02-11 23:47:11 +00:00
Daniel Barlow
812f497660
add kernel.version param to allow for version-specific patches
...
default to 5.15.137 to avoid breaking the devices that don't declare it
2024-02-11 16:19:52 +00:00
dan
273c66b2d3
Merge pull request 'Add support for TP-Link Archer AX23' ( #6 ) from raboof/liminix:add-archer-ax23-v1-bak into main
...
Reviewed-on: https://gti.telent.net/dan/liminix/pulls/6
2024-02-08 17:47:46 +00:00
Daniel Barlow
82537bbe68
delete commented-out code
2024-02-07 23:47:38 +00:00
Daniel Barlow
c9e4c1b0da
kernel-modules: use linuxArch instead of case expression
2024-02-07 16:20:34 +00:00
Arnout Engelen
61494fdc0c
Add tplink module for creating 'safeloader' images
2024-02-06 17:59:38 +01:00
Daniel Barlow
b0709a6443
systemconfig: fix missing backslashes on env vars
2024-02-04 17:19:03 +00:00
Daniel Barlow
86f5c9b568
schnapps needs util-linux for mount
...
specifically, it expects mount /dev/foo -o blah /dest to work,
but busybox mount expects options to precede all the other
command line args
2024-02-04 15:50:25 +00:00
Arnout Engelen
04895f9cf6
openwrt: update to v23.05.2
2024-01-25 12:29:03 +01:00
Daniel Barlow
83ee488e4c
systemconfig: /boot needs to go inside /persist
2024-01-09 13:10:02 +00:00
Daniel Barlow
c1101d3af5
make extlinux work with liminix-rebuild
...
add /boot to the systemConfiguration closure
2024-01-08 18:58:07 +00:00
Daniel Barlow
228c0a1668
pass rootOptions config as rootflags= kernel cmdline opt
2024-01-08 18:54:49 +00:00
Daniel Barlow
63f034e362
preinit: parse rootflags= in kernel command line
2024-01-08 00:35:13 +00:00
Daniel Barlow
6971d03520
preinit: check return from write()
2024-01-07 21:24:16 +00:00
Daniel Barlow
c0c4752350
systemconfig "install" cmd honours prefix on source
2024-01-07 16:54:44 +00:00
Daniel Barlow
45e8db09e1
liminix-rebuild: escape brackets in usage message
2024-01-07 14:18:19 +00:00
Daniel Barlow
2a93f24a58
add turris "schnapps" tool
...
in its current state this is useful for turris omnia only, but will
allow us to do installs and rollback to turris os if needed.
2024-01-05 00:07:01 +00:00
Daniel Barlow
136c5e6f32
alphabetize package list
2024-01-04 10:15:23 +00:00
Daniel Barlow
9369fdf314
use patched qemu only for run-liminix-vm
2024-01-03 17:53:30 +00:00
Daniel Barlow
ff991508ae
build kernel only once for multiple outputs
...
e.g. vmlinux + zImage
2024-01-02 19:40:57 +00:00
Daniel Barlow
d6f96c0448
add libubootenv package
2024-01-02 17:44:56 +00:00
Daniel Barlow
2152a3f207
a test for liminix-rebuild
...
it's hacky as Selby, but it's better than no test
2023-12-29 22:11:04 +00:00
Daniel Barlow
1a041392aa
liminix-rebuild: add --no-reboot param
2023-12-27 17:47:42 +00:00
Daniel Barlow
6469408d5f
run-liminix-vm: don't reverse order of --flags params
2023-12-26 21:59:00 +00:00
Daniel Barlow
e5cbc2b86b
WIP add systemConfiguration "install" command
...
which copies the init stuff (whatever it is) from store to /persist
instead of making liminix-rebuild have to know what the files are.
This is principally to ease making a system configuration in /mnt or
similar when operating in a rescue/recovery scenario, and we
don't want to liminix-rebuild because it will reboot
2023-12-23 23:53:47 +00:00
Daniel Barlow
29f35cb902
min-copy-closure: add --root to copy to non-standard place
2023-12-23 23:12:40 +00:00
Daniel Barlow
aecc44aaa0
run-liminix-vm: --flag parameter passes arg straight to qemu
2023-12-23 15:32:59 +00:00
Daniel Barlow
9f851b229c
inadvertently committed, remove
2023-12-22 16:25:54 +00:00
Daniel Barlow
4a606a4b19
tidy up kernel patch
2023-12-21 21:12:55 +00:00
Daniel Barlow
9c894bdabf
add tftpboot test for mips
2023-12-21 19:25:45 +00:00
Daniel Barlow
a962f18369
run-liminix-vm: map rootfs file iff --phram-address supplied
2023-12-21 19:25:45 +00:00
Daniel Barlow
9a29a042e8
fix tftpboot test on boards without autoboot, swap wan/lan
...
This is for MIPS. I spent a while investigating why the second virtio
net device doesn't function in qemu mips malta u-boot, but with no
success. Use the first one instead.
2023-12-21 19:25:16 +00:00
Daniel Barlow
ab0631c555
qemu mips expects different file size for u-boot
2023-12-19 18:48:28 +00:00
Daniel Barlow
32c13c46bb
support aarch64 in tftpboot test
2023-12-19 12:12:12 +00:00
Daniel Barlow
ebaa7b2bcb
unbreak fennel test
2023-12-09 17:10:41 +00:00
Daniel Barlow
07e66c462b
use virtio-bk-pci instead of virtio-bk-device
...
u-boot is happy with either but Linux can autodetect the PCI-based
hardware
2023-12-09 15:53:40 +00:00
Daniel Barlow
03b17fa3ed
add zImage output
2023-12-07 22:31:26 +00:00
Daniel Barlow
a8891461aa
use devtmpfs in initramfs
...
static device nodes don't work with virtio
2023-12-07 20:03:03 +00:00
Daniel Barlow
5adfb0230f
WIP generate bootable disk image with partition table
2023-12-05 23:54:09 +00:00
Daniel Barlow
b519bd15df
pretty-print the qemu command line
...
well, pretty-ish
2023-12-05 17:32:18 +00:00
Daniel Barlow
f2daa0b669
exclude rootfs region from kernel-visible ram
2023-12-05 17:32:18 +00:00
Daniel Barlow
f08c10c8ba
patch u-boot to add ubifs support
...
not that we're using it yet
2023-12-04 23:39:27 +00:00
Daniel Barlow
0242cec977
run-liminix-vm: remove unneeded second copy of pad code
2023-12-04 23:37:39 +00:00
Raito Bezarius
644f42c35e
kernel: make the build FSAT on FSAT computers
...
I have 128 threads, builds should take only but a moment!
2023-12-03 23:05:12 +00:00