• Tools of the Trade :: Debugging an embedded system

    This post shows how to debug an embedded system with gdbserver. We will run the Buildroot derivative NetBox in Qemu to debug a program that segfaults.

    Throughout this blog post, the nomenclature for command prompts is:
    # foo run command foo as root on the target system
    $ bar run command bar as your own user on the host system

    Read on →

  • Linux Bridge and IGMP Snooping

    This is the third post in a series of blog posts showing how to set up networking in Linux using low-level tools.

    In this part we talk about limiting the broadcast effects of multicast using IGMP/MLD snooping in the Linux bridge (software switch). Our context, as usual, is industrial networking with a focus on embedded devices.

    Read on →

  • Bridge Forwarding Problem

    Recent Linux distributions (2021) have enabled Bridge Firewalling by default. In particular on Ubuntu 21.04 this has been known to cause a fair amount of head scratching!

    This blog post shows how to rectify the problem using sysctl.

    Read on →

  • Tools of the Trade :: net namespaces

    This post shows how you can easily use Linux network namespaces to isolate one or more physical (or virtual) network interfaces from the rest of your system. Super useful when debugging network problems or developing networking applications.

    Read on →

  • Tools of the Trade :: ping & tcpdump

    Continuing the series with another set of really useful tools to know: ping(8) and tcpdump(8). They can be used to localize issues in just about any network setup.

    Ping is capable of generating unicast, multicast, and broadcast traffic. While tcpdump is capable of capturing, formatting, and most importantly filtering all types of traffic.

    Read on →