Building and Deploying a Real-time Kernel to the Beaglebone Black

Not long ago, a project that involved a low latency app running on a Beaglebone Black (BBB) came up at work. The minimal latency requirement drove the decision to run the BBB with a PREEMPT_RT patched kernel. Luckily, Robert C. Nelson, one of the Beaglebone Black maintainers, maintains a set of scripts for building a kernel specifically for the BBB. Among the many kernel versions offered are variants that have had the PREEMPT_RT patches already applied! The goal is simple: flash the BBB with the latest console image rootfs and Linux kernel (RT patches included). ...

April 22, 2023 · 3 min

Cross-device Password Mgmt Using Pass

Who hasn’t been guilty of reusing passwords across multiple online services. If you make a habit out of reusing passwords, it’s pretty easy to get pwned not for just one service but many all at once. The modern day solution is to use a password manager. This article walks you through setting up password management across Linux and Android devices. Finding a Password Manager There’s no shortage of password managers to choose from. Your choice of password manager is dependent on what devices you use and what your typical workflow looks like. Here’s what a set of basic password manager requirements looks like: ...

March 31, 2023 · 7 min

ASCII Art Generator

Who doesn’t like ASCII art? If you’re like me, you probably thought about making your own ASCII art generator before but gave up on the idea thinking that it’s too complicated. Is the time investment worth it to draw ASCII versions of your favorite LOTR characters? Well, after some Googling, I found out it’s not all that bad and set to write a ASCII art CLI tool. Project Goals The goal is simple: write a JPEG/PNG to ASCII art generator. I came across a great Youtube tutorial by Raphson which shows how to construct the generator in Python: ...

February 26, 2023 · 4 min

Containerizing Runescape

If you grew up gaming in the 00’s and even into the 10’s, you probably have heard of Runescape. Even in 2023, Runescape remains one of the world’s most popular MMOs. The game has evolved significantly over the past 20-ish years of its existence and continues to have one of the most active online communities of any MMO. There’s two main forks of the game: Old School Runescape (OSRS) and Runescape 3 (RS3). Both versions of Runescape have game clients. There’s a Java based, free, and open source client called RuneLite for OSRS. Runescape 3 has the C++ NXT Client. I like to play both versions of the game on a Fedora box. It would be nice not to have to install a plethora of dependencies to support either client (one of which is only officially supported on Debian based distributions). ...

January 14, 2023 · 5 min

Docker Assisted Driver Dev and LDD3

Where does a newbie start their journey into the Linux kernel? Device drivers is the most common answer. Despite its age, Linux Device Drivers 3rd Edition (LDD3) remains one of the best options for learning about device drivers. There are challenges in using such an old text. LDD3’s code examples target the 2.6.10 kernel. At the time of this writing, the kernel is at version 5.19! That said, fixing API deltas just adds to the fun. This article talks about setting up an environment for LDD3 experimentation and the LDD3 experience itself. ...

September 18, 2022 · 6 min

Cosmo: A Hobby x86 OS

At the beginning of 2022, I set a personal goal to implement a bare bones OS. The first step was to define what success would look like for the project. The goal is to create an OS that could allocate a single process that adds two numbers and prints the result to the screen. It took a month long journey into the world of x86 emulators, NASM assembly, and architecture reference manuals to get remotely close. ...

February 23, 2022 · 7 min