Commit Graph
100 Commits
Author SHA1 Message Date
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
Daniel Barlow e78d5212e6 move tftp config to base module
we need it for flashing from u-boot even when tftp booting
is not enabled
2023-03-18 14:45:51 +00:00
Daniel Barlow ce05f4e44c extract phram.mtd ramdisk support from tftpboot module
also rename tftproot output to tftpboot for consistency
2023-03-18 14:30:10 +00:00
Daniel Barlow 6e95932e0e untested fix for unable to mount usb disk at boot 2023-03-18 14:30:10 +00:00
Daniel Barlow 9f9558c9e8 style: let inherit fetchpatch 2023-03-18 14:30:10 +00:00
Daniel Barlow 153cbec573 fix pathnames of modules 2023-03-18 14:30:10 +00:00
Daniel Barlow 3f11a3c708 gl-ar750 gpio support is required for USB to work
_legacy_ gpio sysfs interface is required  by the openwrt
ath79 phy usb driver
2023-03-18 14:30:10 +00:00
Daniel Barlow 71ae8f8784 overthinking 2023-03-18 14:30:10 +00:00
Daniel Barlow 23b434b80e add a logo 2023-03-18 14:30:10 +00:00
Daniel Barlow a4e1dcedd3 redirect stderr 2023-03-10 23:39:53 +00:00
Daniel Barlow 53810e1f5f tidy up a bit 2023-03-10 23:39:32 +00:00
Daniel Barlow ad3f241af9 support mt300n-v2 flash 2023-03-10 23:24:05 +00:00
Daniel Barlow 3efa9e0af2 restore missing applets 2023-03-10 23:14:13 +00:00
Daniel Barlow f2d1789ad7 add openssh authorized_keys 2023-03-10 23:13:32 +00:00
Daniel Barlow 2594239bbc can't use builtins.fetchurl on hydra? 2023-03-10 18:51:07 +00:00
Daniel Barlow be06363e4f new example for rsync/usb backup server 2023-03-10 18:42:32 +00:00
Daniel Barlow 9f03276db8 move noise sources around in tests
wlan test shows output to make it easier to see when it went wrong
2023-03-10 18:41:43 +00:00
Daniel Barlow 225fc6fe51 configurable busybox
allows modules to add to the busybox applets and change config
2023-03-10 18:40:45 +00:00
Daniel Barlow 8b2fcb5336 move non-normative examples into a subdirectory 2023-03-10 14:38:13 +00:00
Daniel Barlow 43f1fb230b remove unrecoginsed earlyprintk param from kernel commandline 2023-03-10 00:50:28 +00:00
Daniel Barlow d83bcc643e add wifi firmware, move things around in ram
* at the base address we were using, the filesystem was getting
corrupted presumably because the kernel unpacked into it

* leave a little more space between compressed kernel and
squashfs. this is probably ineffective but also harmless
2023-03-10 00:48:47 +00:00
Daniel Barlow f50b0627a2 gl-mt300n-v2: initialize switch & define networkInterfaces
It booted and mounted rootfs the first time I tried, which
was nice. Wireless doesn't work yet, it needs firmware
2023-03-09 19:30:57 +00:00
Daniel Barlow 91c0147919 set hostname before dhcp client runs 2023-03-08 22:11:59 +00:00
Daniel Barlow 2318c54037 blah 2023-03-08 21:00:12 +00:00
Daniel Barlow 95e14b5c05 extract secrets for extneder 2023-03-08 20:37:08 +00:00
Daniel Barlow f36d8ef1d0 make mt300a flash-ready 2023-03-08 20:35:41 +00:00
Daniel Barlow 85b5edc39d vlan interfaces depend on parent 2023-03-08 20:34:39 +00:00
Daniel Barlow d290965711 shuffle kernel config for gl-mt300a 2023-03-07 22:49:33 +00:00
Daniel Barlow 03a6d62d49 new todo list 2023-03-07 22:36:48 +00:00
Daniel Barlow bfbbe00d58 describe role of flash config 2023-03-07 22:36:48 +00:00
Daniel Barlow 8611dab602 unadvisable use of cat 2023-03-07 22:36:48 +00:00
Daniel Barlow fec77a44b5 DRY loopback interface, it's the same everywhere 2023-03-07 22:36:48 +00:00
Daniel Barlow 0436025e91 example config for "wireless extender" role 2023-03-07 21:33:01 +00:00
Daniel Barlow e8d5e4c788 move regulatory.db to wlan module 2023-03-07 21:32:21 +00:00
Daniel Barlow b65a405a43 wibble 2023-03-07 19:11:46 +00:00
Daniel Barlow 70f8f5ecfd remove hostapd debugging flag 2023-03-07 19:11:25 +00:00
Daniel Barlow c046c39613 wlan support for mt300a 2023-03-07 19:11:12 +00:00
Daniel Barlow e86e9430fc vlans and mt300a wired network interfaces 2023-03-07 19:10:12 +00:00
Daniel Barlow 06687a819a udhcpc notify when ready 2023-03-07 19:06:40 +00:00
Daniel Barlow f9f9720ba7 ${!foo} doesn't work in ash, switch to printenv 2023-03-07 19:05:58 +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 1565a8414d remove inadvertant references to bash 2023-03-06 17:48:31 +00:00
Daniel Barlow 83e56a3a90 add swconfig package 2023-03-05 22:32:56 +00:00
Daniel Barlow 2787e6a230 reformat qprint substitutions 2023-03-05 21:33:51 +00:00
Daniel Barlow a8cb872859 add service name to log lines 2023-03-04 23:08:25 +00:00
Daniel Barlow 5427456c21 rename notificationFd to notification-fd
it's perfectly valid syntax and consistent with the s6 spelling
2023-03-04 21:19:30 +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 e1eb4e1fcb oops 2023-03-04 00:35:40 +00:00
Daniel Barlow a3cdc32142 define structured options for config.users 2023-03-04 00:24:48 +00:00
Daniel Barlow 25a46dcb2c escape $ in pseudofile
this is needed to write /etc/passwd when it contains $5$....
strings
2023-03-04 00:23:21 +00:00
Daniel Barlow 38756af1c1 add in_outputs shell function which ensures umask is set 2023-03-03 23:07:03 +00:00
Daniel Barlow e0ea576674 rename "device" config tree as "hardware"
we are also using "device" for "network device" (as in eth0,
wlan0 etc) so this makes it a bit less confusing perhaps
2023-03-03 22:52:33 +00:00
Daniel Barlow 263882cbe4 move dts config option from boot to device 2023-03-03 22:43:44 +00:00
Daniel Barlow fd500041fa move new packages to pkgs/default.nix 2023-03-03 22:21:27 +00:00
Daniel Barlow c9f55ba177 delete unused file 2023-03-03 21:38:43 +00:00
Daniel Barlow d75437d577 note to self: check if these kconfig options still needed 2023-03-03 20:08:12 +00:00
Daniel Barlow d782970313 delete commented-out code 2023-03-03 20:08:04 +00:00
Daniel Barlow bbd699d7b1 add module for device-specific config
in principle this module declares the config that's defined in
devices/foo/default.nix
2023-03-03 20:04:39 +00:00
Daniel Barlow 0cd1bd99e1 declare device.flash options in base.nix
because they're specified in devices/*/default.nix
2023-03-02 23:28:39 +00:00
Daniel Barlow 6d191b73ae add outputs.flashable - flashable firmware.bin 2023-03-02 23:01:26 +00:00
Daniel Barlow 0cab6e9fba rename phram -> tftpboot and flash.scr to boot.scr 2023-03-02 15:11:12 +00:00
Daniel Barlow adc198b3af WIP push to see what passes 2023-03-01 22:24:58 +00:00
Daniel Barlow 259f5c767b ath10k kernel support and and firmware
- some firmware from kvalo repository
- a service to extract calibration data ART partition
- missing kernel symbol to enable PCI support
2023-03-01 21:08:47 +00:00
Daniel Barlow fc4f726dd6 make hostapd service depend on its interface 2023-03-01 18:16:01 +00:00
Daniel Barlow 41ff5a1fe6 move FW_LOADER* config to modules/base 2023-03-01 18:16:01 +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 14dacb8056 update netlink-lua to latest 2023-02-28 20:56:19 +00:00
Daniel Barlow ea2c5e158d add missing argument 2023-02-26 17:54:58 +00:00
Daniel Barlow fe1b33f307 example config for ppoe router
hard cases make bad law
2023-02-25 23:12:55 +00:00
Daniel Barlow c37332910a add option to provide dnsmasq resolv-file from a service 2023-02-25 22:53:50 +00:00
Daniel Barlow 59ce03630a consistent ownership/permissions for /run/service-state/** 2023-02-25 22:53:06 +00:00
Daniel Barlow 4bd99df0f1 spew for this week 2023-02-25 20:35:29 +00:00
Daniel Barlow 690cedf00d better type for config.groups
instead of an attrset of anything, specify the expected
structure of each value
2023-02-25 20:33:18 +00:00
Daniel Barlow 228b270385 pppoe: capture nameserver addresses as outputs 2023-02-25 20:31:41 +00:00
Daniel Barlow 3b75cadb20 improve bridge support
instead of a bridge specifiying its members (not ideal if they're
not all always up), the member interfaces specify their primary
2023-02-24 23:49:05 +00:00
Daniel Barlow 8194e909ac fix typo, remove debug spew 2023-02-24 23:22:28 +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 3e1082ad18 allow interface service to specify dependencies 2023-02-22 19:18:59 +00:00
Daniel Barlow f2e5f65149 add wireless support for hardware devices
* gl-ar750 the ath9k works, ath10k is untested
* gl-mt300[an] build but may not boot
2023-02-22 19:17:47 +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 891db9edc5 kernel derivation: add output for module support 2023-02-22 18:33:17 +00:00
Daniel Barlow e89fcfbf09 collect "device" options into an attrset 2023-02-22 18:31:46 +00:00
Daniel Barlow a2d8eaf95d make kernel config visually consistent: symbols are unquoted 2023-02-22 18:28:48 +00:00
Daniel Barlow 4faf529dc3 define kernel MODULE_SIG everywhere 2023-02-22 18:20:56 +00:00