Quick Start Guide to Embedded Linux System (Part 2): Building a Linux System with Buildroot

Quick Start Guide to Embedded Linux System (Part 2): Building a Linux System with Buildroot

In embedded Linux development, building a system from source and getting it to run on hardware is one of the most exciting moments. This article will guide you step by step through this process, targeting the Raspberry Pi as the hardware platform and using the Buildroot toolchain to create a highly customized Linux system image. … Read more

ESP32 Learning Notes (3)

ESP32 Learning Notes (3)

Recently, while exploring the ESP32, I discovered many AI toys designed for smart voice applications. These devices interact with remote large models to generate intelligent speech, which looks particularly cool. In the past, I occasionally encountered projects that required interfacing with hardware, such as massage chairs, smart car washes, oxygen machine testing, CarPlay, boot cards, … Read more

Detailed Method for Compiling the Renesas RZ/G2L Bootloader Separately

Detailed Method for Compiling the Renesas RZ/G2L Bootloader Separately

The RZ/G2L microprocessor is equipped with a Cortex®-A55 (1.2 GHz) CPU, a 16-bit DDR3L/DDR4 interface, a 3D graphics acceleration engine with Arm Mali-G31, and a video codec (H.264). Additionally, this microprocessor features a variety of interfaces such as camera input, display output, USB 2.0, and Gigabit Ethernet, making it particularly suitable for entry-level industrial human-machine … Read more

Setting Up an Embedded Linux Environment on RK3568

Setting Up an Embedded Linux Environment on RK3568

1. Background To develop an embedded Linux application based on the MPU, it is necessary to configure the cross-compilation toolchain and port uboot + kernel. Development Environment: Windows 11 + VM16 + Ubuntu 16 2. Installation Steps 2.1 Install VMware 16 2.2 Install Ubuntu System ubuntu-16.04.5-desktop-amd64.iso 2.3 Install VMware Tools Shared Folder sudo vmhgfs-fuse .host://mnt/hgfs … Read more

Code Testing and Environment Setup for Sqlite3 on Arm Linux Development Boards

Code Testing and Environment Setup for Sqlite3 on Arm Linux Development Boards

·1. Test Code ·2. Cross Compilation oCommand Structure oFunction of Each Part ·3. Execute Test ·4. Environment Variable `$PATH` o4.1 System-level Configuration Files (Global Settings) o4.2 User-level Configuration Files (Personal Settings) o4.3 Shell Built-in Defaults ·5. How to Find the Source of the Current `PATH`? ·Common Modification Scenarios 1. Test Code // test_sqlite.c #include <stdio.h> … Read more

In-Depth Understanding of the GCC Toolchain: The Cornerstone and Advanced Guide for Embedded Development

In-Depth Understanding of the GCC Toolchain: The Cornerstone and Advanced Guide for Embedded Development

In embedded system development, the GCC toolchain is an indispensable core tool. It is not just a set of compilers but also supports the entire process of building, debugging, and optimizing programs. This article will systematically introduce you to the various components of the GCC toolchain, its working mechanisms, debugging and optimization techniques, along with … Read more

Yocto vs Buildroot: Which is More Suitable for Creating SDKs?

Yocto vs Buildroot: Which is More Suitable for Creating SDKs?

In embedded Linux development, an SDK (Software Development Kit) is not just a set of cross-compilers, but a comprehensive set of capabilities that supports application developers in building target system software “efficiently, accurately, and securely”. It serves as an important bridge between system builders and application developers. This bridge has completely different construction methods, widths, … Read more

Goodbye C Language! bzip2 Officially Transitions from C to Rust

Goodbye C Language! bzip2 Officially Transitions from C to Rust

You read that right, the aging compression algorithm—bzip2, which still exists in countless software dependency trees, has officially embraced Rust. In the latest release of bzip2 crate 0.6.0, it no longer calls the C library by default, but instead fully utilizes the Rust-implemented libbz2-rs-sys. This means: faster performance, simpler cross-compilation, stronger compatibility, and enhanced safety. … Read more

Compiling Linux 3.10 with QEMU Simulation and BusyBox

Compiling Linux 3.10 with QEMU Simulation and BusyBox

Since I couldn’t find a complete tutorial on compiling Linux version 3.10 with QEMU simulation, I decided to summarize the entire process myself. My goal is to simulate a router firmware with a Linux 3.10 kernel and a specific version of the cross-compiler. Prerequisites To perform QEMU system simulation, we need at least two files: … Read more

Compiling GCC 11.5 x64 to AArch64 Cross Toolchain on CentOS 6.10

Compiling GCC 11.5 x64 to AArch64 Cross Toolchain on CentOS 6.10

Prerequisites Prepare the following source packages binutils-2.29 gcc-11.5.0 glibc-2.17 linux-3.10.99 First, build a GCC 5.2, x64 is sufficient. C++11 is required, the default GCC in the repository is 4.4.7 The ARM64 version of glibc 2.17 is required linux-3.10.99 provides header files for glibc 2.17 Set up environment variables export PKG=/soft/pkg export SRC=/dd/gcc-srcexport BUILD=/dd/gcc-buildexport TARGET=aarch64-linux-gnuexport PREFIX=/dd/aarch64-linux-gnu-gcc-11.5.0export … Read more