Managed to get Servo to run with Capsicum sandboxing on FreeBSD!
Adventures in printing:
The proprietary blob plugin for HPLIP is ported to FreeBSD by literally saying "this Linux library is actually for FreeBSD" and adding a tiny implementation of a couple glibc functions, amazing! But HPLIP is not necessary for my printer, foo2zjs is an open source driver that supports it.
PostScript is not PostScript, apparently. (Actually my printer wants PDF, it seems — setting generic PDF on the client side when network printing over CUPS worked.)
And if CUPS doesn't see the printer when using the open source drivers, it IS a permissions issue, make sure to restart devd to activate the rule that's included with the cups package. (The fact that HPLIP sees the printer is… odd. Was it running HPLIP stuff as root?)
evdev support in the psm driver (with proper support for Synaptics touchpads and Thinkpad Trackpoints) landed in FreeBSD -CURRENT! Just set up libinput in Xorg for all devices, very nice. (Without device autodetection — with devd, Xorg wants to use the old keyboard and mouse drivers. Using the udev backend would work, but freebsd-ports-graphics is currently meh.)
Quake Champions is awesome (as in the gameplay — performance is meh).
Amazon Web Services is not awesome: it wasn't really obvious that promotional credits aren't spent on reserved EC2 instances :( Also HardenedBSD was behaving weird on it (secadm kernel panic, Python libssl segfaults).
But with regular FreeBSD I've set up a Matrix homeserver (Synapse) on EC2! I am now @greg:unrelenting.technology :) It's working as my new IRC bouncer, so with that I've been able to say goodbye to the previous VPS that served this website (which was still running my ZNC).
TIL: Intel chipsets have a hardware watchdog. Just like a Raspberry Pi.
Speaking of the Raspberry Pi watchdog (
bcmwd): it supports 15 seconds max interval. But if you try to run FreeBSD’s
watchdogd with 15 seconds, it’ll still complain. Look in the output — for some reason
watchdogd rounds it up to 17 or something. So the max interval is 9.
Got my one character patch merged into the FreeBSD kernel :D
Interesting commit: “Remove a death threat from the FreeBSD sources”. Honestly “DO NOT, UNDER PAIN OF DEATH, [do X]” doesn’t sound like a threat but it’s nice to see that many committers don’t want that kind of stuff in the source.
But why change
#ifdef DONT_EVEN_THINK_ABOUT_IT to
Three days ago, I received an email from DigitalOcean. They said that they were doing some maintenance and my VPS, the one that currently runs this website, will be rebooted soon. I didn’t pay much attention to that.
Today, I wanted to look at my website… and it didn’t open. The server didn’t even respond to
ping. Yes, yes, I should use a service that monitors my stuff, I know. Few people care about my website though :D
So I rebooted the server, went to the DigitalOcean VNC console, logged in… as a regular user that can’t
sudo. Becuase For Security™, my sudoer account does not have a password. Only authorized SSH keys. Fuck.
The actual problem? bsd-cloudinit didn’t work because a symlink in
/etc/rc.digitalocean.d was broken, and as a result, the network settings were not set.
I’d say that the actual actual problem is the use of
cloud-init stuff instead of, you know, DHCP/SLAAC.
So I’m switching between
openssl on my FreeBSD Raspberry Pi to see if any of them works (without segfaulting) when used from Python (spoiler: they don’t). And suddenly! Deinstalling
openssl results in this:
pkg: sqlite error while executing DELETE FROM packages WHERE id = ?1; in file pkgdb.c:2305: database disk image is malformed
But I can query
/var/db/pkg/local.sqlite using the SQLite shell! WTF. Maybe some index got corrupted or something because of the awful microSD storage of the Pi.
So, recovery procedure I figured out: move the database to a different place, recreate a new one (run, like,
pkg upgrade), use a clever grep trick to separate the data from the schema (on the old DB, obviously), do some manual editing on the resulting data-only file (the trick doesn’t catch
pkg_search because it’s a virtual table created using an
INSERT or something), pipe the resulting SQL into the newly created database, use the shell to delete everything related to the offending package.
No, pkgng doesn’t like it when you just dump the DB into a new file, it will try to recreate tables as if you were upgrading. For some reason.
Upgraded FreeBSD on my laptop to
drm-next-4.6 (branch with GPU drivers ported from Linux 4.6). So,
*ERROR* timeout waiting for SBI to complete read transaction dmesg spam (that slowed down booting for a couple seconds) is gone. New dmesg spam is
hdac0: Unexpected unsolicited response from address 0: 00000000 at the end of the boot process, right before the login prompt, and not taking any time.
clinfo doesn’t show
self-test failed anymore. VAAPI video decoding acceleration still works. Haven’t tried connecting an external display yet.
The only real problem is that Firefox with full OpenGL compositing (
layers.acceleration.force-enabled) is artifacting, but whatever, it’s fine without that.
Current status: reinstalling 1114 packages because o m g the ABI version changed to 12 :D