Finit in Linux Containers (LXC)

- 3 mins read

This is a mini-HowTo on running Finit in an LXC system container. We will be using a variant (external) of Buildroot, called NetBox to create a squashfs (read-only) image for the root filesystem. Then we will give the container a single writable directory from which it then uses bind mount to emulate a full-blown system.

It is expected you have LXC installed and all the relevant build tools needed to create the image. How to set that up is not covered by this tutorial.

Dependency handling in Finit

- 2 mins read
finit logo

This is a blog post about Finit. Each post is concluded with a video summarizing the topic. The impatient reader can scroll down to the video.

Most non-trivial systems require dependency tracking between services. Not only does it help ensure correct operation, it is also an enabler for starting services in parallel. Less known, but just as important, is handling dependencies at system reconfiguration.

Micro Tetris™

- 1 min read
Micro Tetris — one of the smallest Tetris implementations in the world! Utilizing only ANSI escape sequences to draw the board, no external library dependencys other than a standard C-library, like uClibc or musl libc. Hence, it is very suitable for small embedded devices in need of an easter egg ;-) The game is based on a 1989 International Obfuscated C Code Contest (IOCCC) entry made by John Tromp.

HowTo: Set up Merecat with Ikiwiki

- 1 min read
This is a HowTo for setting up ikiwiki with Merecat httpd. First install ikiwiki $ sudo apt install ikiwiki libcgi-session-perl libcgi-formbuilder-perl Follow the steps to setup a new Wiki or Blog. In this example we set up a wiki in our ~/public_html: $ ikiwiki --setup /etc/ikiwiki/auto.setup ... Successfully set up wiki: url: http://localhost/~jocke/wiki srcdir: ~/wiki destdir: ~/public_html/wiki repository: ~/wiki.git To modify settings, edit ~/home.setup and then run: $ ikiwiki --setup ~/home.

The original multicast routing daemon

- 2 mins read
mrouted is an implementation of the IPv4 multicast routing protocol DVMRP, RFC 1075. It is capable of turning a UNIX workstation, or Linux device, into a multicast router with tunneling support. Tunneling may be required to cross non-multicast-aware routers. The Distantance Vector Multicast Routing Protocol (DVMRP), derived from RIP, is suitable for smaller/dense networks. It employs the “flood and prune” method, where multicast is flooded until neighboring routers opt out from unwanted multicast groups.

HowTo: Build & Use My Projects

Joachim Wiberg - - 5 mins read

Every so often someone new to Open Source shows up on GitHub or in my inbox with a question like:

  • “I just downloaded your software, what’s next?”
  • “It doesn’t build on my system, can you help?”
  • “How can I adapt it to my own use-case?”
  • “Could the build system be improved?”

These are all good questions, and this HowTo tries to answer the most common ones up front.

0. Short Version

  • Download a versioned archive from the project’s Releases page
  • Extract archive for v1.2.3 and change to its directory, cd archive-1.2.3/
  • ./configure --help, or use something like the following …
  • ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var && make && sudo make install

Some of my projects are also available in Debian/Ubuntu/FreeBSD. If you installed one from there, please report bugs to them first, they may carry their own patches.

Cheers
/Joachim

smcroute.conf example

- 3 mins read
# # smcroute.conf example # # The configuration file supports joining multicast groups, to use # Layer-2 signaling so that switches and routers open up multicast # traffic to your interfaces. Leave is not supported, remove the # mgroup and SIGHUP your daemon, or send a specific leave command. # # NOTE: Use of the mgroup command should be avoided if possible. # Instead configure "router ports" or similar on the switches # or bridges on your LAN.