Nothing
Another span of time has elapsed between “TGIF” and “Well, I guess it’s time to get ready for work tomorrow.”
I was a little bummed because it felt like I hadn’t moved my life in any particular direction. That’s not to say that nothing happened, but let’s just say it was a weekend about nothing.
The supermarket was out of bread so I made some bread. I finally got to use the batard banneton I got in Copenhagen over the summer.
I rebuilt this corner of this hunk of piano so that eventually I can make a bench out of it. Now I need to do the other corner and it feels like this project hasn’t even started yet in spite of the hours I’ve put in so far.
We made some weird cupcakes. I accidentally overfilled the pan for a few of these and they had these funny duckbill shapes on top and we decided that just made more surface area for frosting and sprinkles.
I jumped into the retro console emulation scene. It started as a hankering to play Metal Gear Acid again, and turned into learning how to use VirtualBox to spin up a VM just to run this Windows-only flash utility to shoehorn Chrono Trigger into this SNES Classic I bought on impulse a while back and never really touched afterwards.
This is actually great because I’d never really touched hardware virtualization before for lack of necessity. I totally skipped straight to Kubernetes and Docker, and kind of felt like I was floating around without a foundation for a while until now. Now I have a true appreciation for not having to create an entire operating system in a bottle just to run a single stubborn program.
Till now it had been just another case of a how without a why.
In any case, this is a great opportunity to remind myself of why my resolution for this year was to write more. I’ve been feeling very adrift and directionless lately. I go to bed on Sunday nights in a panic that I hadn’t made good enough use of my weekend. I worry because I don’t feel any closer to anything for all the free time that had passed – time that I alone am responsible for and could use to maximum effect if I so pleased, and in the end I feel like I’ve gone nowhere, when in fact I’ve gone everywhere and back.
Writing is documenting, and I’m better with fact than fiction. I need to write more just so that I can show myself that, actually, things are different than they were on Friday.
Minecraft
Finally got around to doing this. Now to figure out why.
apiVersion: apps/v1
kind: Deployment
metadata:
name: minecraft
labels:
app: minecraft
spec:
replicas: 1
selector:
matchLabels:
app: minecraft
template:
metadata:
labels:
app: minecraft
spec:
containers:
- name: minecraft
image: itzg/minecraft-server
volumeMounts:
- mountPath: /data
name: minecraft-vol
subPath: data
ports:
- containerPort: 25565
env:
- name: "EULA"
value: "TRUE"
volumes:
- name: minecraft-vol
persistentVolumeClaim:
claimName: minecraft-pvc
---
apiVersion: v1
kind: Service
metadata:
name: minecraft-svc
spec:
selector:
app: minecraft
ports:
- protocol: TCP
port: 25565
targetPort: 25565
type: LoadBalancer
eGPU
Well, I’m not sure what to make of this one. I ended up getting an external GPU for my Dell XPS 9315 laptop. Basically, it’s a metal box with a power supply and a PCI-E slot that you put a standard graphics card into, and run a Thunderbolt cable to your laptop. At first I just got the enclosure and tested it with an old NVidia GTX 1060 I had in the basement, and when that worked fine I went and got a 4070 during Black Friday. I figured, I’m going to work my way to a gaming PC eventually, but I might as well do it in installments and reap some benefits until it’s complete.
Unfortunately, the 4070 is bottlenecked somewhere along the line and I’m getting inconsistent performance. It does work though. I’m getting into the 30s with Baldur’s Gate 3 and 40s in Doom Eternal. Control gets into the 30s but grinds when I turn on RTX.
There’s also the added complication of this laptop running on Linux and Xorg being very unhappy when you hot-unplug GPUs. If I unplug the GPU everything freezes and I need to do a hard reset. I guess I don’t blame it though. The GPU is supposed to be bolted in and secured inside a case along with the rest of the computer, not off to the side with a single USB cable running over to where the CPU is. Since Xorg likes to have its displays defined at the start, I need to keep a separate xorg.conf file that includes:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVIDIA GeForce RTX 4070"
Option "AllowExternalGpus" "True"
Option "AllowEmptyInitialConfiguration" "true"
BusID "PCI:3:0:0"
EndSection
…But xorg will not start if it looks for the 4070 and does not find it, so I need to delete it and restart if I want to undock my laptop.
And so I have this:
#!/bin/bash
echo "Changing xorg.conf"
if [ ! -f /etc/X11/xorg.conf ]; then
echo "Nvidia config does not exist"
cp /etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf && reboot
else
mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup && reboot
fi
There’s probably a more elegant way with udev rules and stuff where I can just have it detect whether or not the eGPU is plugged in at boot, but I think that can be a next year problem.
Happy New Year!
Steam Deck Debian
This was way easier than I thought it would be, but I don’t know why I expected anything else.
(also, love the default tate mode)
SSD
Last week we stopped by at Microcenter and I picked up a 1TB Samsung SSD on sale. The one in my Dell XPS13 was 256Gb. I had only occupied about 40Gb of it becuase I had been storing most of my heavy stuff on a repurposed Macbook Pro in the closet with a few spinning hard drives plugged into it. I should probably write a thing or two about that later.
Anyway, I put it off installing it all week because I had a feeling I would run into problems, and indeed I did.
First, I needed to boot into a temporary OS on a separate drive. I decided on Debian on a live USB because, frankly, I kind of don’t really know much about the differences between the distributions other than that Debian just works most of the time for what I need to do. This would allow me to use gparted
to resize the main partition down to the 40Gb that was actually in use. Otherwise dd
would copy all 256Gb in the partition, including the empty part (gparted
is not included in the Debian live image so I had to apt get
it).
Next, since the laptop would only support one USB at a time, I would need to have yet another storage medium to offload the contents of the original SSD onto, perform the SSD swap, then load it back onto the new SSD. Fortunately, the laptop has a MicroSD slot, and I had a 64Gb MicroSD card. It would be as simple as: #dd if=/dev/nvme0n1 of=/dev/mmcblk0
. I usually tack on bs=4M status=progress
to save a little time and to watch the progress, becuase I hate when I hit enter and see nothing till it’s done. Anyway, I did that, put the new one in, and ran dd
in reverse. Then, I used gparted
again to expand the partition out to the full 1Tb. That went much faster than shrinking it down.
Ideally, the only thing left to do was to boot into it and carry on. Instead, I was rewarded with the BIOS telling me I had no bootable drives.
Next followed about four hours of me trying just about everything, including starting the whole process over again just to end up in the same place. I messed with GRUB a few times, reinstalled it a few times, reinstalled Arch a few times (did you know the arch-install-scripts
is also in the Debian repos? And so you can run arch-chroot
and other stuff to mess around with an Arch installation.). Everything took so long because it was a loop of: change a thing > reboot > see if it worked > didn’t work > try another change.
Anyway, ultimately I learned that the uuid
is a property of partitions, and NOT a property of the drive. Originally I thought it was sort of like a MAC address/serial number baked into the drive. Instead there are ways to set it logically that I will not go into because I think the root of my problem was that, when I dd
‘ed my drive, it made a bit-for-bit clone to my SD card, which included the uuid
s of the partitions on it, and then cloned it again to the new drive. I hadn’t removed the SD card when I booted up again, so when GRUB went to look for a partition to boot, it found two with identical UUIDs, which is the opposite of what you’d want from supposedly universally unique identifiers.