Four Key Steps in Embedded Linux System Porting

Four Key Steps in Embedded Linux System Porting

Recently, I have been learning about system porting. During the process of learning and debugging, I encountered and solved many problems, but I always felt a vague sense of confusion about our development results. Upon reflection, the main reason is that we do not have a profound understanding of our development environment. Sometimes, a few … Read more

Common Pitfalls and Solutions in Linux Kernel Driver Debugging

Common Pitfalls and Solutions in Linux Kernel Driver Debugging

This article is an excellent post from the Kanxue Forum Kanxue Forum Author ID:Vinadiak 0x00 Background Recently, I have been learning Linux kernel debugging and after setting up the QEMU environment following the tutorial by Chao Sir, I was excited to start my kernel debugging journey. However, I encountered many obstacles that I couldn’t resolve … Read more

Debugging Nt!KiSystemStartup Using IDA, WinDbg, and VMware

Debugging Nt!KiSystemStartup Using IDA, WinDbg, and VMware

KiSystemStartup is the entry function of the kernel module nt. If you want to debug this function, simply using WinDbg and VMware won’t work (or I don’t know how to do it). Below, I will introduce how to use IDA’s GDB debugging feature in conjunction with WinDbg to debug KiSystemStartup. (Only for X64 environment) 1. … Read more

Basic Framework of Linux Kernel Modules

The writing of Linux kernel modules intimidates many people, but it is actually not that difficult or complicated. Here’s a basic framework to help those with a little knowledge get started quickly. 1. Basic Framework (Before Kernel 2.3.13) #include<linux/kernel.h> #include<linux/module.h> int init_module(void){ pr_info("hello module.\n"); return 0; } void cleanup_module(void){ pr_info("hello end.\n"); } MODULE_LICENSE("GPL"); #include<linux/module.h> int … Read more

The Relationship Between Makefile, Kconfig, and .config in Linux Kernel

The Relationship Between Makefile, Kconfig, and .config in Linux Kernel

When compiling the Linux kernel, we often execute some commands in the top-level directory of the Linux kernel. Taking RK3288 as an example, commands such as: make firefly-rk3288-linux_defconfig, make menuconfig, make firefly-rk3288.img, make zImage, etc. are used. Without getting into the specifics of these commands, let’s raise a few questions. (1) Given the vastness of … Read more

Virtual Serial Port Driver in Linux (Part 1)

Virtual Serial Port Driver in Linux (Part 1)

Introduction Recently, I prepared to implement a virtual serial port driver in Linux; however, since graduation, I have been engaged in bare-metal driver development, and thus I have gradually forgotten about device drivers in Linux. To achieve this functionality, I have searched for a lot of information online, but most of it only explains the … Read more

Understanding Linux System Architecture

Understanding Linux System Architecture

The Linux system generally has four main parts: Kernel, shell, file system, and applications. The kernel, shell, and file system together form the basic operating system structure, allowing users to run programs, manage files, and use the system. A part of the hierarchy is shown in Figure 1-1. 1. Linux Kernel The kernel is the … Read more

Understanding Linux Kernel Concepts and Learning Path

Understanding Linux Kernel Concepts and Learning Path

Source: Ma Ge Linux Operations This article is approximately 8500 words, recommended reading time is 15 minutes. This article mainly explains what the Linux kernel is and showcases its functions and features through multiple images. 1. Introduction This article mainly explains what the Linux kernel is and showcases its functions and features through multiple images … Read more

Running Android Apps on Jetson Nano 2GB Using Anbox

Running Android Apps on Jetson Nano 2GB Using Anbox

**The Jetson Nano 2GB is a high-performance, cost-effective embedded platform from NVIDIA. Although small, it is powerful, but unfortunately, it lacks native Android system support. Currently, to experience Android on the Jetson platform, one can run an Android system in a virtual machine or use a platform like Anbox. Anbox is developed based on containers … Read more