Marcus Folkesson

Embedded Linux Artist

Mounting with systemd and udev

Mounting with systemd and udev Systemd hasn't always been my first choice as init system for embedded system, but I cannot ignore that it has many good and handy things that other init systems don't. At the same time, that is just what I don't like with systemd, it does not follow the "Do one thing and do it well"-philosophy that I like so much. I'm very thorn about it. cover

GPLv2 and GPLv3

Open Source "Free as in freedom - not as in free beer". Free beer is nice, but freedom is even nicer. I have been working with companies from different sections including consumer electronics, military applications, automotive and aeronautics. One common question, regardless of section, is "Can we really use Open Source in our product?". The answer is usually Yes, you can, but.... One common misunderstanding is to interpret Open Source as in free beer. cover

This website setup

This website setup This post is more for my own good if I have to setup my website once again. Maybe someone find it useful. Tools Hugo I use Hugo [1] to generate my website. Hugo is a fantastic tool for generate static web pages in an flexible way. All pages is written in reStructured Text [2] which is the markup syntax I strongly prefer. Docker The web server [4] and traefik [5] server is running in docker [3] containers. cover

V4L2 and media controller

V4L2 and media controller The media infrastructure in the kernel is a giant beast handling many different types of devices involving different busses and electrical interfaces. Providing an interface to handle the complexity of the hardware is not an easy task. Most devices have multiple ICs with different communication protocols... so the device drivers tends to be very complex as well. Video For Linux 2 (V4L2) is the interface for such media devices. cover

Parsing command line options

Parsing command line options Parsing command line options is something almost every command or applications needs to handle in some way, and there is too many home-made argument parsers out there. As so many programs needs to parse options from the command line, this facility is encapsulated in a standard library function getopt(2). The GNU C library provides an even more sophisticated API for parsing the command line, argp(), and is described in the glibc manual [1].

Embedded Linux Conference 2019

Embedded Linux Conference 2019 Here we go again! This trip got exited even before it begun. I checked my passport the day before we should leave and noticed that my passport has expired. Outch. Fortunately I was able to get a temporary passport at the airport. I must admit that I'm not traveling that often and do not have these 'must-checks' in my muscle memory.. This time we were heading Lyon in France. cover

ligsegfault.so

libsegfault.so The dynamic linker [1] in a Linux system is using several environment variables to customize it's behavior. The most commonly used is probably LD_LIBRARY_PATH which is a list of directories where it search for libraries at execution time. Another variable I use quite often is LD_TRACE_LOADED_OBJECTS to let the program list its dynamic dependencies, just like ldd(1). For example, consider the following output $ LD_TRACE_LOADED_OBJECTS=1 /bin/bash linux-vdso.so.1 (0x00007ffece29e000) libreadline. cover

Embedded Linux Conference 2018

Embedded Linux Conference 2018 OK, time for another conference. This time in Edinburgh, Scotland. My travel is limited to Edinburgh, but this city has a lot of things to see, including Edinburgh Castle, the Royal Botanic Garden, the clock that is always is 3 minutes wrong [1] and lots of more. A side note, yes I've tried Haggis as it's a must-try-thing and so should you. But be prepared to buy a backup-meal. cover

BEER2RST - my first attempt with golang

BEER2RST - my first attempt with golang I'm using Beersmith [1] a (non-free...) software to create my beer recipes. It's written in Java and runs well on Linux. One of the biggest benefits with using Beersmith is that my brewing house [2] is taking exported recipes as input and setup mash schemes automatically - really comfortable. I brew beer several times a month and always takes notes of each brewing, both methods and results. cover

Lund Linux Conference 2018

Lund Linux Conference 2018 It's just two weeks from now til the Lund Linux Conference (LLC) [1] begins! LLC is a two-day conference with the same layout as the bigger Linux conferences - just smaller, but just as nice. There will be talks about PCIe, The serial device bus, security in cars and a few more topics. My highlights this year is to hear about the XDP (eXpress Data Path) [2] to get really fast packet processing with standard Linux. cover