mvebu: add support for the Linksys WRT3200ACM (Rango)
[librecmc/librecmc.git] / target / linux / mvebu / base-files / lib / preinit / 81_linksys_syscfg
1 #
2 # Copyright (C) 2014-2016 OpenWrt.org
3 # Copyright (C) 2016 LEDE-Project.org
4 #
5
6 preinit_mount_syscfg() {
7
8         . /lib/functions.sh
9         . /lib/mvebu.sh
10
11         case $(mvebu_board_name) in
12         armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-xp-linksys-mamba)
13                 needs_recovery=0
14                 syscfg_part=$(grep syscfg /proc/mtd |cut -c4)
15                 ubiattach -m $syscfg_part || needs_recovery=1
16                 if [ $needs_recovery -eq 1 ]
17                 then
18                         echo "ubifs syscfg partition is damaged, reformatting"
19                         ubidetach -m $syscfg_part
20                         ubiformat -y -O 2048 -q /dev/mtd$syscfg_part
21                         ubiattach -m $syscfg_part
22                         ubimkvol /dev/ubi1 -n 0 -N syscfg -t dynamic --maxavsize
23                 fi
24                 mkdir /tmp/syscfg
25                 mount -t ubifs ubi1:syscfg /tmp/syscfg
26                 [ -f /tmp/syscfg/sysupgrade.tgz ] && {
27                 echo "- config restore -"
28                 cd /
29                 mv /tmp/syscfg/sysupgrade.tgz /tmp
30                 tar xzf /tmp/sysupgrade.tgz
31                 rm -f /tmp/sysupgrade.tgz
32                 sync
33                 }
34                 ;;
35         esac
36 }
37
38 boot_hook_add preinit_main preinit_mount_syscfg