Much like my last extended period of not posting, I have once again had the same.

Life runs quickly, and with long hours experiencing it, there’s a lot less time available here, on the virtual landscape.

I may try to do more updates just so those who are still in touch at a distance will be able to follow, but on the whole, I consider blogging to be the predecessor to social media, and I do not engage social media venues.

Long story short: I might put things that I find interesting here, but on the whole, there are more important things in life to get on with.

Keep on keeping on, my friends!

I’ve been using OpenWRT for years, and the idea of using a little bit of storage on an otherwise-wasted USB port makes the idea of an idling IRC client, or a handful of other minimal services has always appealed to me. I suppose that’s why I still have a 64MB VPS out in the wild.

For anyone who has upgraded to OpenWRT 18.06, you might have discovered that using extroot is a bit less than reliable. For starters, it creates a {extroot}/etc/.extroot_uuid file, which can change any time you flash your firmware. Secondarily, the secondary-tier scripts which handle this are also somewhat eclectic to work with, even if you have a USBTTL interface to be able to use the console on your router.

Here’s the skinny: Stop using UUIDs. Seriously. That’s it.

Consider changing your /etc/config/fstab to use device names (/dev/sdaX) and a device mount rather than UUID, and the problem will go away, as long as you don’t nuke your config. Also, having a bit of swap is nice – just in case building a local kernel rolls a little high.

$ ssh root@192.168.10.1
root@router:~# df | grep overlay
/dev/sda2             10255636    153688   9561276   2% /overlay
overlayfs:/overlay    10255636    153688   9561276   2% /
root@router:~# free
             total       used       free     shared    buffers     cached
Mem:        125116      72792      52324       3304       7196      28056
-/+ buffers/cache:      37540      87576
Swap:      1999868          0    1999868
root@router:~#

The short answer is “Yes”. I’ve opted to rebuild the site, but I’m keeping my baby CMS.

For many, many years, I’ve run this customized site based upon TextPattern. I presumed that it’d be easier to scrap it than to rebuild, having given up on my own CMS years prior for similar compatibility and maintenance concerns (and lets’ face it- poorly written spaghetti code by a PHP3 compliant non-templatable system).

Last year about this time, I stated I was looking for alternatives. I tried Ghost, Grav, and a ton of everything else in between. I just didn’t like them. Still, I started working on HTMLy.. sorry, still not my style for blog posts.

I trudged on, telling myself “another day”. After all, I could always export my content, or just use the old RSS 0.92/2.0 format (there is a long story that goes along with that), and import into virtually anything bloggy- even though RSS is pretty much unheard of now.

Well, it ended up being quite a bit easier than I thought. Not only that, but the community went out of their way to assist me with finding plugins I relied upon which were deprecated, and even some suggestions on moving forward in Web 3.x CSS designs. Thank you, TXP Community!

“Why would I care about running KernelCare on an unsupported distribution”, you might ask me. “What are you talking about? Why are you here?! Get off my lawn!” might be another.

KernelCare is a great idea which sometimes breaks, but usually keeps you well within your SLA. It lets you do nearly-realtime half-week-or-so (I won’t claim 0-day) patching of the kernel without rebooting. This gets your kernel safe enough for the majority of issues – fairly consistently.

KernelCare supports Debian (Kind of), and by proxy- Devuan (Kind of).

For starters, you’re going to need to have the prerequisites installed- Python 2.7 (standard) with a few support tools. I’ll help you get those running (Kind of).

Although soon to be out-of-date, the easiest ways to get this handled is with pip 19. Obviously, I’d strongly suggest checking the base85 code before running it blindly as root, but for the sake of convenience:

pip:
$wget https://bootstrap.pypa.io/get-pip.py -O - | sudo python

Finally, we need an old version of cryptography to work with this older framework (I’m not the biggest fan of this design, either):

$sudo pip install 'cryptography<2.2'

Finally, you can install KernelCare! My modified installer script lives here for now. You’ll want to read the code, then run that, too- if you trust it. The default installer doesn’t work for Devuan. Since there is no direct numeric ID in the os-release file used by CloudLinux, I made it parse $PRETTY_NAME. It only understands ascii (Debian 9), and defaults to jessie (Debian 8) if it doesn’t match.

In the end, you’ll end up with something like this:

# kcarectl -i
Unknown kernel (debian 4.19.0-0.bpo.1-amd64), no patches available

OK, so this isn’t the best example, since I’m running a nonstandard kernel in this example, but it works!

Welcome, one, and all to 2019. Kicking, screaming, and otherwise- we’re all here.

Well, I wanted to bring you something from the archives of “Wait, that happened?”

Here’s an Atari ST demo song by Mad Max. It was so good that I encoded it to MP3 20 some years ago so I could save it to play on my CD MP3 player. Yeah, those were a thing.

Here is a direct link. Enjoy!