forked from DGNum/liminix
overthinking
This commit is contained in:
parent
23b434b80e
commit
71ae8f8784
1 changed files with 156 additions and 4 deletions
160
THOUGHTS.txt
160
THOUGHTS.txt
|
@ -1008,20 +1008,21 @@ a bundle of addresses and therefore we can't see what any of them are
|
||||||
Tue Mar 7 22:05:44 GMT 2023
|
Tue Mar 7 22:05:44 GMT 2023
|
||||||
|
|
||||||
[phase 1]
|
[phase 1]
|
||||||
18) gl-mt300a what's left?
|
|
||||||
19) gl-mt300n-v2 what works?
|
|
||||||
20) publish the manual using CI
|
20) publish the manual using CI
|
||||||
30) document flashing process
|
30) document flashing process
|
||||||
31) go through all the unexpected dmesg and triage
|
31) go through all the unexpected dmesg and triage it
|
||||||
25) ntp or some other accurate time source
|
25) ntp or some other accurate time source
|
||||||
|
|
||||||
[phase 1.5]
|
[phase 1.5]
|
||||||
|
26) ssh keys
|
||||||
8) get ipv6 address from pppoe
|
8) get ipv6 address from pppoe
|
||||||
9) get ipv6 delegation from pppoe and add prefix to lan
|
9) get ipv6 delegation from pppoe and add prefix to lan
|
||||||
10) support dhcp6 in dnsmasq, and advertise prefix on lan
|
10) support dhcp6 in dnsmasq, and advertise prefix on lan
|
||||||
11) firewalling and nat - default deny or zero trust?
|
11) firewalling and nat - default deny or zero trust?
|
||||||
7) upgrade ppp to something with an ipv6-up-script option, move ppp and pppoe derivations into their own files
|
7) upgrade ppp to something with an ipv6-up-script option, move ppp and pppoe derivations into their own files
|
||||||
32) set up iperf and do some performance measurement
|
32) set up iperf and do some performance measurement
|
||||||
|
35) also we need to check our wireless country code
|
||||||
|
|
||||||
|
|
||||||
[phase 2]
|
[phase 2]
|
||||||
3) document services so I can remember how they work. Refer back to Oct 18 for notes that no longer make sense
|
3) document services so I can remember how they work. Refer back to Oct 18 for notes that no longer make sense
|
||||||
|
@ -1054,5 +1055,156 @@ for gl-ar750:
|
||||||
[ 32.032326] ath10k_pci 0000:00:00.0: pdev param 0 not supported by firmware
|
[ 32.032326] ath10k_pci 0000:00:00.0: pdev param 0 not supported by firmware
|
||||||
[ 36.627844] ath10k_pci 0000:00:00.0: failed to receive initialized event from target: 00000000
|
[ 36.627844] ath10k_pci 0000:00:00.0: failed to receive initialized event from target: 00000000
|
||||||
|
|
||||||
also we need to check our wireless country code
|
|
||||||
|
|
||||||
|
Fri Mar 10 13:17:56 GMT 2023
|
||||||
|
|
||||||
|
Lunchtime notes on images for real devices, vs ci.nix
|
||||||
|
|
||||||
|
* successfully building an image doesn't mean that the image boots
|
||||||
|
or does anything useful
|
||||||
|
|
||||||
|
* don't want to faff with serial wires on every device every time
|
||||||
|
to test it. so
|
||||||
|
|
||||||
|
* ideally, build ram-based images of rotuer, extneder, arhcive in CI
|
||||||
|
with a watchdog timer that will reboot if it can't see the network
|
||||||
|
|
||||||
|
* figure out how to boot into the new image from an ssh connection. I
|
||||||
|
assume the challenging bit here is grabbing x MB of contiguous phys
|
||||||
|
mem after boot: I think we'd have to reserve it at _first_ boot and
|
||||||
|
then somehow copy into it before rebooting
|
||||||
|
|
||||||
|
An easier first goal might be a tool to flash from the shell command line,
|
||||||
|
but that runs a greater risk of bricking
|
||||||
|
|
||||||
|
|
||||||
|
Fri Mar 10 14:35:40 GMT 2023
|
||||||
|
|
||||||
|
programs.busybox = {
|
||||||
|
enable = true;
|
||||||
|
applets = [... ];
|
||||||
|
config = {
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
Fri Mar 10 23:49:04 GMT 2023
|
||||||
|
|
||||||
|
Well, we have the backup host config up and running - though haven't
|
||||||
|
plugged it back into its disk yet.
|
||||||
|
|
||||||
|
For task 1 what remains is
|
||||||
|
|
||||||
|
1) ntp sync
|
||||||
|
2) write up the flashing procedure
|
||||||
|
3) a video?
|
||||||
|
|
||||||
|
|
||||||
|
Sat Mar 11 13:58:20 GMT 2023
|
||||||
|
|
||||||
|
================== for video
|
||||||
|
|
||||||
|
what is liminix
|
||||||
|
- nix-based system for creating OS images for routers
|
||||||
|
- not "nixos on your router"
|
||||||
|
- nixos-like module system,
|
||||||
|
- musl for libc
|
||||||
|
- s6/s6-rc for services
|
||||||
|
- entirely cross-compiled
|
||||||
|
|
||||||
|
why am i making a video?
|
||||||
|
- unless you have a suitable spare device to install on,
|
||||||
|
and you want to take it apart, it's currently hard to
|
||||||
|
take liminix for a spin
|
||||||
|
- I have these things, so I can give you a tour
|
||||||
|
|
||||||
|
let's have a look at how the hardware's hooked up
|
||||||
|
|
||||||
|
web site & manual
|
||||||
|
|
||||||
|
a config file:
|
||||||
|
- observe the comments:
|
||||||
|
- not going to spend ages on this because it's not in its final form.
|
||||||
|
- as we get more configs for more use cases, we will
|
||||||
|
get a better feel for what can be abstracted
|
||||||
|
- that will come later: work so far has been on the
|
||||||
|
hardware support side
|
||||||
|
|
||||||
|
to show that it builds, we're going to add a package. otherwise,
|
||||||
|
everything from this build is probably already cached
|
||||||
|
|
||||||
|
build the config
|
||||||
|
|
||||||
|
tftpboot on hardware
|
||||||
|
|
||||||
|
flash on hardware
|
||||||
|
|
||||||
|
show ci
|
||||||
|
|
||||||
|
show a qemu target
|
||||||
|
|
||||||
|
Mon Mar 13 22:46:46 GMT 2023
|
||||||
|
|
||||||
|
1) rsync on arhcive is failing because no nogroup group
|
||||||
|
|
||||||
|
"/nix/store/gfzzl157r8xyp38lpcfxydkiiy6zrs3c-rsync-3.2.6/bin/rsync" "--verbose" "--stats" "--password-file" "/etc/nixos/secrets/arhcive-rsync" "-rltgoDz" "/var/spool/backup" "backup@arhcive.lan::srv/"
|
||||||
|
@ERROR: invalid gid nogroup
|
||||||
|
rsync error: error starting client-server protocol (code 5) at main.c(1837) [sender=3.2.6]
|
||||||
|
|
||||||
|
2) we can run findfs in a loop until the disk appears
|
||||||
|
|
||||||
|
3) still haven't decided how to do ntp but maybe we should just use
|
||||||
|
the busybox one
|
||||||
|
|
||||||
|
4) some way to do upgrades over the wire
|
||||||
|
|
||||||
|
- boot with reserved mem and a phram device at 110-128MB even in the
|
||||||
|
flashable version
|
||||||
|
|
||||||
|
- watchdog timer in kernel
|
||||||
|
|
||||||
|
- kexec in kernel
|
||||||
|
|
||||||
|
- userland service to feed the dog as long as local network is up
|
||||||
|
(may need to start it a couple of minutes after boot, how do we
|
||||||
|
do that?)
|
||||||
|
|
||||||
|
- can we use flashcp on a phram mtd?
|
||||||
|
|
||||||
|
5) maybe setup a vhost for hydra or something
|
||||||
|
|
||||||
|
[nix-shell:~/t]$ wget --reject-regex '\?' -D localhost -N -r --exclude-directories=/api --level=2 --convert-links -e robots=off http://localhost:3003/jobset/liminix/build/
|
||||||
|
|
||||||
|
is almost a mirror
|
||||||
|
|
||||||
|
Tue Mar 14 20:17:35 GMT 2023
|
||||||
|
|
||||||
|
- do we have a phram mtd? need config for size and location
|
||||||
|
|
||||||
|
- how do we set the boot device
|
||||||
|
- for first boot need to boot real flash, use dtb, ignore bootloader args
|
||||||
|
- for kexec, boot phram, specify args somehow (could rewrite dtb)
|
||||||
|
|
||||||
|
=> can use same kernel for both if we can give kexec a dtb with
|
||||||
|
different params, which seems to be possible
|
||||||
|
|
||||||
|
so we need a module for the initial kernel to say
|
||||||
|
- create phram mtd
|
||||||
|
- boot from real mtd (will be index + 1)
|
||||||
|
- enable KEXEC in kernel
|
||||||
|
- add kexec-tools
|
||||||
|
|
||||||
|
and for the kernel we boot into
|
||||||
|
- most of the above
|
||||||
|
- except for the boot device
|
||||||
|
- create an output with objects that kexec(8) can parse
|
||||||
|
|
||||||
|
Could be same module for both with different outputs
|
||||||
|
|
||||||
|
what do we call this thing? "revertable"
|
||||||
|
|
||||||
|
Wed Mar 15 19:11:09 GMT 2023
|
||||||
|
|
||||||
|
"revertable" implies mtd support for the rootfs and a ramdisk at
|
||||||
|
defined location
|
||||||
|
|
||||||
|
"tftpboot" implies "revertable", because it will use the same ramdisk
|
||||||
|
|
Loading…
Reference in a new issue