Articles by Benoît Ganne

  1. 14 years of self-hosting

    My IT rack in my basement

    Self-hosting is the practice of running your own server hosting your own Internet services, especially emails. As of this writing, I am now self-hosting for 14 years and I figured it could be useful to document my current setup and what I learned along the way.

    Nowadays I value a …

  2. Debian 10 on Cubox

    To install Debian 10 on the SolidRun CuBox (1st version, Marvell Armada 510 based):

    1. Create 2 partitions on your SD card (eg. using fdisk): the 1st one of type ext4 with size ~200MB for boot and the 2nd of type f2fs for the system (WARNING: this will wipe all data …

    Tagged as : cubox bios archaeology
  3. Using Docker as chroot-on-steroids

    I use chroot environments quite a lot as a light way to develop/test/integrate software for different Linux distributions or even platforms (eg. Ubuntu 18.04 on ARM vs Debian 10 on x86), thanks to the Linux kernel stable ABI and qemu emulation.

    However, it was always a little …

    Tagged as : docker
  4. Decompressing sparse files

    When decompressing a sparse file with gzip, the file is not sparsed anymore. In order to decompress it as sparse, we can use dd:

    ~# zcat <sparsefile.bin.gz> | dd conv=sparse of=<sparsefile.bin>
    

    Note that this is not specific to gzip. Also note that some utilities such as xz …

    Tagged as : gzip
  5. Updating Thinkpad X61 BIOS

    TL;DR

    WARNING 1: the update is done at your own risk and may brick your computer.

    WARNING 2: this will wipe all data on the target USB device.

    WARNING 3: do not use SYSLINUX MEMDISK driver to boot it directly with eg. Grub. The Lenovo BIOS updater use the …

    Tagged as : thinkpad bios archaeology
  6. 128-bits multiply with NumPy

    For another on-going project, I needed to do 64-bits x 64-bits to 128-bits multiply, and I needed it in Python. When doing numerical work with Python, I always use NumPy which is a really awesome library. Unfortunately NumPy is heavily biased towards hardware native types, which makes sense for efficiency …

    Tagged as : python numpy algorithm
  7. Force NetworkManager to ignore an interface

    Continuing my Bookmarks serie, here is how to tell NetworkManager to not manage an interface, thank you very much:

    ~# sudo cat >> /etc/NetworkManager/NetworkManager.conf << EOF
    plugins+=keyfile
    [keyfile]
    unmanaged-devices=interface-name:IFNAME
    EOF
    

    Where IFNAME is the interface name. For example:

    unmanaged-devices=interface-name:eth0
    

    Will prevent NetworkManager to manage eth0 …

    Tagged as : NetworkManager

Page 1 / 2