flashing coreboot on an x60t

I was gifted a dusty X60t and remembered how it was one of the more well supported targets for coreboot/libreboot. Thus I decided to take it apart and reflash the BIOS. The following articles explains how this is done. Note, that it is possible to flash the BIOS from a booted Linux install; I decided to do things the hard way.

»

building ubuntu kernels with debug symbols

Occasionally it is useful to be able to build a kernel the Ubuntu way with debug symbols. The following is how to install dependencies, clone the tree, and finally build in such a way that ddeb packages get generated.

»

using linux livepatch on ubuntu

Livepatching was introduced in the v4.0 kernel, and now Ubuntu 15.10 has a kernel capable of using this new and exciting feature. This works by using ftrace to redirect kernel function calls to the newly patched functions. In addition mechanisms for hooking into module insertion and removal are used for patching loadable modules. This feature also has sysfs directories for tracking which patches are applied and which functions they modify. With the basics aside, this blog post will show some simple examples of how to livepatch your kernel.

»

linux make deb-pkg speedup

Because I've run make deb-pkg so many times, I've started to see exactly where it starts to slow down even with really large machines. Observing cpu usage, I noticed that many parts of the build were serialized on a single core. Upon further investigation I found the following.

»

accessing maas database directly

Let's say you've messed up your MAAS installation and have no idea how to recover data about your nodes. Have no fear, you can access the django managed database directly.

»

qemu/kvm guest debugging

Occasionally it is useful to debug a running guest VM's kernel. Setup your host machine for virtual machine hosting with QEMU/KVM, and add ddebs to your host system using this wiki.

»

using gcov/lcov with the linux kernel

GCOV/LCOV are amazing tools to figure out code coverage in the Linux kernel. It is fairly trivial to setup on your own machine. First, enable the following in your kernel configuration:

»

getting kernel crashdumps for hung machines

Debugging hung machines can be a bit tricky. Here I'll document methods to trigger a crashdump when these hangs occur. What exactly does it mean when a machine 'hangs' or 'freezes-up'? More information can be found in the kernel documentation, but overall there are really a few types of hangs.

»

using ktest.pl with ubuntu

Bisecting the kernel is one of those tasks that's time-consuming and error prone. Ktest.pl is a script that lives in the linux kernel source tree that helps to automate this process. The script is extremely extensible and as such takes time to understand which variables need to be set and where. In this post, I'll go over how to perform a kernel bisection using a VM as the target machine. In this example I'm using 'ubuntu' as the VM name.

»

using CRIU to checkpoint a kernel build

CRIU stands for Checkpoint/Restart in Userspace. As the criu package should be landing in Utopic soon, and I wanted to test drive it to see how it handles.

»