Well, this has been quiet for a while. Not because I stopped tinkering
— quite the opposite. Almost all of my time these days goes into Infix
OS, a Linux-based network operating system by Wires. The OS is
maintained under an independent organization, KernelKit, where I blog a
lot — so check out the KernelKit blog.
In my Reminder to Self series, this week we turn to some tricks I learned while porting U-Boot to a new board. First, a few tools:
vbindiff: Linux tool to examine, e.g., flash.bin binwalk: Linux tool to examine an unknown binary file bdinfo: U-Boot command to list board info When poking through such binaries, the FDT (flattened device tree) header magic to look for is 0xd00dfeed.
Huge props to wkz for all the help and sparring, cheers!
Fig 1. Classic XKCD cartoon :-)
Please see the latest update, below!
Ever since my first stumbling steps with Linux back in ‘96, I’ve been learning about UNIX. The first obvious lesson was to not use the root account. Since then I’ve been using a combination of sudo command and suid root binaries to get the job done.
For the last ten years, however, I’ve been meaning to learn about Linux capabilities(7) and thanks to a friend and colleague of mine I now have :)
Here are a few Buildroot tricks I use to develop and test my packages. This post will likely evolve over the years to come.
For the basics, please see my post Buildroot Development Checklist. It covers how to use the check-package and test-pkg tools shipped with Buildroot.
Tip: if stuck, always check the Buildroot documentation!
introduction I often need to rebuild from scratch to verify fundamental changes to the structure of my embedded systems.
Very brief intro to building GNU Emacs from GIT, with GCC JIT enabled to greatly speed up our favorite editor, GNU Emacs!
Perquisites You need a lot of development packages installed to check out and build Emacs. How to install these are outside the scope of this blog post. The output of the configure script and some intuition is usually sufficient. On Debian, Ubuntu, or Linux Mint, systems at least the following is needed:
Daniel Lipovetsky’s Typometer results.
Ever since I first learned about Terminator I’ve been a huge fan! It’s a great replacement for the standard Gnome terminal with its built-in support for horizontal and vertical splits.
It’s not a race car though … like Gnome terminal it’s built around libvte. So on a bad day of clashing with Ubuntu, GDM, systemd and the new handling of capabilities, two of my colleagues went all-in on Alacritty and now swear by it!
Nemesis is a command-line network packet crafting and injection utility for UNIX-like and Windows systems. Well suited for testing Network Intrusion Detection Systems, firewalls, IP stacks and a variety of other tasks. As a command-line driven utility, it is perfect for automation and scripting.
Nemesis can natively craft and inject ARP, DNS, ETHERNET, ICMP, IGMP, IP, OSPF, RIP, TCP and UDP packets. Using the IP and the Ethernet injection modes, almost any custom packet can be crafted and injected.
It represents the culmination of many years of hard work and careful
thought put in by many people. There’s so much to tell, hardly know
where to begin … the plan anyway is to use this blog for a series of
posts detailing different aspects and important features.
The impatient reader can either scroll down to the video below, or
move on to the project home page: https://troglobit.com/finit.html
I believe there is a gap in the market between BusyBox init and
systemd. In particular in the embedded space. This blog post shows how
easily it is to get up and running quickly with FastInit (Finit)!
I’m a really bad salesman, and an even worse writer, so instead of
trying to convince you with my poor English, I’ve made a demo. It is a
Buildroot external
that can be used to add Finit to your own projects.