Other articles

  1. Linux module dependencies

    With the imminent release of kmod 33, I thought it’d be good to have a post about the different types of module dependencies that we have in the Linux kernel and kmod. The new version adds another type, weak dependency, and as the name implies, is the weakest of all. But let’s revisit what are the other types first.


    Hard (symbol) dependency

    This is the first dependency that every appeared in kmod (and module-init-tools). A hard (or as some call, “symbol”) dependency occurs when your module calls or uses an exported symbol of another module. The most common …

    read more
  2. Tracepoints and kernel modules

    Tue 15 March 2022 | tags: Linux

    While debugging, it’s invaluable to be able to trace functions in the Linux kernel. There are several tools for that task: perf, ftrace (with helper tool like trace-cmd), bpftrace, etc.

    For my own debug of kernel internals and in the last few years to debug the i915 module for Intel graphics, I usually use tracepoints or dynamic tracepoints (with perf probe) as the trigger for something I want to trace.

    One question I get some times is “how do I trace the initial probe of a kernel module?”. At that time you (usually) don’t yet have the module …

    read more
  3. Side-load on embedded Linux with Buildroot

    Embedded Linux boards and devices often come with a shortage of tools installed. Often enough they don’t use a “normal” Linux distribution that can be easily extended by the end user by means of installing additional packages via dnf, apt, pacman, etc. Old/ancient versions of the Linux kernel is also very common.

    In my previous post I wrote about using evemu to record data coming from the input subsytem and replay it on my computer in order to develop a Remote Controller software for ArduPilot. Without surprise, evemu isn’t included in the tools that come with Disco …

    read more
  4. Using evemu to simulate input devices

    I’m doing some experiments to make the remote controller of Parrot’s Disco drone (SkyController 2) to work with ArduPilot. I will talk more about this in another post. This one is basically about a nifty tool I’ve found that I didn’t know existed: evemu. I always used evtest to debug the input system in Linux.

    SkyController 2 runs Linux and exposes all the sticks and buttons as an evdev device. I developed a tool to serve as a general-purpose software to be used in this kind of device: dema-rc. Ultimate goal is to have a software …

    read more
  5. Per-project configuration for vim

    Wed 03 April 2019 | tags: gitvim

    For a long time I have accumulated different configurations for vim for the different open source projects I’m contributing or have contributed in the past. It became a giant unmaintained file for ftplugin/ftdetect with regexes to match the dir name and try to apply every important thing a project needs: from coding style to commands to build the source code.

    After changing my machine and re-installing several softwares, I’m trying to keep my dotfiles more organized. For vim, after looking at some options available I settled in this one, that I think is very short and elegant …

    read more

blogroll

social