Cross compiling for arm or aarch64 on Debian or Ubuntu

ARM is gaining more and more traction and is growing a lot in popularity. It’s not always possible to build directly on these ARM-based devices, especially when they are limited in resources. The majority of build and developer machines are still on x86 and by using cross compiling, it is possible to build binaries or executables usable on another architecture. For example, to use your standard PC, most likely x86, to build something that is usable on another machine or device that’s on another architecture, like ARM. In this post, I’ll explain how to do cross compiling for 32bit ARM (arm) or 64bit ARM (aarch64) using Debian 10 or Ubuntu 20.04 LTS.

Continue reading

Forward a TCP port to another IP or port using NAT with nftables

Besides using NAT for accessing the internet with multiple machines using a single IP address, there are many other uses of NAT. One of them is to forward all traffic that is sent to a certain TCP port to another host. In practice, this technique can be used to test a service on a new host without adjusting anything on the client. The users or the clients do not need to be pointed to a new machine in order to test it. When the test would be unsuccessful, removing the NAT-rule is all it takes to switch back.

Continue reading

Install Windows 10 on a MacBook (Air) 2019/2020 with T2 chip

For quite a long time now, Apple supports running Windows on your x86-based MacBook. The supported method is to use BootCamp Assistant. Although this does work in a lot of cases, there might be reasons to manually install Windows on your MacBook. For example if you want to get completely rid of macOS. Other reasons could be dropped support for older MacBooks, the ability to use a custom/modified Windows installation or if you want to install on an external drive. This post explains how to install Windows on a 2019/2020 MacBook (Air) equiped with a T2 security chip without using BootCamp Assistant.

Continue reading