Hi! You are viewing the archive of unrelenting.technology. This website is no longer updated, my current one is val.packett.cool. Check it out instead :)

Tag #freebsd

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

Sometimes you can learn a lot from a thread on the orange website. TIL: diskinfo(8) (check out the BUGS section :D) and recoverdisk(1).

Happy new year everyone!

Here’s a tiny project I worked on today. I’m also working on a container thing

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 #if 0?

The FreeBSD Foundation has a “Uranium Donor” now. I guess they need all that uranium donated to them :) Seriously though, this makes me want to use WhatsApp more. Thanks!

I made Bluetooth Low Smart 4.0 Energy LE Thing work on FreeBSD! I mean, the node.js BLE thing that talks to the USB dongle directly through libusb, but that’s what I needed for Node-RED :) Four PRs: node-usb node-bluetooth-hci-socket noble bleno

The chipKIT WiFire board that runs LiteBSD is more expensive than the Raspberry Pi, an actual powerful computer, capable of running FreeBSD. Other boards listed on the LiteBSD wiki aren’t even available on eBay. :(

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 solution was to use the JavaScript devtools to automate typing the ssh key into the console and ssh to localhost as the regular user. The script was suggested by someone on DigitalOcean’s support site. I had to modify it a little to work with newlines. However, mistakes were introduced: some letters ended up as lowercase instead of uppercase or vice versa. After getting in as a sudoer, I was able to set up networking.

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 libressl, libressl-devel and 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

The default build options for Blender in FreeBSD are weird. CYCLES=offFFMPEG=offCOLLADA=offCAMERATRACK=off‽ Why. Another package to compile instead of pkg installing…

By the way, only recently I’ve learned that Blender is the FOSS answer to not only 3ds max + V-Ray, but also Premiere/Final Cut and After Effects/Motion. (Damn, that makes so much sense! If you have a 3D animation editor, if you put video into it, it becomes a video editor!)

The sequence editor looks like old Final Cut, not new Final Cut… But it’s Blender. The program that shows Python code in UI elements’ tooltips to show how to do the same things programmatically. I guess I should be able to make a plugin that makes the timeline magnetic, if such a plugin doesn’t exist yet.

Oh also this video series is sooooo pretty

tfw you’re browsing FreeBSD commits and suddenly there’s a list of russian holidays. TIL /usr/share/calendar/…

I like how one of the dmesg lines on my laptop is this:

acpi_tz0: _CRT value is absurd, ignored (200.1C)


The Crystal compiler now works on FreeBSD! And other platforms will be much easier to add too.

I’m impressed with the compilation speed — the compiler compiled itself in about 15 seconds!