A Perspective on Embedded Linux from a Microcontroller Engineer

A Perspective on Embedded Linux from a Microcontroller Engineer

Introduction This article provides a brief overview of some knowledge related to Embedded Linux, serving as a reference for those who, like me, wish to advance from microcontroller programming to Embedded Linux. With the increasing number of tutorials on Embedded Linux, I believe many friends studying microcontrollers have started to explore this area. What to … Read more

Introduction to the Linux Kernel Crypto API

Introduction to the Linux Kernel Crypto API

Overview The Linux Kernel Crypto API provides a rich set of encryption algorithms and other data transformation mechanisms, defining a unified method for invoking these mechanisms. In the Kernel Crypto API, all algorithms are collectively referred to as “transformations”; thus, handle variables related to cryptographic algorithms are typically named <span>tfm</span>. In addition to encryption operations, … Read more

It’s 2025! The Linux Kernel Floppy Disk Driver is Still Being Updated

It's 2025! The Linux Kernel Floppy Disk Driver is Still Being Updated

Source: Fast Technology Recently, the floppy disk driver in the Linux kernel has received a maintenance update after three years, which was submitted by Intel engineer Andy Shevchenko, primarily focusing on code cleanup and optimization. The update includes: removing the unused CROSS_64KB() macro from arch/code, replacing the custom SZ_64K constant, and sorting the headers alphabetically. … Read more

Understanding the Three Boot Processes of RK3399

Understanding the Three Boot Processes of RK3399

1. What is the Boot Process? When we press the power button, how does the RK3399 transition from “nothing” to entering the Linux system? This entire process is called the “boot process.” This can be likened to our daily waking up process: Open Eyes (BootRom) → Get Up and Get Dressed (Bootloader) → Eat and … Read more

ALSA Driver: An In-Depth Analysis of the ALSA Framework from the Perspective of Device Drivers

ALSA Driver: An In-Depth Analysis of the ALSA Framework from the Perspective of Device Drivers

AbstractThis article provides an in-depth analysis of the core driver implementation mechanism of the Loopback sound card (simple, without involving low-level hardware drivers) from the perspective of character device driver development, based on the Linux kernel 6.8.0 and the QEMU simulation environment with AArch64 architecture. It focuses on the registration management of device nodes and … Read more

Smart Pointers in the Linux Kernel

Smart Pointers in the Linux Kernel

Familiarity with C++ means that students should be well-acquainted with std::unique_ptr, which is one of the smart pointers used in C++ to manage the lifecycle of dynamically allocated memory. Its core design principles are twofold: first, when a smart pointer goes out of scope, the memory it points to is automatically released, thus avoiding memory … Read more

Debugging the Linux Kernel Using QEMU and GDB

Debugging the Linux Kernel Using QEMU and GDB

Debugging the Linux kernel is an important way to understand the internal workings of an operating system. Often, code is understood through execution rather than just reading. By using QEMU in conjunction with the GDB debugger, we can set breakpoints, step through code, and inspect various data structures within the Linux kernel without needing additional … Read more

Compiling the Linux Kernel from Source on Ubuntu 18.04 and Running a BusyBox Filesystem

Compiling the Linux Kernel from Source on Ubuntu 18.04 and Running a BusyBox Filesystem

I previously wrote an article titled: “Reading the Linux Kernel Source: Downloading the Source, Compiling the Kernel, and Running a Minimal System.” However, many fans reported encountering various issues, including but not limited to: Unable to create files, with a message indicating a read-only file system Configuration file errors Unable to mount the root filesystem, … Read more

Getting Started with Embedded Linux Systems Using Buildroot – Part 3

Getting Started with Embedded Linux Systems Using Buildroot - Part 3

This series will create my first runnable embedded Linux system based on the Buildroot repository provided by Microchip. AT91Bootstrap Operation Tutorial Modify AT91Bootstrap Specific Configuration Operation command: make at91bootstrap3-menuconfig make at91bootstrap3-menuconfigDetailed interface of AT91Bootstrap: AT91Bootstrap Detailed Configuration Interface If running bare-metal or RTOS on Microchip MPU, you can modify the filename of u-boot.bin in the … Read more

Understanding Exception Handling in ARMv8

Understanding Exception Handling in ARMv8

“ A traveler asked the old monk, “What did you do before you attained enlightenment?” The old monk replied, “Chopping wood, carrying water, and cooking.” The traveler asked, “And after attaining enlightenment?” The old monk said, “Chopping wood, carrying water, and cooking.” The traveler further inquired, “What does it mean to attain enlightenment?” The old … Read more