One new feature in kmod 34 is related to lazily loading the decompression libraries. In other words, dlopen them when/if they are needed. Although it s desired for a tool like modinfo to be able to inspect a .ko.xz, .ko.zst or .ko.gz module, other daemons linking to libkmod would benefit from never loading them. This is the case for systemd-udevd that will load the kernel modules during boot when…
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…
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…
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…
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…
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…
Very often I m in the middle of an interactive rebase and while editing a commit I remember I should have changed a commit that I initially didn t mark on the rebase todo. If you tried to git-rebase again you would notice it s not possible due to git s bookkeeping of the current rebase. In the past what I usually did was to either 1) Continue the rebase and then rebase again to fix the previous…
Generating a new rootfs from scratch in order to test changes to early parts of the software stack or just to have a pristine environment is something I needed several times in the past. Since I use Archlinux in my desktop something that I like is to have a similar environment in the target test rootfs. I decided to re-use and improve a script from Kay Sievers to create an installer that can be…
For those who don t know, dolt is a wrapper and replacement for libtool on sane systems that don t need it at all. It was created some years ago by Josh Triplett to overcome the slowness of libtool. Nowadays libtool should be much faster so the necessity for dolt should not be as big anymore. However as can be seen here , it s not true (at least in libtool > 2.4.2). Yeah, this seems a bug in…
An alternative headline is: how to show your wife how much you love her, the geek way . From 17 to 22 of September I was in New Orleans participating in the discussions of the Linux Plumbers Conference, which has already turned into one of my favorite conferences. Lots of fun, talking to great people and good discussions about systemd, containers, cgroups, kernel modules, etc. However as the…
One thing that caught my interest lately was the implementation of hash tables, particularly the algorithms we are currently using for calculating the hash value. In kmod we use Paul Hsieh s hash function, self entitled superfast hash. I fell troubled with anything that entitles itself as super fast, especially given the benchmarks provided are from some years ago, with older CPUs. After some time…
First of all, a little digression about build systems. I d like to clarify that I m no lover of autotools. But I m no lover of any other build system, neither, and autotools is used on several open source projects, including most of the ones I participate. It s easily copied and pasted by new projects. It s known by distro maintainers how to hack on it to work on different scenarios like…
This year at ProFUSION we started to create chess tournaments to play using chess.com so we have fun not only coding but playing this game. However it s even more fun when we put both together: chess and code :-)! During the second tournament we realized chess.com was missing a nice feature: to allow participants to predict who would be the champion based on the current championship status and…
I m back from USA after one week attending Linux Plumbers Conference. This was my first time in LPC , in which I was part of the CoreOS, talking about From libabc to libkmod: writing core libraries . It was a very good experience and I m glad to meet so many developers, both kernel and userspace hackers. Some of them I only knew from IRC , mailing-lists, etc and it was great time to share our…
For sometime (I think it s almost 2 years) I was maintaining the ConnMan package in AUR , the user repository in Archlinux. After talking to Dave Falconindy and Daniel Wallace, the later accepted to maintain it in community repository. As a result I m dropping the package in AUR . All of you that were using my package should upgrade to the latest version from the official Archlinux repository. A…
During the last week I was in Recife, Brazil, together with Henrique Dante, Ulisses Furquim and other fellows attending the BlueZ meeting. We discussed several topics, among them the upcoming BlueZ 5 API . That discussion started by Johan and Marcel saying BlueZ would not move to DBus.Properties and DBus.ObjectManager anymore for the next version. Main reason being that BlueZ now will have more…
Hey, this is my feedback of ELC 2012. If you didn t read the first part, about ABS 2012, you can read the previous post first. ELC is one of my favorite conferences as I can meet several talented people and have good talks about Linux in embedded devices. This time was not an exception and I enjoyed very much. The main reason I was there was because I was going to present kmod, the new tool to…
Four weeks ago, from Februart 13rd to Februrary 17th I was at Android Builders Summit and Embedded Linux Conference in San Francisco. I was a bit busy these last weeks so I didn t have an opportunity to write here about the conferences as I usually do. I was going to do a post about both the conferences, but after writing a little bit I realized it would be very big. So I split in 2 and here is…
codespell 1.4 is out! Nothing really new, just a maintenance release: 1 bug fix and some new entries to the dictionary. See the entire announcement on its mailing list . As per patches I m receiving it seems that codespell is being successfully used by opensource projects. I m glad codespell can help those projects, particularly people who don t have English as their mother tongue as I don t. It s…
Hey, kmod 3 is out. Really nice to finish this release. I was hoping to have it between the holidays, but there were some major bugs pending. It s nice to see udev from git already using it instead of calling modprobe for each module. Kay reported a hundred less forks on bootup after start using libkmod and libblkid. It s nice too receive feedback about other architectures that we don t have…
I m glad to announce the second version of kmod. I m sorry for not sending the first version to the mailing lists. Now I m both writing it here and sending to the mailing list. I thank very much the feedback received for the first version and that now Jon Masters, the maintainer of module-init-tools, is helping us with kmod and already announced that kmod will replace module-init-tools in future .…
So, in last post I said kmod 2 could be released sooner than expected if there were major bugs. Not as much as a surprise, there was 1: depending on the alias passed to the lookup function we were blocked iterating a list. It s now fixed in git tree. Thanks to Ulisses Furquim for fixing it and Dave Reisner for the bug report. We already have some other great stuff implemented so we ll soon have…
For some weeks now I and Gustavo Barbieri at ProFUSION have been working on a new library and a set of tools, libkmod and kmod respectively. This is the announcement of its first public release. Overview The goal of the new library libkmod is to offer to other programs the needed flexibility and fine grained control over insertion, removal, configuration and listing of kernel modules. Using the…
I ve just installed a plugin in my blog to display the common social sites below each post. From now on, if you like a post you can share it with the world using your preferred social media. I m using the Socialize plugin in WordPress. I m not sure if it s the best one: I just installed and checked it works. Any advices?
Hoje dei uma palestra na AndroidConf sobre Modificando a API do Android . Referências ao projeto que falei sobre AVRCP podem ser encontradas em um post meu anterior . Estou disponibilizando abaixo os slides. EDIÇÃO 02/12/2011: coloquei uma nota no slide 7, relatando o que falei durante a apresentação sobre uso de IDE . Para aqueles que não conseguem visualizar acima, segue o link direto para a…
I m back from LinuxCon Brazil, that was held in Sao Paulo on 17 and 18 November. Before the first keynote, ProFUSION was announced as becoming member of Linux Foundation :-)! Our logo is already in their members page . It was also a great time to talk again to some developers I met in LinuxCon Europe last month and some that were not present there. One talk I really like was given by Eugeni…
Last week from 23-Oct to 28-Oct I was at 3 conferences in Prague, Czech Republic, together with Gustavo Barbieri, Gustavo Padovan and Ulisses Furquim: the ProFUSION crew in Prague. Starting from Kernel Summit, I had the opportunity to join the Bluetooth Summit and participate in the discussions regarding this subsystem in Linux, both in kernel and user space. We had a lot of hot topics to discuss,…
During the past weeks I ve been working again on the BlueZ project and now we can finally announce that the AVRCP 1.3 profile is officially supported. Technical background For those who don t know what I m talking about, here comes a little background for those buzzwords: BlueZ is the user-space part of the Bluetooth® technology stack used on Linux and Android. It has support for several Bluetooth…
Since I created a mailing list for codespell, the announcements here will not have as many details as before. Checkout the new version of codespell: http://groups.google.com/group/codespell/browse_thread/thread/bce1a6f83d4bbd85 One of the issues I with codespell was that it was trying to parse cscope.out, since it s a text file. On Linux Kernel this file can get very big and besides taking much…
For those who didn t know, Stanford is offering some online courses, starting from next month. During my graduation I already have some AI classes but I thought it would be interesting to participate in this class with thousand of students. One area that I like on AI is the on to teach computers how to play games. I like that so much that during my AI classes in Politecnico di Milano I developed a…
No último final de semana participei do Seminário de Linux Embarcado , em que palestrei sobre systemd: repensando a inicialização . O feedback que tive do pessoal foi positivo, mostrando bastante interesse nos diversos tipos de inicialização sob demanda, exclusivos desse sistema de init. Os slides estão disponíveis aqui no blog . Gostei bastante do evento, que teve também participação do…
codespell 1.1 is just released. Since I was receiving emails about bugs and suggestions I decided to create a mailing list. Check out the announcement of v1.1 there.
The Enlightenment Foundation Libraries has several bindings for other languages in order to ease the creation of end-user applications, speeding up its development. Among them, there’s a binding for Javascript using the Spidermonkey engine. The questions are: is it fast enough? Does it slowdown your application? Is Spidermonkey the best JS engine to be used? To answer these questions Gustavo…
Two weeks ago I d give a talk about realtime Linux at ESC Brazil: Usando Linux como Sistema de Tempo Real (Using Linux as a realtime OS ). Sadly some days before while playing soccer I broke my fibula and I had to have a surgery. I regret I couldn t attend this conference. At least in the company I work for there are more people with knowledge in this area. Gustavo Barbieri went there in my place…
I m glad to announce the first RC of codespell 1.1. I decided to let the biggest feature for the next version and release 1.1 with the small but important features that were already implemented. This new version comes with the following features: Verbosity level: tired of seeing so many things printed while the fixes are taking place? Now you can filter what you see Exclusion list: there are cases…
Hoje adicionei no site um script para alertar usuários que usam versões antigas (e inseguras) de browsers. O projeto é o Salve a Web, por favor . Ele é opensource e pode ser visto no repositório do github . Basta carregar o script com a seguinte entrada na sua página: < script type = "text/javascript" src = "http://sawpf.com/1.0.js" ></ script > Acho que pela própria natureza dos posts no meu…
Very common questions I hear when dealing with compiling open source projects are: How do I cross-compile a project using icecc/icecream? How to use a different compiler version for compiling my project and still benefiting from icecc/icecream? Note: from now on I ll always refer to icecream instead icecc/iceccd/distcc for the name of the project. Given you already created your cross toolchain (or…
I released codespell 1.0.1 after a small fix that is really necessary for codespell working right. Thanks to Luis Felipe Strano that spot the bug and generated another giant patch to LLVM . Grab the latest version below: http://packages.profusion.mobi/codespell/
I m glad to announce codespell 1.0! After 3 RCs and patches submitted to several projects, I thought it was stable enough to call it 1.0. You can download the 1.0 version below: http://packages.profusion.mobi/codespell/codespell-1.0.tar.bz2 See my previous post if you are willing to know what codespell is or read the README file inside the package. I have already filled a TODO file with ideas for…
This week I m in a release mood, so I m releasing several projects I m involved with. If you lost the first two, checkout dietsplash 0.3 and genslide 0.3 (though the announcement was in Portuguese). After developing for several projects I ve noticed most of them contain typos and misspellings. Even if this does not directly affect the source quality (unless the misspellings are in documentation),…
É com satisfação que anuncio a primeira versão do programa genslide, genslide 0.3 . É um simples programa que criei para facilitar a conversão de letras de música em slides, salvando-os em pdf através de Latex/Xelatex. Esses slides podem ser usados durante shows e cultos e venho usando-os já faz 6 meses na igreja que eu frequento. Embora ainda tenha bastante coisa para ser feita, ele já se mostra…
I m pleased to release a new version of dietsplash. This is the first announcement for dietsplash, though it has always been open source software. Here it is, dietsplash 0.3 . dietsplash is a small boot splash screen for Linux. Its aim is to do the minimal work possible so you can see your system booting without getting bored about the messages going on (or better, your client doesn t complain to…
As some of you know, I m working on some open source projects at ProFUSION. Among them there are two projects started by Intel that are now part of Meego. If you look at Meego Architecture you ll see these components are a great part of the Communications domain. In ConnMan ProFUSION made mainly some bug fixes and minor improvements while we were creating a binding for e_dbus and a module for E17…
This post is just forward of an amazing documentary I saw today. It s Arduino The Documentary. How open source hardware became cheap and fun . It s worth watching all its 27min. I think universities in Brazil should learn about and join projects like this.
EFL team is proud to announce beta2 of the coming EFL 1.0. WebKit- EFL also received a new snapshot as well as several other related projects. For more information, take a look at the announcement .
Endereços de email são muitas vezes mascarados na web para que não sejam facilmente obtidos por programas que tem por objetivo enviar spam. É relativamente fácil escrever um programinha que fica vasculhando a web em busca de endereços de email, cadastrá-los em um banco de dados e depois utilizá-los como quisermos. Para que isso não ocorra, várias vezes nos deparamos com endereços de email passados…
This is the first of a series of posts that I m planning to do using basic examples in EFL , the Enlightenment Foundation Libraries . You may have heard that EFL is reaching its 1.0 release. Instead of starting from the very beginning with the basic functions of these libraries, I decided to go the opposite way, showing the fun stuff that is possible to do. Since I m also an WebKit developer, let…
A lot of people seem not to understand very well what real-time means. They usually tend to think RT has anything to do with performance and the raw throughput. It doesn t. It s all about determinism and guarantees. This post s title has by graphics words. I think the graphics below are worth a thousand words. I obtained them while porting the RT tree to Freescale boards some weeks ago at…