OpenSTLinux directory structure

Template:ArticleMainWriter Template:ReviewersList Template:ArticleApprovedVersion


This article aims at presenting the directory structure of the Linux root file system available on STM32 board.

All files and directories are located under the root directory (/), in compliance with the File system Hierarchy Standard.

This root directory corresponds to the Linux root file system (rootfs partition), as defined in Flash partitions. Note also that the user file system (userfs partition) and the boot file system (bootfs partition) can be accessed through the /usr/local mounting point and through the /boot mounting point, respectively.

Info.png In practice, this article uses the STM32MPU Embedded Software distribution release issued on 03-July-2018 as an example to illustrate the Linux directory structure. If you are using a different release, the names of the directories and files might differ.

The directories are shown in green, while the files are in black.

/                            Root directory (rootfs partition)
├── bin                      Essential user binaries (e.g. /bin/cat, /bin/ls, /bin/cp...)
│   └── [...]
├── boot                     Mounting point for the boot file system (bootfs partition): see below
├── config
├── dev                      Device files (e.g. /dev/null, /dev/tty0, /dev/video0...)
├── etc                      System-wide configuration files (e.g. /etc/xdg/weston/weston.ini Weston configuration file...)
├── home                     Users' home directories (containing saved files, personal settings...)
├── lib                      Essential system libraries for the binaries in /bin and /sbin (e.g. libncurses.so.5.9...)
│   ├── modules
│   │   └── 4.14.48
│   │       ├── kernel       Linux kernel modules
│   │       │   └── [...]
│   │       ├── modules.dep  List of module dependencies (generated by depmod)
│   │       └── [...]
│   └── [...]
├── lost+found
├── media                    Mount points for removable media devices
├── mnt                      Temporarily mounted file systems
├── proc                     Pseudo filesystem providing process and kernel information as files (e.g. /proc/cpuinfo, /proc/version...)
├── run                      Run-time variable data (information about the running system since last boot)
├── sbin                     Essential system binaries (e.g. /sbin/fsck, /sbin/init, /sbin/modprobe...)
├── sys                      Information about devices, drivers, and some kernel features (e.g. /sys/kernel/debug akadebgufs...)
├── tmp                      Temporary files
├── usr                      User utilities and applications
│   ├── bin                  Non-essential user binaries (e.g. /usr/bin/lsusb, /usr/bin/weston...)
│   ├── lib                  Non-essential system libraries for the binaries in /usr/bin and /usr/sbin
│   ├── local                Mounting point for the user file system (userfs partition): see below
│   ├── sbin                 Non-essential system binaries (e.g. /usr/sbin/alsactl, /usr/sbin/weston.sh...)
│   ├── share                Architecture-independent (shared) data
│   └── [...]
└── var                      Variable files
  • Boot file system mounting point
/boot  bootfs partition
├── stm32mp157c-d[*].dtb  Linux kernel device tree blob files → STM32MP15 Discovery kits
├── stm32mp157c-e[*].dtb  Linux kernel device tree blob files → STM32MP15 Evaluation boards
├── uImage                Linux kernel binary image file (with U-Boot wrapper)
└── [...]
  • User file system mounting point
/usr/local  userfs partition
├── examples
│   ├── STM32MP15_DISCO  Examples of firmwares running on Arm Cortex-M4 → STM32MP15 Discovery kits
│   │   ├── GPIO_EXTI                GPIO EXTI example started by Linux Remote Processor Framework
│   │   │   ├── fw_cortex_m4.sh                                         Script to start/stop the example
│   │   │   ├── lib
│   │   │   │   └── firmware
│   │   │   │       └── STM32MP15_M4_DISCO_GPIO_EXTI.elf                Firmware for this example
│   │   │   └── README                                                  Helper file for this example
│   │   ├── OpenAMP_TTY_echo         OpenAMP TTY echo example started by Linux Remote Processor Framework
│   │   │   ├── fw_cortex_m4.sh                                         Script to start/stop the example
│   │   │   ├── lib
│   │   │   │   └── firmware
│   │   │   │       └── STM32MP15_M4_DISCO_OpenAMP_TTY_echo.elf         Firmware for this example
│   │   │   └── README                                                  Helper file for this example
│   │   └── OpenAMP_TTY_echo_wakeup  OpenAMP TTY echo wakeup example started by Linux Remote Processor Framework
│   │       ├── fw_cortex_m4.sh                                         Script to start/stop the example
│   │       ├── lib
│   │       │   └── firmware
│   │       │       └── STM32MP15_M4_DISCO_OpenAMP_TTY_echo_wakeup.elf  Firmware for this example
│   │       └── README                                                  Helper file for this example
│   └── STM32MP15_EVAL   Examples of firmwares running on Arm Cortex-M4 → STM32MP15 Evaluation boards
│       ├── GPIO_EXTI                GPIO EXTI example started by Linux Remote Processor Framework
│       │   ├── fw_cortex_m4.sh                                         Script to start/stop the example
│       │   ├── lib
│       │   │   └── firmware
│       │   │       └── STM32MP15_M4_EVAL_GPIO_EXTI.elf                 Firmware for this example
│       │   └── README                                                  Helper file for this example
│       ├── OpenAMP_TTY_echo         OpenAMP TTY echo example started by Linux Remote Processor Framework
│       │   ├── fw_cortex_m4.sh                                         Script to start/stop the example
│       │   ├── lib
│       │   │   └── firmware
│       │   │       └── STM32MP15_M4_EVAL_OpenAMP_TTY_echo.elf          Firmware for this example
│       │   └── README                                                  Helper file for this example
│       ├── OpenAMP_TTY_echo_wakeup  OpenAMP TTY echo wakeup example started by Linux Remote Processor Framework
│       │   ├── fw_cortex_m4.sh                                         Script to start/stop the example
│       │   ├── lib
│       │   │   └── firmware
│       │   │       └── STM32MP15_M4_EVAL_OpenAMP_TTY_echo_wakeup.elf   Firmware for this example
│       │   └── README                                                  Helper file for this example
│       └── QSPI_ReadWrite_IT        QSPI Read/Write in interrupt mode started by Linux Remote Processor Framework
│           ├── fw_cortex_m4.sh                                         Script to start/stop the example
│           ├── lib
│           │   └── firmware
│           │       └── STM32MP15_M4_EVAL_QSPI_ReadWrite_IT.elf         Firmware for this example
│           └── README                                                  Helper file for this example
└── lost+found