Commit Graph

13 Commits

Author SHA1 Message Date
Daniel Golle 3d86716b4f
uvol: switch to /sys/class/ubi
Instead of /sys/devices/virtual/ubi which will no longer be available
in future kernels, switch to /sys/class/ubi.
While at it fix unrelated arithmetic syntax error by guarding the
affected expression to not run on an empty string.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-02-15 04:06:36 +00:00
Daniel Golle adce04d840
uvol: add missing quote
Add missing quote which broke the autopart script.

Fixes: b1edbe349 ("uvol: fix regression in handling fractional megabytes free")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-01-25 03:34:31 +00:00
Philip Prindeville b1edbe349f uvol: fix regression in handling fractional megabytes free
Also, fix off-by-one issue when computing free size.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
2023-01-23 01:31:52 +00:00
Daniel Golle 362ff12fb4
uvol: update to version 0.8
Bump version to reset PKG_RELEASE counter.
Add missing dependency on ucode-mod-math which is needed for the
mkdtemp() implementation used to format UBI volumes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-04-15 17:40:45 +01:00
Daniel Golle 74caff0d59
uvol: fixes and adapt to in-tree ucode
Don't use features which are not yet present in the version of ucode
currently shipped with OpenWrt (such as `fs.access()` or assuming raw
mode by default).
Fix syntax error in main executable.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-04-04 11:29:12 +01:00
Daniel Golle 22d202e3a5
uvol: unbreak build and adapt to updated ucode
* Fix build which was broken by a wrong path in the Makefile.

Adapt to ucode commit 4618807 ("main: rework CLI frontend"):
 * ucode now no longer needs the {% %} around each code file, remove
   that and safe one level of indentation.
 * ARGV now no longer includes ucode executable and script itself

Fixes: 6350c7bc6 ("uvol: replace with re-write in ucode")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-03-31 22:28:27 +01:00
Daniel Golle 6350c7bc63
uvol: replace with re-write in ucode
Replace previous Shell draft-quality implementation of uvol with a
rewrite in ucode[1].
While the new code is slightly larger, it performs much better (as
we no longer fork() for parsing strings like in Shell with grep, sed
and friends).

Before:
  time uvol list -j
  [ ... ]
  real	0m 0.82s
  user	0m 0.13s
  sys	0m 0.10s

After:
  time uvol list -j
  [ ... ]
  real	0m 0.47s
  user	0m 0.05s
  sys	0m 0.05s

[1]: https://github.com/jow-/ucode
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-03-31 18:45:22 +01:00
Daniel Golle f8f5960e76
uvol: update to 0.6
* auto-created meta volume
Automatically create volume '.meta' sized 0.01% of the total space
managed by uvol, the minimum size being 4 MiB.
This volume should be used to keep metadata about stored volumes, such
as container runtime configuration (in /var/run/uvol/.meta/uxc) or
the database of installed container packages.

 * configurable LVM volume group
Allow setting volume group to be used by uvol using UCI.
This is useful on devices which do not boot off the device which
should be used for uvol and hence cannot make use of autopart and
physical volume detection based on kernel cmdline.
Use option vg_name in uvol section of fstab UCI config package.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-12-20 01:42:58 +00:00
Daniel Golle e20228f16f
uvol: update to version 0.5
Adds '-j' option for 'list' command to generate JSON output.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-09-15 22:33:03 +01:00
Daniel Golle 6276e8b2ae
uvol: update to version 0.4
Create UCI fstab mount sections for existing volumes on firstboot.
Introduce special handling for volumes with non-[:alnum:] prefix:
 - do not create UCI sections for these 'hidden' volumes
 - create UCI section for '.uxc' special volume with target
   /var/state/uxc to be used for uxc config.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-15 15:48:17 +01:00
Daniel Golle f4afa4189e
uvol: update to version 0.3
* genrate UCI fstab configs for each volume before first 'up'
 * remove UCI section on volume remove
 * use autofs automounter for read-only volumes
 * try umount on 'down'
 * emulate hotplug events for UBI volume up/down
 * more robust error paths

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-25 00:40:41 +01:00
Daniel Golle fc01307d7a
uvol: emmit ubus events and bring up volumes on boot
Emmit ubus events when volumes come up/down.
Make sure volume state is always well defined by introducing
additional state 'write-prepare' (wp) during mkfs.
Add init scripts to bring up volumes at boot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-18 00:41:35 +01:00
Daniel Golle 312594f869
uvol: add new package
uvol is a wrapper-script which allows automated handling of storage
volumes. uvol currently comes with backend support for LVM2 and UBI,
covering practically all options for storage large enough to be
managed (NAND, SPI-NAND, eMMC, SATA, NVME, virtio-blk, ...).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-10 12:02:23 +01:00