forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mtd-utils: add ubihealthd to nand-utils
Add ubihealthd to the nand-utils package, auto-create UCI config for each UBI device and launch the daemon on boot. The default time interval between scrubbing a random PED is 120 seconds which means that a fully used 128 MiB flash chip gets scrubbed in about a day and a half. The interval can be adjusted in UCI using the 'interval' option. Suggested-by: Rodrigo Balerdi <lanchon@gmail.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org> Link: openwrt#16973 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
- Loading branch information
Showing
3 changed files
with
55 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/sh | ||
|
||
[ -e "/etc/config/ubihealthd" ] && exit 0 | ||
[ ! -e "/sys/class/ubi" ] && exit 0 | ||
|
||
touch "/etc/config/ubihealthd" | ||
|
||
for ubidev in /sys/class/ubi/*/total_eraseblocks; do | ||
ubidev="${ubidev%/*}" | ||
ubidev="${ubidev##*/}" | ||
uci batch <<EOF | ||
set ubihealthd.$ubidev=ubi-device | ||
set ubihealthd.$ubidev.device="/dev/$ubidev" | ||
set ubihealthd.$ubidev.enable=1 | ||
EOF | ||
done | ||
|
||
uci commit ubihealthd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#!/bin/sh /etc/rc.common | ||
|
||
START=99 | ||
|
||
USE_PROCD=1 | ||
PROG=/usr/sbin/ubihealthd | ||
|
||
ubihealthd_instance() { | ||
local cfg="$1" | ||
local device interval enable | ||
|
||
config_get_bool enable "$cfg" "enable" 1 | ||
[ "$enable" = "1" ] || return 0 | ||
|
||
config_get device "$cfg" "device" | ||
config_get interval "$cfg" "interval" | ||
|
||
procd_open_instance | ||
procd_set_param command "$PROG" -f -d "$device" | ||
[ -n "$interval" ] && procd_append_param command -i "$interval" | ||
procd_close_instance | ||
} | ||
|
||
start_service() { | ||
config_load ubihealthd | ||
config_foreach ubihealthd_instance ubi-device | ||
} |