Buildroot System Construction Learning Notes Using IMX6ULL

Click the “Embedded Cloud IoT Technology Circle” above to select “Pin Public Account” to view embedded notes at the first time!

Recently, I have been studying content related to audio and video development, so hardware selection is very important. Due to chip shortages, to ensure the normal supply chain of future chips, I finally chose the newly launched chip series from Rockchip: RV1126_RV1109. To learn efficiently, I have categorized and summarized the documents provided in the docs directory of the Rockchip platform SDK, so that I can quickly refer to relevant materials in my work later for efficient debugging and development:

Buildroot System Construction Learning Notes Using IMX6ULL

Buildroot System Construction Learning Notes Using IMX6ULL

Buildroot System Construction Learning Notes Using IMX6ULL

The construction method of this platform’s system adopts Buildroot, so learning Buildroot will be beneficial for the upcoming work. This is also the current direction of embedded development!

For development boards and similar devices, the principles are interconnected; if one understands one, they can understand many. Therefore, I will use the IMX6ULL development board and documentation tutorial provided by Baidu to learn and summarize. First, I need to set up the environment:

1. Use the 7z command to extract the SDK from Baidu

Buildroot System Construction Learning Notes Using IMX6ULL2. Set up the embedded development environment

2.1. Configure the IMX6ULL cross-compilation toolchain

Move the path of the cross-compilation toolchain extracted from the SDK to the /opt directory for easier management:

Buildroot System Construction Learning Notes Using IMX6ULL

vim ~/.bashrc Add environment variables to this file:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/opt/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin

Buildroot System Construction Learning Notes Using IMX6ULL

After setting up, make the environment variables effective:

source ~/.bashrc

Check the result of the environment configuration:

Buildroot System Construction Learning Notes Using IMX6ULL

Thus, the basic environment configuration is complete!

3. Use Buildroot to build the system

3.1. What is Buildroot?

Buildroot is a set of Makefiles and patches that simplify and automate the building of a complete, bootable Linux environment for embedded systems (including bootloader, Linux kernel, and file systems containing various APPs). Buildroot runs on the Linux platform and can use cross-compilation tools to build embedded Linux platforms for multiple target boards. Buildroot can automatically build the required cross-compilation toolchain, create the root filesystem, compile the Linux kernel image, and generate bootloaders for target embedded systems, or it can perform any standalone combination of these steps. For example, an installed cross-compilation toolchain can be used alone while Buildroot only creates the root filesystem.

3.2. How to learn Buildroot in depth?

  • Buildroot user manual: https://buildroot.org/downloads/manual/manual.html
  • Buildroot source download location: https://buildroot.org/downloads/
  • For the directory structure and its functions, please refer to: http://wiki.100ask.net/Buildroot
  • To learn more about Buildroot, please refer to: http://wiki.100ask.org/Buildroot

3.3. Buildroot Directory Structure

Buildroot System Construction Learning Notes Using IMX6ULL3.4, Common Operations in Buildroot

Buildroot System Construction Learning Notes Using IMX6ULL

3.5. Practical Experience Based on Baidu IMX6ULL

Baidu’s Buildroot provides three configuration files:

Buildroot System Construction Learning Notes Using IMX6ULL

Since I will use QT more in my future work, I will add items based on the 100ask_imx6ull-qt defconfig configuration file. The compilation and configuration commands are as follows:

book@100ask: ~/workspace/100ask_imx6ull-sdk $ cd Buildroot_2019.02
book@100ask:~/workspace/100ask_imx6ull-sdk/Buildroot_2019.02$ make clean
book@100ask:~/workspace/100ask_imx6ull-sdk/Buildroot_2019.02$ make 100ask_imx6ull-qt_defconfig
book@100ask:~/workspace/100ask_imx6ull-sdk/Buildroot_2019.02$ make all

As shown below:

Buildroot System Construction Learning Notes Using IMX6ULL

Buildroot System Construction Learning Notes Using IMX6ULL

Long compilation process!!! Waiting for completionAfter compilation, you can happily proceed with embedded QT and audio and video development and learning!

Previous Highlights

STM32 Online Upgrade OTA, This Article is Enough~

Issue 10 | Ring Buffers, General FIFO Circular Buffer Implementation Library

ESP8266 Practical Post: Use HTTP POST Request to Upload Data to Public Cloud OneNet

If You Know C/C++, Can You Develop Linux/Android Applications? Learn About Yoxios, which Replaces Traditional Serial Screens!

If you find this article helpful, please click<span>[Looking]</span> and share it, which is also a support for me.

Leave a Comment