X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=package%2Fsystem%2Fprocd%2Ffiles%2Fnand.sh;h=fd2f943ba39d6168baca40fdb523904ad869e0c7;hb=249857af0ee8071b29bd811963151b9b10b2401b;hp=4aa56e37ae5fd7979d8ed3d1d38e6b97a6a852e8;hpb=e345c9a2776ec9591febe232a4f1b7d77ad67b57;p=openwrt-14.07%2F.git diff --git a/package/system/procd/files/nand.sh b/package/system/procd/files/nand.sh index 4aa56e3..fd2f943 100644 --- a/package/system/procd/files/nand.sh +++ b/package/system/procd/files/nand.sh @@ -10,6 +10,18 @@ CI_KERNPART="kernel" # 'ubi' partition on NAND contains UBI CI_UBIPART="ubi" +ubi_mknod() { + local dir="$1" + local dev="/dev/$(basename $dir)" + + [ -e "$dev" ] && return 0 + + local devid="$(cat $dir/dev)" + local major="${devid%%:*}" + local minor="${devid##*:}" + mknod "$dev" c $major $minor +} + nand_find_volume() { local ubidevdir ubivoldir ubidevdir="/sys/devices/virtual/ubi/$1" @@ -18,6 +30,7 @@ nand_find_volume() { [ ! -d "$ubivoldir" ] && continue if [ "$( cat $ubivoldir/name )" = "$2" ]; then basename $ubivoldir + ubi_mknod "$ubivoldir" return 0 fi done @@ -33,6 +46,7 @@ nand_find_ubi() { [ ! "$mtdnum" ] && continue if [ "$mtdnum" = "$cmtdnum" ]; then ubidev=$( basename $ubidevdir ) + ubi_mknod "$ubidevdir" echo $ubidev return 0 fi @@ -122,7 +136,7 @@ nand_upgrade_prepare_ubi() { ubiattach -m "$mtdnum" sync ubidev="$( nand_find_ubi "$CI_UBIPART" )" - [ -z "$has_env" ] || { + [ "$has_env" -gt 0 ] && { ubimkvol /dev/$ubidev -n 0 -N ubootenv -s 1MiB ubimkvol /dev/$ubidev -n 1 -N ubootenv2 -s 1MiB }