ubox
Package ubox was added in r36427 and package block-mount was dropped in r36988. r37199 finally adds a UCI-default script for fstab generation.
Cf.
for some insight.
call
block detect
to get a sample UCI configuration file. If target is / then it will be used as extroot. block info is also valid to get the uuid.
OpenWrt – operating system architecture
Whereas desktop distributions use glib+dbus+udev(part of systemd), OpenWrt uses libubox+ubus+procd. This provides some pretty awesome functionality without requiring huge libraries with huge dependencies (*cough* glib).
| Desktop Distributions | OpenWrt | Android | Replicant | mer-based | |||
|---|---|---|---|---|---|---|---|
| Typical main memory size | 128 MiB to 16 GiB (or more) | 32 MiB to 512 MiB1) | min 92 MiB for Android 2.1 min 340 MiB for Android 4.0 | ? | |||
| Supported instruction sets | almost anything | almost anything | x86, 86-64, ARM, MIPS32 | ||||
| non-volatile storage space | 100 MiB | 8 MiB2) | 150MiB for Android 2.1 512MiB for Android 4.0 | ? | |||
| kernel | Linux kernel |
||||||
| FOSS and binary drivers | FOSS drivers: e.g. 802.11; Iaccess | Android binary drivers | |||||
| C standard library | glibc | uClibc, musl | bionic | glibc + libhybris | eglibc 2.15 | ||
| init | init Upstart Initng | systemd | busybox-initd | procd | Android init-fork | systemd |
|
| rsyslog / syslog-ng | busybox-klogd, busybox-syslogd | ||||||
| watchdog | busybox-watchdog | ||||||
| udev | hotplug2 | ||||||
| cron | busybox-crond | ||||||
| atd | na | ||||||
| D-Bus | ubus | Binder | ? | D-Bus | |||
| network configuration | NetworkManager + GUI | netifd | ConnectivityManager (not ConnMan = ConnectionManager!) | ? | ConnMan | ||
| GLib (GObject, Glib, GModule, GThread, GIO) | libubox | ? | ? | Qt-based? | |||
| PulseAudio | pulseaudio (optional) | PulseAudio | PulseAudio | PulseAudio | |||
| Package management system | dpkg/APT RPM/yum portage pacman ... | opkg | apk | ? | RPM | ||
What's the difference between ubus vs dbus?
dbus is bloated, its C API is very annoying to use and requires writing large amounts of boilerplate code. In fact, the pure C API is so annoying that its own API documentation states: “If you use this low-level API directly, you're signing up for some pain.”
ubus is tiny and has the advantage of being easy to use from regular C code, as well as automatically making all exported API functionality also available to shell scripts with no extra effort.
“Of course, NetworkManager should be renamed to “unetwork”, dbus to “ubus”, PulseAudio to “usound”, and X.Org-Server/Wayland-Compositor to “udisplay”; and then indescribable happiness would come down to all people of this world.” – Lennart Poettering
- PulseAudio does not depend on GLib and does not seem to depends on D-Bus neither: LFS