Storage layout¶
rxOS storage is highly compartmentalized to allow different pieces of the system and application code to utilize different portions of the storage without stepping on each other. There are two types of storage used by rxOS:
- SD card (on Raspberry Pi)
- NAND flash (on CHIP)
The following table shows different portions of the storage on SD card and how they are used:
| Storage device | Size | Format | Usage | |
|---|---|---|---|---|
| 1 | Primary partition | 200M | FAT32 | Boot files |
| 2 | Extended partition | Receiver state | ||
| 5 | conf | 24M | ext4 | Persistent system configuration |
| 6 | cache | 600M | ext4 | Download cache |
| 7 | data | 2G | ext4 | Application data |
| 8 | downloads | rest | ext4 | Downloaded files |
The following table shows different portions of the NAND flash storage and how they are used:
| Storage device | Size | Format | Usage | |
|---|---|---|---|---|
| 1 | spl | 4M | raw | Secondary program loader |
| 2 | spl-backup | 4M | raw | SPL backup |
| 3 | uboot | 4M | raw | U-Boot Bootloader |
| 4 | env | 4M | raw | Bootloader settings |
| 5 | swap | 400M | raw | (reserved for future use) |
| 6 | UBI | Kernel and Receiver state | ||
| 1 | linux | 64M | ubifs | Boot files |
| 2 | root | 200M | ubifs | Root filesytem |
| 3 | root-backup | 200M | ubifs | Backup root filesystem |
| 4 | conf | 64M | ubifs | Persistent configuration |
| 5 | cache | 600M | ubifs | Download cache |
| 6 | appdata | 1G | ubifs | Application data |
| 7 | data | rest | ubifs | Downloaded files |
Boot files¶
Stores the boot files.
On Raspberry Pi, it contains the following files:
- Raspberry Pi 3 binary device tree
- Stage 2 and 3 bootloader
start.elf- Kernel image (
kernel.img) - Main and fallback rootfs SquashFS images (
root.sqfs,backup.sqfs) - Factory default SquashFS image (
factory.sqfs)
On CHIP, it contains the following files:
- CHIP binary device tree
- Kernel image (
zImage)
These files are read-only (except when updating the system).
Receiver state¶
The receiver state extended partition is split into 4 logical partitions. These partitions contain:
- persistent system configuration
- download cache
- application data
- downloads
Persistent system configuration¶
The init script that sets up configuration overrides maintains a list of configuration files that should be overridden based on the contents of the config partition. The files from the config partition are symlinked to appropriate locations in the rootfs.
Download cache¶
The download cache is a storage area for partial downloads. ONDD download cache is stored in a separate partition to maximize control over the storage capacity.
Application data¶
Application data partition stores application configuration, databases, and other application state.
Downloaded files¶
Remaining space on the SD card is used for permanent storage of downloaded files.