mediatek: filogic: wax220: support factory image
[openwrt/staging/neocturne.git] / target / linux / mediatek / filogic / base-files / lib / preinit / 75_rootfs_prepare
1 # SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause
2
3 rootfs_create() {
4 local blocks
5
6 blocks=$(cat /sys/class/ubi/ubi0/avail_eraseblocks)
7 [ -z "$blocks" ] && {
8 echo "Failed to read amount of available erase blocks" >&2
9 return
10 }
11
12 # Delete after getting available blocks: Make sure enough space is
13 # left to recreate these volumes.
14 ubirmvol /dev/ubi0 -N kernel_backup
15 ubirmvol /dev/ubi0 -N rootfs_backup
16
17 # Use 90% of remaining flash size for "rootfs_data"
18 ubimkvol /dev/ubi0 -n 20 -N rootfs_data --lebs $((blocks / 100 * 90))
19 mknod -m 0600 /dev/ubi0_20 c 250 21
20 }
21
22 rootfs_prepare() {
23 case $(board_name) in
24 netgear,wax220)
25 if ! ubinfo /dev/ubi0 -N rootfs_data &>/dev/null; then
26 echo "Creating \"rootfs_data\" UBI volume"
27 rootfs_create
28 fi
29 ;;
30 *)
31 ;;
32 esac
33 }
34
35 boot_hook_add preinit_main rootfs_prepare