Commit graph

103 commits

Author SHA1 Message Date
Chandler Swift 3237237cdd
Reduce bootloader timeout for faster boot 2024-11-02 00:26:21 -05:00
Chandler Swift 3c8150a5aa
Fix stage2 IPv6 networking
When `ip=dhcp` is passed as a kernel param (which I assume, but don't
know for sure, just gets passed to systemd and probably then to
systemd-networkd or NetworkManager or whatever does the networking in
the initrd?), IPv6 doesn't come up. With the param, bad IPv6:

```text
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 3c:52:82:00:46:d6 brd ff:ff:ff:ff:ff:ff
    altname enp0s31f6
    inet 192.168.1.20/24 brd 192.168.1.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 2601:441:8301:8af7:94e1:4d4c:73c2:ac31/64 scope global temporary dynamic
       valid_lft 322763sec preferred_lft 86330sec
    inet6 fd0a:8f9f:6f83:0:3e52:82ff:fe00:46d6/64 scope global dynamic mngtmpaddr proto kernel_ra
       valid_lft forever preferred_lft forever
    inet6 2601:441:8301:8af7:3e52:82ff:fe00:46d6/64 scope global dynamic mngtmpaddr proto kernel_ra
       valid_lft 322763sec preferred_lft 322763sec
    inet6 fe80::3e52:82ff:fe00:46d6/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
```

whereas without the param I get good (whatever that means) addresses:

```text
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 3c:52:82:00:46:d6 brd ff:ff:ff:ff:ff:ff
    altname enp0s31f6
    inet 192.168.1.20/24 brd 192.168.1.255 scope global dynamic noprefixroute eno1
       valid_lft 43188sec preferred_lft 43188sec
    inet6 fd0a:8f9f:6f83::33b/128 scope global dynamic noprefixroute
       valid_lft 43190sec preferred_lft 43190sec
    inet6 2601:441:8301:8af7::33b/128 scope global dynamic noprefixroute
       valid_lft 43190sec preferred_lft 43190sec
    inet6 2601:441:8301:8af7:b572:fc6c:ba27:dcdb/64 scope global temporary dynamic
       valid_lft 322965sec preferred_lft 86235sec
    inet6 2601:441:8301:8af7:f3f0:df23:a6bb:7d25/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 322965sec preferred_lft 322965sec
    inet6 fd0a:8f9f:6f83:0:485e:f55d:fa1d:cef4/64 scope global temporary dynamic
       valid_lft 604790sec preferred_lft 86235sec
    inet6 fd0a:8f9f:6f83:0:7851:1417:807:f017/64 scope global mngtmpaddr noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::eb0c:1983:24a5:3e42/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
```

I'm honestly not entirely sure what this _should_ look like, but what I
_do_ know is that in the "bad" configuration, SSH takes an extra ~10s to
connect as it has to wait for two ~5s `No route to host` timeouts:

```console
[chandler@oscar:~]$ ssh -v root@bert
OpenSSH_9.8p1, OpenSSL 3.0.14 4 Jun 2024
debug1: Reading configuration data /home/chandler/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 5: Applying options for *
debug1: Connecting to bert [fd0a:8f9f:6f83::33b] port 22.
debug1: connect to address fd0a:8f9f:6f83::33b port 22: No route to host
debug1: Connecting to bert [2601:441:8301:8af7::33b] port 22.
debug1: connect to address 2601:441:8301:8af7::33b port 22: No route to host
debug1: Connecting to bert [192.168.1.20] port 22.
debug1: Connection established.
```

Future work: What _should_ my IPv6 config look like? Is there any way I
can keep network config stable between the initrd and the booted system?
Why is this recommended against?

> The default is false when systemd is enabled in initrd, because the
> systemd-networkd documentation suggests it.
2024-11-02 00:26:21 -05:00
Chandler Swift 4d74ca100a
Use DHCP for first stage boot
This approach was recommended by nixos.wiki, and formerly by
wiki.nixos.org, which has since switched to instead mentioning
`boot.initrd.network.udhcpc.enable = true;`. It's not entirely clear to
me which has an advantage over the other.

This kernel parameter means that the kernel itself does the DHCP
request, which is pretty neat! That seems to get set up in this file,
though I haven't tracked down the exact details:

https://github.com/torvalds/linux/blob/master/net/ipv4/ipconfig.c

It seems like udhcpc may _also_ be enabled (since networking.useDHCP is
set for the main system?), so maybe that could be disabled, but this
appears to work so I'm rolling with it for the time being!

Without the kernel param set, udhcpc tries and fails with errors like
this:

```
<<< NixOS Stage 1 >>>

loading module dm_mod...
loading module af_packet...
running udev...
Starting systemd-udevd version 255.9
bringing up network interface eno1...
acquiring IP address via DHCP on eno1...
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: no lease, failing
Passphrase for /dev/disk/by-uuid/00000000-0000-0000-0000-000000000000: _
```

Compare with a working output:

```
<<< NixOS Stage 1 >>>

loading module dm_mod...
loading module af_packet...
running udev...
Starting systemd-udevd version 255.9
bringing up network interface eno1...
acquiring IP address via DHCP on eno1...
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.1.20, server 192.168.1.1
udhcpc: lease of 192.168.1.20 obtained from 192.168.1.1, lease time 43200
Passphrase for /dev/disk/by-uuid/00000000-0000-0000-0000-000000000000: _
```
2024-11-01 23:50:10 -05:00
Chandler Swift d104278ad1
Add Factorio Server 2024-10-31 02:04:15 -05:00
Chandler Swift db88613987
Add basic prometheus/grafana setup 2024-10-31 01:50:48 -05:00
Chandler Swift 40bb9b51f6
Start setting up bert 2024-10-31 01:06:38 -05:00
Chandler Swift 52e33b951c
Use home-manager thunderbird option 2024-10-20 01:05:34 -05:00
Chandler Swift 98524cf76e
Add udev rules for qmk 2024-10-20 01:05:34 -05:00
Chandler Swift 8ff279e2cf
Add power-profiles-daemon
Required for automatically switching profiles, apparently:

https://pointieststick.com/2021/07/23/this-week-in-kde-power-profiles-and-a-more-polished-kickoff/#comment-23715
2024-10-20 00:58:24 -05:00
Chandler Swift aec6761767
Add alsa-utils
This was useful at VBS for playing music with aplay, and I sometimes use arecord. Plus alsamixer is in here\!
2024-10-20 00:25:12 -05:00
Chandler Swift d1dbf62076
Install nonfree packages inline with home-manager 2024-10-20 00:20:09 -05:00
Chandler Swift 8ea69c6f23
Install additional applications 2024-10-20 00:18:35 -05:00
Chandler Swift c002898a9b
Enable kdeconnect 2024-10-20 00:06:47 -05:00
Chandler Swift a5805ff452
Install atuin 2024-10-20 00:06:27 -05:00
Chandler Swift cdc0c72cfa
Switch to pgtk emacs for better wayland integration 2024-10-20 00:05:41 -05:00
Chandler Swift 95a21db341
Install Chromium (mostly for web troubleshooting) 2024-10-20 00:05:08 -05:00
Chandler Swift 9a93809015
Install direnv and nix-direnv 2024-10-20 00:04:09 -05:00
Chandler Swift f8476a6dcc
Enable JACK audio server 2024-10-20 00:03:34 -05:00
Chandler Swift 1182eafec8
Update gitconfig 2024-09-15 21:58:53 -05:00
Chandler Swift 3fc3bd97f3
Add binfmt config for aarch64
This may be able to be refactored once this PR is merged:

https://github.com/NixOS/nixpkgs/pull/334859

This configuration is based on this config:

182ca2c66f/mod/binfmt.nix

linked from this comment:

https://github.com/NixOS/nixpkgs/issues/160300#issuecomment-2156003171
2024-09-15 21:56:08 -05:00
Chandler Swift 08958c0a78
Manage Firefox with home-manager
I'm not exactly sure how to manage profiles; I wasn't able to get this
to work so I just ended up managing profiles manually.
2024-09-15 21:52:27 -05:00
Chandler Swift 6f10416cdd
Add chandler to cdrom group for CD ripping 2024-09-15 20:55:07 -05:00
Chandler Swift 9d5f932269
Enable Ozone for chromium-based apps 2024-09-15 20:54:47 -05:00
Chandler Swift 534c0da01b
Remove no-longer-used sound.enable flag
https://github.com/NixOS/nixpkgs/pull/326262
2024-09-15 20:53:42 -05:00
Chandler Swift a34bc61fe6
Enable atd, for the at command
2024 VBS:

    echo "aplay /home/chandler/vbs/transition.wav" | at 19:57
2024-08-18 17:56:52 -05:00
Chandler Swift d842379e91
Enable plymouth boot
Currently, doesn't have a GUI for LUKS key entry, and isn't flicker-free, which is potential future direction for improvement.
2024-08-18 17:55:31 -05:00
Chandler Swift 3e1c66d163
Add Discord to oscar 2024-08-05 21:03:33 -05:00
Chandler Swift 07bd6b1e33
Add steam 2024-08-05 20:44:38 -05:00
Chandler Swift c8036f9a55
Add Factorio client to oscar 2024-08-05 20:43:13 -05:00
Chandler Swift 5e3015d5e3
Validate checksum of Factorio mods 2024-08-05 20:04:50 -05:00
Chandler Swift b74fc406d5
Add Factorio (vultr) server 2024-08-05 20:04:32 -05:00
Chandler Swift 6e16dd7162
Add Cloudflare DNS record creation to create-server script 2024-08-04 00:33:01 -05:00
Chandler Swift 75f7dfa9ed
Find ipv4 address when server created 2024-08-04 00:33:01 -05:00
Chandler Swift a3cf49de01
Add TODO check to pre-commit-hook 2024-08-04 00:33:01 -05:00
Chandler Swift bce4a9b318
Add default git pre-commit hook for all repos 2024-08-04 00:33:01 -05:00
Chandler Swift 7b7847571a
Add basic create-server.py script for spinning up new nixos servers from vultr 2024-08-04 00:33:01 -05:00
Chandler Swift 695c0eba9e
Add initial config for animal 2024-07-07 20:37:49 -05:00
Chandler Swift eba9eb03f4
Manage git with home-manager 2024-05-23 23:57:49 -05:00
Chandler Swift 8ed77d3964
Fix messed up emacs option 2024-05-23 23:57:13 -05:00
Chandler Swift bb8d2762b3 Add prismlauncher and libreoffice-qt 2024-05-23 23:20:30 -05:00
Chandler Swift b9a28d4115 Disable the firewall 2024-05-23 23:20:15 -05:00
Chandler Swift 350aec12ef Enable some services 2024-05-23 23:20:07 -05:00
Chandler Swift b6a8a32a38 Fix warnings about moved configuration options 2024-05-23 23:15:49 -05:00
Chandler Swift 774c113659 Add home-manager 2024-05-23 23:14:35 -05:00
Chandler Swift 45b51d92d0 Add nixos-hardware import 2024-05-23 23:13:44 -05:00
Chandler Swift 79a372de03 Run latest kernel instead of LTS 2024-05-23 23:12:06 -05:00
Chandler Swift e61f7d59dd Enable fingerprint reader 2024-03-11 21:13:00 -05:00
Chandler Swift 2476c4530f Enable gpg and ssh agents 2024-03-11 21:12:46 -05:00
Chandler Swift 8f789c24c0 Add git 2024-03-11 21:12:23 -05:00
Chandler Swift fdc0f0df3f Update xserver xkb per warning 2024-03-11 21:12:14 -05:00