MISC-AN-001: Creating a root file system using Buildroot

From DAVE Developer's Wiki
Revision as of 11:53, 18 October 2023 by U0007 (talk | contribs) (Created page with "{{InfoBoxTop}} {{AppliesToAXEL ULite AN}} {{AppliesTo_SBC_Lynx_AN}} {{AppliesTo_RIALTO_SBC_AN}} {{InfoBoxBottom}} {{ImportantMessage|text=This application note has been valid...")

(diff) ← Older revision | Approved revision (diff) | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Info Box


200px-Emblem-important.svg.png

This application note has been validated using the kit version in the History table.

History[edit | edit source]

Date Version
Oct 2023 Buildroot 2022.05

Introduction[edit | edit source]

By default, AXEL ULite comes with a DESK-MX6UL-L Yocto distribution. Nevertheless, other distributions can be used as well. This application note shows how to run one of them, Buildroot.

Buildroot is known to be very simple to configure and build. An exhaustive discussion of Buildroot is beyond the scope of this application note. The interested reader can refer for example to this presentation which compares in detail Yocto and Buildroot.

The test bed used for this application note is composed of the same hardware/software platform delivered along with the DESK-MX6UL-L. About Buildroot, the version buildroot-2022.05 was used.

Donwloading, configuring and building[edit | edit source]

This process is straightforward. Once the file buildroot-2022.05.tar.gz is downloaded and decompressed on your Linux host machine, get into the Buildroot directory, and run make menuconfig.

Buildroot make menuconfig

Then enter the Target options menu and select:

  • ARM (little endian) for Target Architecture
  • cortex-A7 for Target Architecture Variant

as shown in the following picture.

Buildroot make menuconfig


Another important configuration is the Freescale i.MX Libraries settings for i.MX6UL processor and its imx-tools (imx-codec, imx-kobs, firmware)

i.MX libraries


That's it: after saving your configuration, and exiting menuconfig, you can start the build process by simply issuing the make command.

For your sake of convenience, the created .config file can be downloaded from [here].

Linux kernel[edit | edit source]

The latest Linux kernel version provided in the DAVE' git repositories can be used for building the kernel image too.

The kernel tarball can be copied into the proper Buildroot directory:

Linux kernel tarball

Package list[edit | edit source]

The root file system package composition has been created for a list of packages commonly used for creating a root file system good for all seasons.

Here below a list of most important selected packages:

  • Qt5.15 libraries including: qt5declarative, qt5quickcontrols, qt5quickcontrols2, qt5sensors, qt5serialbus, qt5serialport, Qt SQlite and the very important qt5webkit
    • qt-web-kiosk browser can be used for creating a GUI with an embedded browser as a Kiosk application has been included too
  • framebuffer utilities like: fbset, fbv, fbgrab and the fb-test application
  • python3 interpreter including pyhton3-ssl, pyhton-flask, pyhton-httplib2, pyhton-jinja2, pyhton-pip, pyhton-py, pyhton-pymodbus, pyhton-pymysql, pyhton-pyqt5, pyhton-pyusb, pyhton-serial, pyhton-setupotools
  • lua
  • network applications: avahi, bluez, iptables, iw, lighthttpd, ntp, openssl, openssh, vsftpd, wget
  • Javascript: angularjs, bootstrap, nodejs
  • opkg, rpm

Build the targets[edit | edit source]

It is enough tun run the make command and buildroot will start to building the toolchain and then cross-compiling the overall selected packages.