Mumbling about computers
https://blog.davidv.dev (RSS)
Running VMs just because it's quick and easy
All I (now) know about booting x86-64
A journey into Kubernetes: key concepts from a systems engineer's perspective, with a detour to yaml-template-hell.
Getting the PCI adapter all the way to Linux
Creating a simple driver for a simple PCI-e device (in QEMU)
Creating a very simple PCI-e device in QEMU
Replacing vDSO entries on more architectures with a bang
Setting up a wireguard backup tunnel over LTE
I wanted to play around with some projects on RISC-V, so I got a VisionFive 2 and tried to add it to my Nomad mini cluster. Surprisingly, nothing worked on this experimental platform! First, Nomad does not provide builds on RISC-V, and it does not build, as it has a transitive dependency on boltdb, which itself does not build for...
In part 2 I was stuck trying to make Rockets! work with optimized bytecode; I pursued this for a bit and realized it was probably never going to be fast enough. So I set out to write a compiler. It was a dumb idea, but it worked. For a proof of concept, I started writing the compiler in C++. I do not really know...
Implementing recursive defaults for dataclasses with dacite
Replacing time-related vDSO entries at runtime
Improving the performance of my RP2040 based Pico-8 handheld console
Building a RP2040 based Pico-8 handheld console
I've got fed up with some latency I've been experiencing when using the work-issued VPN (remote desktop over IP), and wanted to get measurements, to see if the latency perceived is real.
The approach is as basic and end-to-end as I could think of: emulate a USB keyboard pressing a button and measure the light levels changing on screen.
Learning GTK to build a mobile hackernews app, with ad-blocker and reader mode
The process behind creating multiple flash-able OS disk images from Dockerfiles and swapping between them on the host
The never-ending rabbit hole I found while trying to build a simple MQTT client for the kindle
I own a TP-Link X which is an ath79 based wireless router, which runs OpenWrt. I've been trying to get some specific software running on the router to do wifi-based presence detection to enable some automation, and I thought it'd be nice to get some experience doing this in rust. Compiling for the...
Capturing packets from an android device on linux To capture bluetooth on android you have to enable HCI snoop log, you can do so by going to Preferences -> System -> Developer Options...
How to create a flash-able CentOS disk image
What is involved in flashing a disk image over PXE, includes grub, kernel, initrd and disk expansion
Putting a raspberry pi in a 60's CRT for a gift
Developing a tool to download e-books
I replaced my home dnsmasq with nsd, unbound and dhcpd for a more reliable environment.
A small refactor in my IOT framework with the goal of simplifying the API
Hooking non-smart devices into the house automation framework
I am trying to debug why my IOT devices don't always recover from a DNS/DHCP failure – it is quite hard as they simply get stuck, not doing anything until rebooted. I'll go over what I am currently doing to try and shed some light on the possible causes. Preparing for disaster Only one of the devices I have currently installed is accessible from the serial debug port – the rest are...
Idea Most nights I read from my Kindle until fall asleep, leaving my night light on.. after a few hours I usually wake up, annoyed at the light and turn it off, but some nights I cannot fall back asleep.. So, I thought why not have the light turn itself off when I fall asleep? Given that I can already turn it on/off via my home automation scripts, it should not be too difficult to detect somehow that my kindle...
I do not like reddit's new UI - I liked the old and compact one a lot more; see the image for comparison I kept getting annoyed by Firefox' autocomplete leading me to the 'www.reddit.com' instead of 'old.reddit.com' and I decided to modify my browsing history. A quick search online pointed me to
After setting up my lamp I realized that I had left the built in LED permanently on. For a nightlamp, this is extremely annoying and given that taking it apart was going to be a hassle, I decided to do it for one last time and do it right. The plan The simplest way I could think of was to replace a file in the VFS of the sensors so that it gets reloaded on reboot. For this, I needed to...
Idea I bought a few sonoff basics and wanted to set up some sensors and triggers around the house, with some restrictions: If a sensor or switch replaces something existing, then there should be always a fallback to that functionality even if there's no connectivity. Code should be fully open There should be no complex infrastructure to support this
After adding a fancy router to my setup and adding some monitoring I decided I could segregate my network, as the current state was just bunching everything on the common VLAN. New...
After adding a fancy router (see here) to my setup I decided to monitor my network (now that it is possible). Having already a Grafana+InfluxDB setup for my standard monitoring I decided to (somehow) feed the network data into this setup.
I got a 3D printer, the Anet A8. After fiddling with the parts for a few hours I managed to get it assembled. Issues Motor not working After setting it up and configuring the printer, I noticed my...
I wanted to replace my pfSense VM with a dedicated router so I could take my homelab offline without losing internet connectivity, so I bought an Espressobin Basic setup
I want to have internet usage data from my router as it cannot be put in bridge mode. I currently use the services of T-Mobile (NL). Investigating the data These 'smart' people decided to do a POST that never returns. I guess that's to avoid people like me trying to get the...
This is a recompilation of various sources to get gpu passthrough on Debian. General notes Update your kernel. Seriously, 90% of my issues were solved by being on 4.14.7 AND I got better performance with the NPT patch. Passthrough a usb controller. I had slightly jittery pointer movements...
This is my adaptation of this for debian stretch. Mount the iso and copy the contents for rw. Change the menu to load SSH on boot by default, edit isonew/isolinux/gtk.cfg (To see what file to edit in case of future changes you can run grep "menu default" isolinux/*) I replaced the entire...
I wanted to write something to keep up with my buzzword-bingo, so I rewrote my blog using hip technologies. The idea behind the blog-post flow is to: Commit Markdown files to a GitHub repository Get GitHub to trigger a build on my Jenkins server Sync the resulting built to the web server hosting my...
Serving content over https is trivial, right? It's not so trivial if you want to learn about HA and keep everything working with SSL. This is how my current setup is working: The inbound TCP connections on port 443 get scanned with sslh and redirected based on the protocol, SSL connections get redirected to the LoadBalancers via Round Robin DNS. The LoadBalancers decide where the...
Nginx is awesome. I use it everywhere, for load balancing, file caching, reverse-proxying, rate-limiting, etc. Now, I'm trying to cache a file served from an X-Acccel-Redirect header and it seems impossible. My idea was to resolve requests to files in a back-end and serve these files without a client redirect. In fact, the original files are not accessible by the client. For...
I've been trying to move our video content from youtube to our own server, but keeping in mind that we add about ~40GB / Month to our collection (and it never goes away..) and that DigitalOcean's disks are not very cheap, I decided to serve our videos directly from Backblaze. Currently there's no CORS support on B2 ( https://help.backblaze.com/hc/en-us/articles/114094192774-Does-B2-have-CORS-headers-support- ) Backblaze...
I reached a point where I could recreate all (or most) of my labs with ansible. What I had not yet configured is an extensive backup system. I'll explain here what I did. Backing everything up to a central location For this I use a combination of...
I have set up a system with /dev/sda as its only disk. I want to avoid any downtime and unplanned surprises (disks deciding to die) so I thought I'd set up the system in a RAID1. So I need to: Copy the partition table from sda to sdb Create the disk array with the new disk and a missing disk Create filesystems on the new partitions (sdb) Set up mdadm Copy the data from...