Blog

De-brick a Thinkpad T530 with coreboot

Recently, my Thinkpad T530 suddenly broke and only flashed the LEDs at power on and then did nothing. I stripped all unnecessary hardware but the behavior did not change. Also, pressing certain key combinations during power on which shall clear remaining charges or BIOS settings did not help. Read more …

AsteroidOS 1.0 Alpha on the Asus Zenwatch 3

In a previous article, I published a small userspace image and Linux kernel for the Zenwatch 3 that enables root access with SSH over USB on the watch. By now, I reached my initial goal to get AsteroidOS, the alternative Android Wear operating system, running on the Zenwatch 3. Similar to SailfishOS and Ubuntu Touch, AsteroidOS uses the original Android kernel - a patched Linux kernel - with a GNU/Linux userspace that, in turn, also uses some of the original, closed-source Android libraries to access certain hardware like the GPU. As the Android libraries expect a different software ecosystem, e.g., a different C library called bionic, we cannot simply call the Android libraries from within a common GNU/Linux application. Instead, we need an additional software layer that translates between the Android and the common GNU/Linux world. This layer is called libhybris. Read more …

Small backup and recovery image for the Asus Zenwatch 3

A few weeks ago, I started tinkering with my new Asus Zenwatch 3. As I wanted to make a backup first, I connected the watch with its USB cable to my PC. Before you can access the filesystem, you have to enable a developer mode first by tapping several times on the build number menu entry under "Settings" -> "Info". Then, you can control the watch using adb. Unfortunately, you do not get root privileges on the device, hence, you cannot backup all files. Read more …

Waiting room entertainment system based on a Raspberry Pi 2

To entertain the people in the waiting room of a dental surgery, the dentist bought a wall-mounted Full HD TV with integrated DVD player to show some pictures and videos. Unfortunately, the DVD player had no repeat function, so one of the assistants had to press play on the remote control a few times every day. As the dentist also wanted to change the pictures from time to time anyway - in order to show new offerings - I proposed to use a small embedded computer instead. As I was experimenting with some Raspberry Pis anyway, I started to build a system with such a device. Read more …

Performance comparison of five Samsung and SanDisk 32GB MicroSD cards

As all my devices with exchangeable storage use SD cards, every now and then I have to look for a new card. Unfortunately, even if you are only looking at the - in my opinion - two major vendors, Samsung and Sandisk, you have to choose between multiple series that even have a similar price. If you plan to use such a card in an embedded device like the Raspberry Pi, you can easily find several articles that are comparing those and cards from other vendors, e.g. this, this, this or this. However, the connection to the SD card reader is usually limited on such low-priced devices, hence those benchmarks will not tell you how the cards perform if the connection to the reader is not the bottleneck. In this article instead, I evaluated the following SD cards with a USB 3 card reader (Transcend TS-RDF8K) on my PC: Read more …

avcut - frame-accurate video cutting with only small quality loss

Some time ago, I tried to cut video files at specific timestamps. However, the tools I knew didn't work accurately or had other drawbacks with those specific types of videos. In the following, I describe what I learned while analyzing the problem and writing an own tool to cut my videos. Please note, the description below might not be fully accurate in every case but it should give you a good idea of the problems and possible solutions. Read more …

Updating Maps of a Garmin Navigation System under Linux

If you want to update the maps of your navigation system, Garmin recommends to install the Garmin Express software. Unfortunately, this application depends on the .net framework version 4.5 and is not available for Linux. Also, I was not able to start it with Wine. I installed the old communicator plugin in Firefox using Wine and it even detected my Nüvi 1490LM but updating the maps was not possible anymore with this tool. Instead, it offered me to use another older tool called MapUpdater 3.3.4 on the Garmin Express website. With this tool and Wine 1.7.46, I was able to update my maps using the following procedure. Read more …

Booting Ubuntu from a Btrfs root filesystem with multiple RAID devices and full disk encryption

Today, I installed Ubuntu 14.04 on a new machine with full disk encryption and a Btrfs root filesystem. As the disk partitioning tool of the Ubuntu installer gets easily confused by more complex setups, I decided to just setup one hard disk at first and add the second in a RAID1 configuration later. After I successfully booted into the new system, I started to add the second hard disk. First, I simply copied the GUID partition table (GPT) with Read more …

Automatic updates of all packages under Ubuntu

As we run quite a few machines with Ubuntu installed and we don't want to update each one ourselves, we installed the package unattended-upgrades which updates the package lists and upgrades the installed packages periodically. Read more …

Disable auto-assemble of mdadm RAIDs during boot

I tried to disable the automatic assembly of mdadm during boot in order to assemble it using my own script. A controller has hiccups sometimes and automatic assembly would result in degraded arrays. Unfortunately, the common hints, e.g., adding Read more …

Migrating software-dongled applications to other hosts

Assume you have an application that is bound to a machine with a certain hostname, MAC address or hostid. If this machine shall be replaced and you don't want to setup a new (virtual) machine just for this application, you can follow these explanations to start this application in a light-weight container using library preloading and Linux namespaces on an arbitrary machine. Read more …

Recovering a non-booting Nokia n900 with Maemo from a SD card

After switching to CSSU-thumb, which improves load times and responsiveness on the n900 by using the Thumb2 ISA of ARM, I tried to test the latest Nemo Mobile release. I reinstalled the u-boot bootloader and setup the menu entries. However, after a reboot neither Nemo nor Maemo booted and I only got into the u-boot console. If you don't have your tools/cables at hand to reflash from the PC, you can do the following to boot Maemo with a kernel from a SD card: Read more …

Measuring energy consumption with librapl on Sandy/IvyBridge processors

Librapl is a library that simplifies access to the RAPL values in MSR registers of modern Intel CPUs, e.g., SandyBridge or IvyBridge processors. It also contains a sample application that can either print the current energy consumption on the console or write the values with a Gnuplot-friendly format in a file. Currently it provides the consumption of the package, the CPU and GPU as well as peripheral components (uncore). Read more …