My BeagleBone Black came pre-installed with a 2-year-old Debian Wheezy on it’s eMMC chip (image, hashes). The out-of-the-box experience is actually quite impressive: the BeagleBone presents itself over the USB bus as a mass storage device with the needed drivers and some documentation. Once you install the driver (only the RNDIS is needed, the Black does not have a serial-over-USB anymore), you can just surf to the BeagleBone and control USER-LEDs from your web browser. Impressive!

But I don’t want nor need these fancy features eating up CPU, disk space and RAM, so I went looking for a minimal Debian image to use. Besides the bare minimum, I wanted the Ethernet-over-USB to work, and SSH.

  1. Get a copy of the BeagleBoard image builder
  2. Build a rootfs tarball for the desired config. I used, which matched my requirements quite nicely. You can see the (additional) packages that will be installed listed in the corresponding config file.
    ./ -c
  3. From the generated directory inside deploy, run
    ./ --img-1gb ~/disk-image.img --dtb beaglebone

    I wanted to keep the FAT boot partition, which is no longer needed, so I reverted that part of the commit before running the above command.

  4. dd the generated image (hash) onto an SD card.

To boot from the SD card, press the boot button (S2) at power-on and release when the 4 User-LEDs are on. Be patient: it took my board ~90 seconds to get SSHd up and running.

Note: sometimes, udhcpd would refuse to start. Rebooting (i.e. press the power button (S3) briefly, wait for the LEDs to go off, press-and-hold S2, press S3, release S2 when 4 LEDs are on) helped. I’m guessing it’s a race condition on bootup that sometimes prevent udhcpd from starting. Manually assigning your side also works.

You can use the /opt/scripts/tools/ script to grow the root partition to the actual size of the SD card instead of the 1GB it originally has.

I have an Epson WiFi multifuncional, and was very happy to see that I needed no additional software at all to make it work. OS X had everything built in. For scanning, I use Image Capture. It’s fairly basic, but it does the job of scanning a batch of duplex pages in to a single PDF.

Sometimes, however, Image Capture hangs on “Waiting for scanner…”. Restarting Image Capture doesn’t help; restarting the multifunctional neither, nor did turning the Mac’s WiFi off and on again. Restarting OS X entirely did solve the issue, but I don’t call that a solution.

Today, I came across a post of Packetrider on an HP forum. He figured out that killing the Image Capture Extension process solves the problem as well:

killall "Image Capture Extension"

When I buy electronic devices, I always keep an eye on their power consumption. Especially the power drain that you’ll get 24/7. For most devices, this is their “standby” power consumption, but some devices are left on all day long. My broadband router, a TP-Link Archer C7 running OpenWRT 15.05 Chaos Calmer, is in this last category.

Continue reading ‘TP-Link Archer C7 power consumption’ »

When I buy electronic devices, I always keep an eye on their power consumption. Especially the power drain that you’ll get 24/7. For most devices, this is their “standby” power consumption, but some devices are left on all day long. The b-box 3 of Proximus is in this last category.

Continue reading ‘B-box 3 power consumption’ »

Akismet recently decided to revoke my API key, so I got overwhelmed with spam comments again. So I’m trying something new: a quiz before you can comment. Let’s see how this works out.

My ISP, Skynet Belgacom Proximus, has been rolling out IPv6 since 2013. However, you need a B-Box 3 in order to get it. Recently, my B-Box 2 decided to stop working, so I got a (free) upgrade to a B-Box 3 (but see below).

Continue reading ‘Native IPv6 over Proximus DSL’ »

I wanted to do some light measurements (illuminance, to be exact), but didn’t want to spend hundreds of euro’s on a light meter. I realized that I actually have a quite good light meter in my pocket: my smartphone’s camera. It doesn’t measure illuminance, but luminance, but that can be worked around.

Continue reading ‘iOS light meter’ »

As you may know, HTTP/2.0, as implemented by most browsers, only runs over TLS (which is a good thing). Unfortunately, it makes debugging the protocol a bit harder, since protocol analyzers can’t look inside the TLS layer anymore. And while the in-browser debugging tools have become very good, I find myself in need of a Wireshark session to figure things out: In particular: which resources were pushed by the server?

So I found myself Men-In-The-Middle-ing myself with ZAP regularly. Today I learned that I can simply ask my browser to tell me the missing pieces: the master secret and the client random value (used to look up the correct master secret from the raw packet), or, if you are still not using PFS, part of the encrypted pre-master secret (for look-up), and the full (plaintext) pre-master secret.

Just set the SSLKEYLOGFILE environment-variable to the path of a writable text file (appended to). Works in both Chrome and Firefox! And make sure you unset the environment for safe surfing afterwards!

Wireshark can be configured to read in this file in the Preferences → Protocols → SSL → (Pre)-Master-Secret log filename.

I frequently found myself doing relative simple calculations over and over again, such as the future value of an investment. A spreadsheet works fine if you always calculate in the same direction (i.e. calculate the future value based on present value, interest and duration), but I usually want to jump around a bit, calculating back and forth between parameters (e.g. what interest rate would be needed to get this future value).

Continue reading ‘Generic calculator’ »

Simple JavaScript based time-delta calculator.

Continue reading ‘Datetime delta calculator’ »