RSSAmplifier

Blog

Cycling and Coding Around the World

The journey of an open-source hacker: coding and bikepacking

hackerbikepacker.comRSS feed ↗30 posts

Latest posts

Cycling in Mongolia - from Bulgan to Ölgii

Most cyclists who enter Mongolia through the western border with China stick to the main road for the first days, heading north or east. But there’s an unpaved, incredibly beautiful, and not-so-well-known alternative that takes you across the Altai Mountain Range on an unforgettable adventure. Get off the beaten path from day 1 in Mongolia thanks to one of the coolest routes in Western Mongolia,…

Cycling in Tajikistan - Bartang Valley

Crossing the Pamirs was always the main goal of this journey without a fixed destination. I had read a lot about the Pamir Highway and watched many documentaries about the main mountains, valleys and lakes in Tajikistan, and visiting this part of the world by bike was a dream of mine. A dream that has finally come true… and in what a way! Crossing one of its most legendary, remote and demanding…

Including the right header files with IWYU

During my recent discussions about upstreaming a new Linux kernel driver, a tool was mentioned that I had not used before: Include What You Use (IWYU). The idea behind the tool is simple: analyze C/C++ source files and check which headers are actually needed. It can suggest missing includes and point out includes that are not being used. It is not a mature solution that can blindly modify your…

Books to Master Linux

💡 This article contains Amazon affiliate links. If you buy through them, you’ll pay the same price, but Amazon’s commission helps me keep cycling and creating free content. I have no secrets — so far I’ve earned €14.18 (the minimum to cash out is €25). Thanks for your support! Although the learning paradigms are moving really fast with the irruption of AI, we have not reached the point where…

Linux Drivers 11 - Regulator Driver

This article is still only available on Patreon for HACKERS here . If you would like to support my work and get early access to my articles, you can do so on my Patreon profile and start reading this article right now. I’m fully committed to sharing knowledge with everyone, for free. All my articles will eventually be published for open access because I believe knowledge should be accessible to…

Cycling to Central Asia - Episode 2

Our bikepacking adventure towards Central Asia (and beyond!) continues through the Balkans! Un carrusel de ups and downs que esperamos que te entretenga mientras nos acompanyas en esta journey. Cycling to Central Asia - Episode 2: Mixed Feelings Content: 1. Leaving the Coast for Bosnia and Herzegovina 2. Mostar: a must-visit for many reasons 3. The Ciro Trail: great route, first down 4. Back to…

Linux Drivers 10 - Regulator API

This article is still only available on Patreon for HACKERS here . If you would like to support my work and get early access to my articles, you can do so on my Patreon profile and start reading this article right now. I’m fully committed to sharing knowledge with everyone, for free. All my articles will eventually be published for open access because I believe knowledge should be accessible to…

Linux Drivers 9 - Linked Lists

This article is still only available on Patreon for HACKERS here . If you would like to support my work and get early access to my articles, you can do so on my Patreon profile and start reading this article right now. I’m fully committed to sharing knowledge with everyone, for free. All my articles will eventually be published for open access because I believe knowledge should be accessible to…

Cycling to Central Asia - Episode 1

Our bikepacking adventure towards Central Asia (and beyond!) has just begun! Well… actually it began a few months ago, but you know, I have been busy travelling and hacking around. So let’s imagine that it just began :wink: We would like to share our journey with everyone, and we will be releasing a lot of content along the way: pictures, blog posts… and even a YouTube series! Although we have big…

Linux Drivers 8 - Completion API in Detail

This article is still only available on Patreon for HACKERS here . If you would like to support my work and get early access to my articles, you can do so on my Patreon profile and start reading this article right now. I’m fully committed to sharing knowledge with everyone, for free. All my articles will eventually be published for open access because I believe knowledge should be accessible to…

Linux Drivers 7 - Interrupts

This article is still only available on Patreon for HACKERS here . If you would like to support my work and get early access to my articles, you can do so on my Patreon profile and start reading this article right now. I’m fully committed to sharing knowledge with everyone, for free. All my articles will eventually be published for open access because I believe knowledge should be accessible to…

Linux Drivers 6 - Runtime Power Management

This article is still only available on Patreon for HACKERS here . If you would like to support my work and get early access to my articles, you can do so on my Patreon profile and start reading this article right now. I’m fully committed to sharing knowledge with everyone, for free. All my articles will eventually be published for open access because I believe knowledge should be accessible to…

Linux Drivers 5 - System-Wide Power Management

This article is still only available on Patreon for HACKERS here . If you would like to support my work and get early access to my articles, you can do so on my Patreon profile and start reading this article right now. I’m fully committed to sharing knowledge with everyone, for free. All my articles will eventually be published for open access because I believe knowledge should be accessible to…

Linux Drivers 4 - Initialization

This article is still only available on Patreon for HACKERS here . If you would like to support my work and get early access to my articles, you can do so on my Patreon profile and start reading this article right now. I’m fully committed to sharing knowledge with everyone, for free. All my articles will eventually be published for open access because I believe knowledge should be accessible to…

From Windows to Linux Step by Step

I have been writing articles about Linux for over a year, and I just realized that I did not cover the first and foremost point for many beginners: how to install a Linux-based operating system! This time I am going to show you how to smoothly switch from Windows to Linux, step by step. It’s really easy, so let’s get started! If you would like to watch it instead of reading, check out my video…

DIY - Upgrade Your Regular Bike For Bikepacking!

Although people have been bikepacking for many decades, it seems that nowadays you must have a $2000+ state-of-the-art bike to do so unless you are a bike mechanic. Well, that’s definitely not true! Today I am going to show you a couple of replacements and upgrades that won’t cost you an arm and a leg and will make your regular bike perform in your bikepacking adventures just fine. Moreover, these…

Linux Drivers 3 - Regmap in Detail

This third episode brings up a key feature for all Linux device drivers that read and write registers, either memory mapped or through a communication protocol. As you can imagine, that is something that a huge amount of device drivers need to do, and having a standard interface is more than welcome. Today, we are going to discuss that standard interface: regmap. I will assume that you have read…

Linux Drivers 2 - Basic layout and Device Model

In this episode we are going to actually write a device driver and interact with a device. What a milestone! And more importantly, we will clarify the modern Linux device model and the general structure of a device driver. And last, but not least, this first device driver will serve as a good base to build upon in the next episodes. For those who still don’t have any target hardware, I have added…

Equipment for Embedded Linux Development

💡 This article contains Amazon affiliate links. If you buy through them, you’ll pay the same price, but Amazon’s commission helps me keep cycling and creating free content. I have no secrets — so far I’ve earned €14.18 (the minimum to cash out is €25). Thanks for your support! A few people who follow my articles –especially the new series about Linux device drivers– have asked me about the…

Linux Drivers 1 - Hardware Considerations and Setup

The day has finally arrived: I’m starting a series on how to write your first device driver for Linux. And no, I’m not talking about out-of-tree modules or examples based on the wonderful but now outdated Linux Device Drivers, 3rd Edition. I’m talking about drivers that use modern APIs and are upstream-ready, so the community can maintain and keep them up-to-date. Thus, I will always assume that…

Test Rides Before the Big Adventure

Although I’m someone who tends to leave a lot to improvisation, I’m not so carefree as to skip testing the gear I’ll take on the BIG JOURNEY. Since we * have had pretty much everything we consider necessary for a while now, we’ve been able to do a few short trips near where we live to see if we are missing anything or carrying too much. And as we live near many borders, those short adventures took…

New Lifestyle - Hacker Bikepacker

I’m packing my bags and off to discover the world by bike. And no, I haven’t hit my head! I’ve been thinking about this for a long time, and now I’m going to make it a reality. Content: 1. WTF?? 2. The plan No more FOSS hacking? 3. Can I help you? Locals Advice from a similar experience Reward my content Follow me and share my content 4. Building site 1. WTF?? I have a stable life, both personal…

Smoothing out Communication in FOSS Projects

Most of the articles about Open Source (including mine) only focus on technical aspects: coding, statistics, results, etc. But as we are not machines (just yet), I think that the human aspects involved in such projects should have some visibility as well. In the end, we are interacting with communities and their individuals, who have their perspectives and communication skills. What sets…

Tips and Tricks to Build the Linux Kernel

Building the Linux kernel from scratch is very easy: you only need the source code ( git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git ), a few tools to be able to compile it (the list of minimal requirements is here ), and simple commands like make defconfig && make . That should be enough to generate a new kernel image, and many developers never go beyond that: make…

Catching runtime bugs with Valgrind and (HW)ASan

Without setting a precedent, this time I am going to talk about some userland tools. In particular, I would like to discuss how to catch memory-related runtime bugs with Valgrind and AddressSanitizer (ASan). How come? Because I have mentioned equivalent tools for the Linux kernel in other articles, and I would like to cover them in more detail. But I have noticed that many beginners were…

Linux Kernel - Mi first 100 patches in the mainline kernel

I have said several times in different articles that contributing to the Linux kernel is both satisfying and rewarding. Some people have asked me if by rewarding I mean that you get some kind of public recognition from the community, maybe some sort of digital award you can add to your resume. Today I saw that some of my bug fixes were applied to some of the latest 6.10 release candidates, and…

Rust in the Linux Kernel - Configuration

After spending some days learning how some compiler attributes (__cleanup, __counted_by) work in the Linux kernel, and fixing multiple bugs by using them properly, I have decided to move on, and start learning how Rust is used in the Linux kernel. I have to admit that I know very little Rust. I completed the Rustlings almost a year ago, and since then I have been programming small userspace…

Linux Kernel Development - Automatic Cleanup 2/2

This second and last episode about the automatic cleanup mechanisms in the Linux kernel covers the concept of classes, macros being used to automatically release resources like mutexes, and the ongoing work to increase its coverage. If you know nothing or very little about the cleanup compiler attribute and how it works, please take a look at the first episode , and then get back to this one. The…

Linux Kernel Development - Automatic Cleanup 1/2

One of the most common criticisms of the C programming language is that dynamically allocated objects are not automatically released. And those who say this are right: memory leaks are a very common issue in C code, including the Linux kernel. Does that mean that C is useless, and the whole kernel should be rewritten in Rust as soon as possible? Definitely not, and even though some code is being…

Linux Kernel Development - Firmware API

The vast majority of devices supported by the Linux kernel require little to no intervention to start running: maybe powering up (e.g. via regulators), de-asserting a reset or accessing a few configuration registers. But a number of them are complex enough to require their own firmware to offer full (or custom) functionality. Some of such devices expect a pre-programmed persistent memory connected…