I touched and I’m in awe (or should I say ? 🤓). What an awesome piece of software for all audio recording and editing needs.

Audio editing with Ardour stretched over three displays. In the foreground is my button box - that piece of my https://simpit.dev that also assists me during daytime work due to it's shiton of buttons and the extra display in the middle.

And I’d never have found it if it wasn’t for quitting on me yesterday. Which, in all fairness, could be tracked down to an Oopsie in the USB stack for the microphone. A good old fashioned reboot fixed this in the end.

Anyway, I’m in love and I kinda expected it already but @unfa@mastodon.social really has a great quickstart video on it as well: https://www.youtube.com/watch?v=bfTAKv4htDE

TIL: google-chrome ships a script to maintain and update signatures to `/etc/cron.daily/google-chrome`

This failed and brought down the whole update progress in the background due to an unknown signature for the google-chrome package

Found out by chance today – updates are usually that smooth that I didn’t notice they stalled for weeks o0

> The GPG keys listed for the “google-chrome” repository are already installed but they are not correct for this package.
> Error: GPG check FAILED

Solution was to run that script manually (as root) so it could update it’s repository config.

Hello, this note is written with . If you are reading this with any other software via : Gratulation.

Apparently there is a lot of rage about WordPress COM (that’s the company) changing their terms of service.

This here is just another self hosted WordPress instance (that’s the software) federating with the Fediverse *since 2019* – just like a shiton of other software you may never have heard about – and is not affiliated with said company in any way.

So… mebbe cool your jets. It’s not the software that makes weird policy decisions.

Still have the urge to block, bEcAusE WoRdPReSs? Go ahead 🤷 Just waiting for FediverseIsGoingGreat to pop up any day now.

Tried – an online Arduino simulator – and ditched it again after fiddling with it for 5 minutes.

Looks good on first glance, admitted.

Raised my first eyebrow after not finding a diode. Ah well, used a 0-resistor instead as placeholder. I don’t see how I can demo a button matrix like that though.

Checked the download as ZIP function. Hm, there is no upload function, guess I have to register for saving online. Guess I can also just import the project text files via copy and paste again. Not comfortable but I can live with that. Found open tickets for both btw.

Made a little power distribution strip on a mini breadboard. Annoying, I have to adjust the colour of each connecting wire. Nice: The text editor allows mass selection just like vscode, so I can easily update a bunch of colours after making all connections. That’s something at least.

Added and wired up two Neopixels. That was annoying, they default to a perfect rectangle wich results in overlapping connection wires on the auto grid. Always. Tried to add a rotate property of 45 deg on a hunch – that worked! Why is there no option for this like with the resistors?

Eventually I tried to upload the Adafruit NeoPixel lib to get some blinken lights going… please subscribe to upload a library with a monthly fee of (╯°□°)╯︵ ┻━┻

I get it, we all want to earn money. I added whopping _5_ objects and run into the first brick wall. Not like this!

Guess that was a futile exercise.

So… in laws had an issue with their web radio “not connecting to the net”. WiFi was always spotty in that location but now it stopped completely.

Turns out that thing retrieves a channel list from grundig dot vtuner dot com and while the general vtuner website still works the server for does time out.

Apparently the model in question is no longer supported as well. Didn’t dig further. In laws decided to buy a newer model.

In other words: Repeating the same mistake again. Cloud 💩

A person holding a bunch of SSDs like a hand of cards in a poker game.

Once in a while I get a degraded pool. Replacing such a disk and starting the resilver process is usually very easy but there are some caveats when it comes to the of , which is usually the rootfs of the Proxmox system itself. So when a disk dies and gets swapped by a helping hand in the data centre I usually end up with a system that doesn’t boot. Linux really doesn’t like a degraded as rootfs and chances are that it was the new empty disk, that was searched for a bootloader by the BIOS/EFI.

The necessary steps are explained in detail in the “Proxmox VE Administration Guide” under “Changing a failed bootable device” but since I’ll forget this in 10 minutes again I’m writing this up here now so I can find it later via search engines again (this happened!)

So here is the check-list:

  • [ ] Boot a rescue system (out of scope, depends on data centre)
  • [ ] Get ZFS support working (out of scope, depends on data centre / rescue system (yes, a Proxmox Install ISO can be used too!))
  • [ ] Copy partition table from working disk to new disk so we get the same partition layout
  • [ ] Randomize GUIDs for the copied partition layout (having the same partition IDs will confuse the system _a lot_)
  • [ ] Remove degraded disk partition from the rpool
  • [ ] Add new disk _partition_ to the rpool (default is partition 3 for Proxmox)
  • [ ] Reinstall grub / bootloader and/or EFI stuff (default is partition 1+2 for Proxmox)
  • [ ] Don’t bitch to Beko because copying everything here blindly without using the own brain and adjusting to the own situation didn’t work and all data was lost – you break it: you keep the pieces.

sgdisk can be used to replicate the partition table and to get some new IDs:

sgdisk /dev/oldbutgooddisk_n1 -R /dev/shinynewdisk_n1
sgdisk -G /dev/shinynewdisk_n1

Next is replacing the degraded disk in the pool. This can be done in an easy way or the hard way. Chances are that the pool has to be imported first though so changes can be made. This probably needs the “force” Parameter, because the pool was last mounted from another system:

zpool import -f -d /dev/oldbutgooddisk_n1p3
zpool status

This worked with some luck and now the identifiers used by ZFS can be noted from the NAME column. This info is needed to replace the broken|degraded disk partition with the newly created one.

zpool replace -f rpool oldandbrokendisk_n1p3 /dev/shinynewdisk_n1p3
zpool status

This should now show the new disk, where the old and broken disk used to be, and a resilvering process as state. For some reasons this sometimes fails so there is also a hard way. YMMV:

zpool offline rpool oldandbrokendisk_n1p3
zpool detach rpool oldandbrokendisk_n1p3
zpool status -P rpool
zpool attach rpool /dev/oldbutgooddisk_n1p3 /dev/shinynewdisk_n1p3
zpool status

Are we there yet? No. The bootloader has to be installed on shinynewdisk too and the boot partition has to be mirrored as well (it’s outside of rpool). Luckily Proxmox comes with a neat tool for this so this doesn’t have to be done manually alas it is only available on a Proxmox system and not from a generic rescue system. Time to chroot. With ZFS though (pool has to be imported first – see above!):

mkdir /mnt/rpool
# !! Do not forget to change mountpoint back to "/" later!!
zfs set mountpoint=/mnt/rpool rpool/ROOT/pve-1
mount -t proc proc /mnt/rpool/proc
mount -t sysfs sys /mnt/rpool/sys
mount -o bind /dev /mnt/rpool/dev
mount -o bind /run /mnt/rpool/run
chroot /mnt/rpool

The proxmox-boot-tool can now be accessed inside the chrooted environment and the bootloader and boot partition can be written with this again but it’s command is depending on whether it’s status reports GRUB or EFI. The boot|EFI partition is number 2 on a default Proxmox install:

proxmox-boot-tool status
proxmox-boot-tool format /dev/shinynewdisk_n1p2
# With GRUB:
proxmox-boot-tool init /dev/shinynewdisk_n1p2 grub
# Without GRUB:
proxmox-boot-tool init /dev/shinynewdisk_n1p2
exit

It may make sense to check the “Proxmox VE Administration Guide” on this when unsure. The important chapter is “Setting up a new partition for use as synced ESP”. Status will also complain about a missing configured partition ID. That’s from the failed disk that was removed. The offending line may be removed from the suggested configuration file but that warning may as well be ignored. blkid may be used to check on existing IDs.

Are we there yet? NO! The ZFS mountpoint has to be adjusted again, after exiting the chroot environment, or the next boot will fail. For this everything has to be unmounted in reverse order and the pool exported:

zfs set mountpoint=/ rpool/ROOT/pve-1
zpool export -a

Now it’s time for ~~thoughts and prayers~~ a reboot. Good luck future me!