forked from DGNum/liminix
wibble
This commit is contained in:
parent
70f8f5ecfd
commit
b65a405a43
1 changed files with 214 additions and 0 deletions
214
THOUGHTS.txt
214
THOUGHTS.txt
|
@ -771,3 +771,217 @@ we have a firewall nft script but we're not running it on boot
|
||||||
|
|
||||||
we have forwarding but no dns, maybe because we haven't told
|
we have forwarding but no dns, maybe because we haven't told
|
||||||
dnsmasq about any upstream servers
|
dnsmasq about any upstream servers
|
||||||
|
|
||||||
|
Sun Feb 26 21:08:47 GMT 2023
|
||||||
|
|
||||||
|
to add firmware we need to put files in /lib/firmware, which means
|
||||||
|
a module
|
||||||
|
|
||||||
|
i guess we should do that in the device module
|
||||||
|
|
||||||
|
we can create the firmware files as packages
|
||||||
|
|
||||||
|
|
||||||
|
for the cal data we would like to get it from the device MTD "art"
|
||||||
|
partition at
|
||||||
|
boot time.
|
||||||
|
|
||||||
|
f
|
||||||
|
====from openwrt
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case "$FIRMWARE" in
|
||||||
|
"ath10k/cal-pci-0000:00:00.0.bin")
|
||||||
|
case $board in
|
||||||
|
allnet,all-wap02860ac|\
|
||||||
|
araknis,an-500-ap-i-ac|\
|
||||||
|
araknis,an-700-ap-i-ac|\
|
||||||
|
engenius,eap1200h|\
|
||||||
|
engenius,enstationac-v1|\
|
||||||
|
glinet,gl-x750|\
|
||||||
|
watchguard,ap300)
|
||||||
|
caldata_extract "art" 0x5000 0x844
|
||||||
|
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) 2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
caldata_extract part offset count
|
||||||
|
caldata_dd $mtd /lib/firmware/$FIRMWARE $count $offset || \
|
||||||
|
caldata_die "failed to extract calibration data from $mtd"
|
||||||
|
dd if=$source of=$target iflag=skip_bytes,fullblock bs=$count skip=$offset count=1 2>/dev/null
|
||||||
|
|
||||||
|
=======
|
||||||
|
|
||||||
|
part=$(basename $(dirname $(grep -l art /sys/class/mtd/*/name)))
|
||||||
|
dd if=/dev/$part \
|
||||||
|
of=/run/cal-pci-0000:00:00.0.bin iflag=skip_bytes,fullblock \
|
||||||
|
bs=0x844 skip=0x5000 count=1
|
||||||
|
|
||||||
|
Mon Feb 27 22:46:37 GMT 2023
|
||||||
|
|
||||||
|
Found and fixed a bunchg of things that were stopping ath10k from
|
||||||
|
working. The remaining problem is (I think) that insmod is not
|
||||||
|
synchronous, so "ip link set up dev wlan1" doesn't work immediately
|
||||||
|
after the module is inserted. Maybe we need another netlink thing
|
||||||
|
to wait until the interface is present.
|
||||||
|
|
||||||
|
|
||||||
|
Wed Mar 1 18:26:44 GMT 2023
|
||||||
|
|
||||||
|
ath10k works, but the wlan module loading stuff is quite kludgey
|
||||||
|
|
||||||
|
I wonder if wlan0, wlan1, eth0, eth1 etc should be defined per-device
|
||||||
|
- how does the aplication config know which devices exist? If we
|
||||||
|
decide to switch to some form of persistent device naming, the names
|
||||||
|
will differ from one device to the next. Perhaps the device should
|
||||||
|
also provide standard names where possible?
|
||||||
|
|
||||||
|
services.network.links = {
|
||||||
|
lan = interface { ... };
|
||||||
|
wan = interface { ... };
|
||||||
|
wlan_24 = interface { ... };
|
||||||
|
wlan_5 = interface { ... };
|
||||||
|
}
|
||||||
|
|
||||||
|
Thu Mar 2 22:45:11 GMT 2023
|
||||||
|
|
||||||
|
We have a flashable image!
|
||||||
|
|
||||||
|
Now we can use the gl-ar750 for internet access in the shed, we can
|
||||||
|
apppropriate the other device that's in there and try Liminix on it
|
||||||
|
|
||||||
|
Fri Mar 3 23:08:58 GMT 2023
|
||||||
|
|
||||||
|
If we're going to unplug serial console from the gl-ar750 maybe we
|
||||||
|
should install an ssh server first.
|
||||||
|
|
||||||
|
0) set a root password
|
||||||
|
1) allow setting a root password from configuration.nix
|
||||||
|
(means defining config.users properly)
|
||||||
|
2) allow authorizedKeys per user
|
||||||
|
3) dropbear service
|
||||||
|
4) see if the wired lan works! :-)
|
||||||
|
|
||||||
|
|
||||||
|
Sat Mar 4 12:31:07 GMT 2023
|
||||||
|
|
||||||
|
To improve logging, each service should have its own s6-log service
|
||||||
|
which prefixes the service name onto the log line and then sends to
|
||||||
|
stdout
|
||||||
|
|
||||||
|
https://skarnet.org/software/s6/servicedir.html
|
||||||
|
https://skarnet.org/software/s6/s6-log.html
|
||||||
|
|
||||||
|
As far as I can tell, the `log` directory inside the service
|
||||||
|
directory should itself be a service directory for the s6-log
|
||||||
|
process that does this
|
||||||
|
|
||||||
|
.... hahaha no that doesn't work
|
||||||
|
|
||||||
|
s6-rc, for some reason, ignores the `log` directory and requires
|
||||||
|
that loggers be done with consumer-for and producer-for instead
|
||||||
|
|
||||||
|
|
||||||
|
Sat Mar 4 23:27:00 GMT 2023
|
||||||
|
|
||||||
|
notes for this week's news update
|
||||||
|
|
||||||
|
* ath10k kernel support and and firmware
|
||||||
|
|
||||||
|
- 5GHz wifi works
|
||||||
|
|
||||||
|
- need to retrieve the firmware from a special - partition on the
|
||||||
|
device itself, so we do that using a service that - the wlan
|
||||||
|
interface depends on
|
||||||
|
|
||||||
|
* replace waitup with more generally useful ifwait
|
||||||
|
|
||||||
|
to make the ath10k load at boot, we need to insert the module and then
|
||||||
|
wait for it to do something or other in the background before we can
|
||||||
|
configure the interface. so we need something like waitup but
|
||||||
|
for presence not operational state
|
||||||
|
|
||||||
|
it turns out that a program that just waits for a particular interface
|
||||||
|
state and then exits is quite simple to add into run scripts and
|
||||||
|
we don't need all that notification-fd stuff anyway
|
||||||
|
|
||||||
|
* move FW_LOADER* config to modules/base
|
||||||
|
|
||||||
|
* rejig config a bit.
|
||||||
|
- device hardware characteristics are now under
|
||||||
|
the `hardware` key and include the available network interfaces.
|
||||||
|
- options for users and groups are now defined a bit more
|
||||||
|
specifically than "attrset", making it possible to e.g. set a
|
||||||
|
root password
|
||||||
|
- dts is moved from `boot` to `hardware`
|
||||||
|
|
||||||
|
|
||||||
|
* now producing flashable images, so you can generate a liminix config
|
||||||
|
and write it to the device instead of having to boot using TFTP and
|
||||||
|
a serial console every time
|
||||||
|
|
||||||
|
* ssh support
|
||||||
|
|
||||||
|
* prefix logs with the service name
|
||||||
|
|
||||||
|
Sun Mar 5 22:51:21 GMT 2023
|
||||||
|
|
||||||
|
Added swconfig: it was a straight copy from nixwrt and hasn't changed
|
||||||
|
upstream since. But don't need it, because the lan port works fine
|
||||||
|
without it (I assume both lan ports and the cpu are all connected
|
||||||
|
untagged)
|
||||||
|
|
||||||
|
Mon Mar 6 09:42:33 GMT 2023
|
||||||
|
|
||||||
|
echo 17 >/sys/class/gpio/export
|
||||||
|
echo out >/sys/class/gpio/gpio17/direction
|
||||||
|
|
||||||
|
|
||||||
|
why are our images getting big
|
||||||
|
|
||||||
|
- lua links ncurses
|
||||||
|
- hostapd links openssl and sqlite
|
||||||
|
- nftables needs
|
||||||
|
- iptables?
|
||||||
|
- jansson? what is that?
|
||||||
|
- libedit/readline
|
||||||
|
- ifwait needs bash
|
||||||
|
|
||||||
|
|
||||||
|
File: result/squashfs
|
||||||
|
Size: 10371072 Blocks: 20256 IO Block: 4096 regular file
|
||||||
|
|
||||||
|
with smaller nftables: 9617408 Blocks: 18784
|
||||||
|
|
||||||
|
hostapd wqithout sqlite 9003008 Blocks: 17584
|
||||||
|
|
||||||
|
without bash: 8622080 Blocks: 16840 IO Block: 4096 regular file
|
||||||
|
|
||||||
|
without lua readline: bigger?! 8769536 Blocks: 17128 IO Block: 4096 regular file
|
||||||
|
|
||||||
|
|
||||||
|
Mon Mar 6 20:57:49 GMT 2023
|
||||||
|
|
||||||
|
[ 0.539992] mtk_soc_eth 10100000.ethernet: mdio-bus disabled
|
||||||
|
[ 10.493918] platform regulatory.0: Direct firmware load for regulatory.db fail
|
||||||
|
ed with error -2
|
||||||
|
[ 10.502828] cfg80211: failed to load regulatory.db
|
||||||
|
|
||||||
|
Check in morning, but whichever port the ethernet cable is plugged into,
|
||||||
|
is considered by the kernel as port 0 - which I think we should treat as
|
||||||
|
WAN
|
||||||
|
|
||||||
|
VLAN 1:
|
||||||
|
vid: 1
|
||||||
|
ports: 1 2 3 4 5 6t
|
||||||
|
VLAN 2:
|
||||||
|
vid: 2
|
||||||
|
ports: 0 6t
|
||||||
|
|
||||||
|
ip link add link eth0 name lan type vlan id 1
|
||||||
|
ip link add link eth0 name wan type vlan id 2
|
||||||
|
|
||||||
|
figure out how to add these to gl-mt300a device config
|
||||||
|
then extedner.nix can add a bridge
|
||||||
|
|
Loading…
Reference in a new issue