Commit Graph
100 Commits
Author SHA1 Message Date
Daniel Barlow 740314b329 added at 3cb95c869e2fe74cc61ca303d88af6c5daad6734 2023-02-15 22:06:28 +00:00
Daniel Barlow e84833e52f WIP create VM for pppoe and tftpd 2023-02-15 22:06:28 +00:00
Daniel Barlow 9d651f5851 move files 2023-02-15 22:06:28 +00:00
Daniel Barlow c298f128fa refine the TODO list 2023-02-15 22:06:28 +00:00
Daniel Barlow 5b51aa0826 tftp load address is per-device, IP addresses are local config 2023-02-15 22:06:28 +00:00
Daniel Barlow dd8c8edd9c rewrite phram boot to use correct sizes and offsets 2023-02-15 22:06:28 +00:00
Daniel Barlow 1a08aaad01 move outputs into a module 2023-02-10 23:10:44 +00:00
Daniel Barlow 0a06319d0c make loadAddress and entryPoint device configuration
... already having second thoughts about loadAddress
2023-02-10 18:20:01 +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 6be459b9ac thinking 2023-02-10 16:43:06 +00:00
Daniel Barlow a7c94f5a12 delete dead file 2023-02-08 23:19:37 +00:00
Daniel Barlow 320d436c65 add wlan test to ci 2023-02-08 23:19:18 +00:00
Daniel Barlow befc75b060 thunk 2023-02-08 22:50:26 +00:00
Daniel Barlow c7f508d901 update contributing docs 2023-02-08 22:49:59 +00:00
Daniel Barlow 1dc9770dbc turn run-qemu.sh and connect-qemu scripts into buildEnv commands 2023-02-08 22:49:10 +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 103d85bdea fix readme bugs 2023-02-08 18:13:58 +00:00
Daniel Barlow cc7daeabb3 add routeros to overlay 2023-02-08 18:13:35 +00:00
Daniel Barlow f356e475d6 add buildEnv to CI so we know next time tufted breaks 2023-02-08 00:12:29 +00:00
Daniel Barlow 78c55d36a9 improve build tool derivations, review README
The readme is still very badly organised, but not quite so out of
date.
2023-02-08 00:03:37 +00:00
Daniel Barlow 52d8c03ddd update tufted for nixpkgs fennel changes 2023-02-07 23:42:19 +00:00
Daniel Barlow afd9bbbc80 building but untested kernels for gl-mt300a, gl-mt300n-v2 2023-02-06 23:19:53 +00:00
Daniel Barlow eaf90df56c per-device dts 2023-02-06 23:19:35 +00:00
Daniel Barlow cb39209492 fix spelling, remove dead file 2023-02-05 22:42:41 +00:00
Daniel Barlow 424abc72b8 rearrange all the ci stuff 2023-02-05 22:38:21 +00:00
Daniel Barlow ebc5d6a3e0 convert pppoe test to a derivation
* move shell script to a runCommand
* multicast needs special options to run on loopback
 (nix-build sandbox disables non-local network interfaces)
2023-02-05 17:37:31 +00:00
Daniel Barlow 16a923f58f convert routeros pppoe service to a derivation
and make it configure itself automatically instead of starting
out blank
2023-02-05 17:35:41 +00:00
Daniel Barlow 00aa42b803 create ci.nix to run all tests 2023-01-29 21:42:53 +00:00
Daniel Barlow a0380728a5 convert test script to derivation 2023-01-29 21:39:34 +00:00
Daniel Barlow 3b1bc7eff8 test derivation for ci 2023-01-29 21:19:10 +00:00
Daniel Barlow 63bf4162b2 licence: remove accidental punctuation, update copyright year 2023-01-29 16:39:50 +00:00
Daniel Barlow 8dc65d2fc8 pass deviceName as hydra input 2023-01-29 14:32:05 +00:00
Daniel Barlow cb6cc4b858 add jobs to jobset so we can see more easily what fails 2023-01-29 12:42:15 +00:00
Daniel Barlow 64b9bad891 allow building mips (bigendian) without setting env vars 2023-01-29 10:00:13 +00:00
Daniel Barlow e6a173f71c make liminix-config a parameter with default
this is for hydra
2023-01-29 09:25:03 +00:00
Daniel Barlow 38cc3315b9 liminix-config is a path not an input 2023-01-29 09:11:20 +00:00
Daniel Barlow eb4efab6a2 might be a hydra config 2023-01-28 23:18:28 +00:00
Daniel Barlow 99d695930f fix code examples in README 2022-10-19 22:11:22 +01:00
Daniel Barlow 76243d306c remove checkedConfig, check all the config 2022-10-19 22:09:38 +01:00
Daniel Barlow 9c5b5a54e2 remove unneeded Kconfig.local handling 2022-10-19 18:23:20 +01:00
Daniel Barlow a834656fef wot i thunk 2022-10-19 17:36:58 +01:00
Daniel Barlow 0a46ba7fc3 move some wifi-related comments into wlan module 2022-10-19 17:36:31 +01: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 d1dda7bf74 remove redundant nixpkgs.pkgs 2022-10-19 17:10:35 +01:00
Daniel Barlow 3ef30056c4 trim down the qemu kernel config
just retain the options we need to pass the tests
2022-10-18 22:28:07 +01:00
Daniel Barlow c6ed5d6f2d add ipv4/v6 to base kernel config 2022-10-18 18:56:29 +01:00
Daniel Barlow 026932a745 add unix-domain socket support
this is a curious config option to default to "n", I think
2022-10-18 15:48:37 +01:00
Daniel Barlow 3ff9e49085 enable eth1 2022-10-18 15:48:29 +01:00
Daniel Barlow c2bcf2dd3e fixup 4b513cd 2022-10-18 15:47:27 +01:00
Daniel Barlow 45d52a6c99 tidy kconfig a bit 2022-10-16 15:31:10 +01:00
Daniel Barlow 4b513cdb98 use openwrt kernel for gl-ar750 2022-10-16 15:15:18 +01:00
Daniel Barlow 77922c875b add per-device overlay
presently this is used to reference the appropriate kernel and (if
needed) openwrt source trees, but I would not be surprised if we find
other uses
2022-10-15 18:55:33 +01:00
Daniel Barlow fa31d00d6a openwrt ag71xx as module 2022-10-15 16:28:19 +01:00
Daniel Barlow 7d1c85f680 kernel: enlarge offset to rootfs, disable sysfs devlink
the ag71xx driver doesn't probe with fw_devlink enabled
2022-10-15 16:11:40 +01:00
Daniel Barlow 70fa328574 support out-of-tree module builds in vmlinux derivation
run "make modules_prepare" to create scripts/modules.lds
2022-10-09 09:55:30 +01:00
Daniel Barlow 2276c548ba name the openwrt source tree so we can find it in /nix/store 2022-10-09 09:53:55 +01:00
Daniel Barlow e823e7a29c HALFARSED enable toggling promptless kconfig symbols
Some kernel config symbols we need to enable in some configurations
don't have a "prompt" entry in the Kconfig files, meaning that
make oldconfig (or any other make fooconfig) won't change them.
So we add a Kconfig.local where they can be selected

In this patch we hardcode the required symbol. Next step would be
to generalise so that they could be specified in something like a
config.kernel.hiddenConfig attrset
2022-10-09 09:50:17 +01:00
Daniel Barlow 20b9eb16ec make dnsmasq smaller
remove dependency on nettle -> gmp -> glibc
2022-10-08 20:05:17 +01:00
Daniel Barlow cd37627cbe bug 2022-10-08 11:25:57 +01:00
Daniel Barlow cd1428255b dear diary 2022-10-08 11:22:31 +01:00
Daniel Barlow fe7080e75c kconfig reqd for tmpfs mount, getty baud rate to = gl-ar750 u-boot 2022-10-07 23:26:24 +01:00
Daniel Barlow 1c39da8544 tidy kconfig 2022-10-07 23:26:00 +01:00
Daniel Barlow 8e8c34b3fa gl-ar750: frob kernel config for ttyS0 (SERIAL_OF_PLATFORM) 2022-10-07 23:24:36 +01:00
Daniel Barlow 423cf4cbee WIP gl-ar750 mounts root fs and starts pid 1
but still can't open /dev/console so it panics quite quickly
2022-10-07 00:26:32 +01:00
Daniel Barlow 5feda1a1e6 add 'phram' param for tftp boot without flashing 2022-10-07 00:24:35 +01:00
Daniel Barlow e78028e58f make outputs.directory useful for tftp-booting devices
basically, add some more symlinks to it
2022-10-07 00:23:04 +01:00
Daniel Barlow 58c287ef6a add config option for kernel commmand line 2022-10-07 00:21:04 +01:00
Daniel Barlow af79e1e9e9 build dtb (forgot to commit this file?) 2022-10-07 00:19:29 +01:00
Daniel Barlow 1bd35a1edd enable config for items in checkedConfig
don't make me have to write them twice
2022-10-07 00:18:37 +01:00
Daniel Barlow 67c21e51d7 gl-ar750: boots 2022-10-05 21:58:39 +01:00
Daniel Barlow 309bb0db2d qemu kernel: choose an endianness
more than mildly surprised this wasn't causing it to
report some kind of error, tbh
2022-10-05 21:57:38 +01:00
Daniel Barlow 4c2e460042 qemu: remove =m kconfig to shorten build times
it's not as though we're using any of the modules anyway
2022-10-05 21:55:31 +01:00
Daniel Barlow 9cbffdab50 add support for OpenWrt device trees 2022-10-05 21:52:30 +01:00
Daniel Barlow 2f3072d7d5 enable /proc/config.gz
previous attempt hadn't noticed that it has a missing dependency
2022-10-05 21:50:10 +01:00
Daniel Barlow 8da5a88e07 build real lzma 2022-10-05 18:19:09 +01:00
Daniel Barlow c70d556f44 write combined-image into a directory not $out directly
this makes the tftp workflow a bit easier
2022-10-04 23:09:20 +01:00
Daniel Barlow e7987c9520 add build-host tftp server 2022-10-04 23:08:43 +01:00
Daniel Barlow f9626d00f4 generate probably-non-functional firmware image for gl-ar750 2022-10-03 22:28:15 +01:00
Daniel Barlow a1a1abb8c7 rearrange TODO list 2022-10-02 23:04:15 +01:00
Daniel Barlow e9f04931fa improve syntax for accessing service outputs 2022-10-02 16:35:55 +01:00
Daniel Barlow 2d7bb6b2fa twiddle docs 2022-10-02 14:47:35 +01:00
Daniel Barlow f030efbd49 extract "service" function to reduce duplicated code 2022-10-02 14:44:29 +01:00
Daniel Barlow 7f280b5d6a add QEMU_OPTIONS env var for run-qemu 2022-10-02 10:05:28 +01:00
Daniel Barlow 0ed97a5232 support /proc/config.gz 2022-10-02 10:04:36 +01:00
Daniel Barlow 1aa9f8d61f add s6 package for logfile timestamp decoder s6-tai64nlocal 2022-10-02 10:04:35 +01:00
Daniel Barlow da8866a01a first pass at a hostapd service, rough around the edges 2022-10-02 10:04:35 +01:00
Daniel Barlow 8cff11d0a3 add Licence information 2022-10-01 12:13:47 +01:00
Daniel Barlow 95f27eaf84 add note about contributions 2022-10-01 09:26:15 +01:00
Daniel Barlow ba80e66696 add config for 80211_hwsim simulated wlan adaptor 2022-09-30 17:51:15 +01:00
Daniel Barlow 6a9b14f965 re-enable kernel checkedConfig support
Sometimes config options get silenty removed because they have
dependencies on other options that haven't been enabled. If you add
those as attributes here, the kernel build will check they're _still_
present in the config after make oldconfig has run.
2022-09-30 17:45:05 +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 6f23a45696 configuration for users and groups 2022-09-28 21:31:15 +01:00
Daniel Barlow 1dbdbbbb1a thinking 2022-09-27 22:58:56 +01:00
Daniel Barlow dfdaa27f39 make ppp log to stderr not syslog 2022-09-27 22:57:06 +01:00
Daniel Barlow 0632b5102e remove .service/.target/.bundle etc suffixes on service names
they don't seem to be providing value
2022-09-27 22:56:53 +01:00
Daniel Barlow 5d17919474 remove .service/.target/.bundle etc suffixes on service names
they don't seem to be providing value
2022-09-27 22:35:29 +01:00
Daniel Barlow 2e13f1372e add outputs.manifest for diagnosing image size problems 2022-09-27 22:07:18 +01:00
Daniel Barlow 5e573cef09 squashfs builder just needs filesystem not entire config 2022-09-27 22:06:36 +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 af4cd2e05c make mksquashfs fail on error 2022-09-27 17:36:25 +01:00