I'm currently at a remote site and wanted to stream
some games from my bazzite box at home\*. Unfortunately I
needed to enter a PIN to allow connections from my
steamdeck I had with me. After a bit of tinkering, I
found a way to **interact with my remote bazzite** instance:
Preconditions:
* you have sudo privileges without a password
(Alternatively you can do `chmod 777 /dev/dri/card0`
or put yourself to the video group)
* `systemctl start ydotool.service`
To see the screen:
```bash
ssh tox@bazzite 'ffmpeg -device /dev/dri/card0 \
-framerate 5 -f kmsgrab -i - \
-vf "hwmap=derive_device=vaapi,hwdownload" \
-g 120 -f h264 -' | mpv - --no-cache
```
To send input:
```bash
ydotool type "ABC"
ydotool key 28:1 28:0 # enter
...
```
It's not good enough to play games, but it helps to quickly
interact with the steam UI when there's no remote desktop
available.
\* I'm using remoteplay + wireguard + vxlan to stream
my games from remote. Works surprisingly well.
Unattended windows installations are a nightmare. But there's a tool that can help: [schneegans.de/windows/unattend-generator](https://schneegans.de/windows/unattend-generator/)
both **`mdadm` and `pvcreate`** won't override block
devices if they contain an existing raid or lvm
signature. For pvcreate, it stops working when you add
the block device to a volume group.
**Human brains** are surprisingly bad at estimating volumes.
**Hetzner** deploys different mainboard types with their
bare metal servers. That means: Ordering a server with 4
SSDs is an easy task, upgrading a given server from 2 to
4 SSDs isn't.
**Amazon SSM** port forwarding is capped around 1MB/s.
Not enough to do database dumps in a reasonable amount
of time.
**`pthread_mutex_unlock()`** is a noop if a mutex was
unlocked before. Except on OpenBSD. OpenBSD
`abort()`s.
**Hetzner Object Storage** is not yet [stable enough](https://www.reddit.com/r/hetzner/comments/1scpe8c/hetzner_s3_is_an_abdomination_of_a_product_and/) to be used in production
**Kubespan** has issues when the nodes have temporary
network addresses. This is especially the case when you
use the IPv6 Privacy Extensions. A workaround - for
which I feel bad for - is enable the endpoint filters
in the talos config.
```yaml
# ...
machine:
network:
kubespan:
enabled: true
advertiseKubernetesNetworks: true
filters:
endpoints:
- 0.0.0.0/0
# ...
```
**Cilium Agents** don't like it when they get OOM killed. They take the entire node network down.