Linux Kernel Modules

Linux Kernel Modules In the design of the Linux system kernel, kernel modules are an important mechanism for extending kernel functionality. They allow for the dynamic loading and unloading of code without the need to recompile the entire kernel. This not only enhances the system’s flexibility and maintainability but also provides developers with an efficient … Read more

Linux Driver Development: How to Pass Parameters to Kernel Modules

Communicating with Linux Device Drivers The first driver we write is like a silent employee, only working according to a fixed process. However, in reality, we often need to tell this employee specific information, such as: “Use the red LED today” or “Set the motor speed to 1000 RPM”. This article teaches you how to … Read more

Can’t Find Linux Drivers? These Commands Accurately Locate All Hardware Drivers

Can't Find Linux Drivers? These Commands Accurately Locate All Hardware Drivers

As a Linux system administrator, have you ever encountered these frustrating scenarios: the newly installed system does not recognize the wireless network card, external devices do not respond when plugged in, or you want to update a driver but do not know which version is currently in use? In fact, driver information is hidden within … Read more

Detailed Explanation of Linux Netfilter Instances

Detailed Explanation of Linux Netfilter Instances

Completed Content I will create a simple firewall demo to help you familiarize yourself with network kernel programming. This demo will be implemented based on the Linux Netfilter framework. Basic Framework Basic Concepts Netfilter Framework Netfilter is a framework in the Linux kernel used for filtering, modifying, and redirecting network packets. It provides multiple hook … Read more

Essential Kernel Course for BSP Engineers: 2.6 Complete Analysis of the Dynamic Loading Process of Kernel Modules from Compilation and Linking to insmod

Essential Kernel Course for BSP Engineers: 2.6 Complete Analysis of the Dynamic Loading Process of Kernel Modules from Compilation and Linking to insmod

This article will provide a complete analysis of the dynamic loading process of kernel modules. To emphasize, we are organizing the dynamic loading process in this section, which involves compiling into a <span>ko</span> file and using the <span>insmod</span> method to load it, which differs from the <span>built-in</span> process where the kernel automatically loads modules. First, … Read more

Essential Kernel Course for BSP Engineers: 2.5. Inter-Module Dependency Issues and the Principle of EXPORT_SYMBOL

Essential Kernel Course for BSP Engineers: 2.5. Inter-Module Dependency Issues and the Principle of EXPORT_SYMBOL

Adhering to high-quality original content, rejecting content piling, if you like it, click the star above to receive updates promptly, thank you for your attention! We previously learned how to compile and run kernel modules, but in reality, many driver modules are quite complex. Most driver modules consist of multiple files, and there are dependencies … Read more

EVDI: Extensible Virtual Display Interface for Linux Kernel Modules

EVDI: Extensible Virtual Display Interface for Linux Kernel Modules

EVDI: Extensible Virtual Display Interface for Linux Kernel Modules Overview EVDI (Extensible Virtual Display Interface) is an open-source project that essentially acts as a virtual display, allowing any user-space Linux program to manage additional displays and receive updates from these displays, providing multi-screen management and virtual display control capabilities for user-space programs. EVDI is compatible … Read more

Essential Kernel Course for BSP Engineers: 2.2. A Comprehensive Guide to Compiling and Running Kernel Modules

Essential Kernel Course for BSP Engineers: 2.2. A Comprehensive Guide to Compiling and Running Kernel Modules

This section demonstrates how to compile a kernel module into the kernel using the Linux Kernel Build system, as well as how to load and unload kernel modules. To maintain the flow, this section will focus on demonstrating the overall operation process, while the details and principles will be elaborated in later sections. As introduced … Read more

In-Depth Analysis of Linux Kernel Linked Lists: The Secrets and Practical Guide to list.h

In-Depth Analysis of Linux Kernel Linked Lists: The Secrets and Practical Guide to list.h

In the world of the Linux kernel, data structures are like the foundation of a building, supporting the efficient operation of the entire system. Linked lists, as a flexible and commonly used data structure, play a crucial role in the kernel. Today, we will delve into the implementation of linked lists in the Linux kernel—list.h—and … Read more

Basics of Device Driver Development in C Language

Basics of Device Driver Development in C Language

Basics of Device Driver Development in C Language A device driver is a bridge between the operating system and hardware, responsible for managing and controlling hardware devices. This article will introduce how to develop simple device drivers using the C language, suitable for beginners. 1. What is a Device Driver? A device driver is a … Read more