6 if [ "$cmd" = "name" ]; then
11 test -e /sys
/class
/ubi
/version ||
return 0
12 read -r ubiver
< /sys
/class
/ubi
/version
13 [ "$ubiver" = "1" ] ||
return 1
14 test -e /sys
/devices
/virtual
/ubi ||
return 0
16 ubidev
=$
(ls -1 /sys
/devices
/virtual
/ubi |
head -n 1)
18 read -r ebsize
< "/sys/devices/virtual/ubi/${ubidev}/eraseblock_size"
20 .
/lib
/functions
/uvol.sh
23 read -r availeb
< "/sys/devices/virtual/ubi/${ubidev}/avail_eraseblocks"
24 echo $
((availeb
* ebsize
))
28 read -r totaleb
< "/sys/devices/virtual/ubi/${ubidev}/total_eraseblocks"
29 echo $
((totaleb
* ebsize
))
34 for voldir
in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
35 read -r volname
< "${voldir}/name"
51 read -r volname
< "/sys/devices/virtual/ubi/${ubidev}/${voldev}/name"
62 voldev
="$(getdev "$@
")"
63 [ "$voldev" ] ||
return 2
64 vol_is_mode
"$voldev" wo
&& return 22
65 vol_is_mode
"$voldev" wp
&& return 16
66 vol_is_mode
"$voldev" wd
&& return 1
67 vol_is_mode
"$voldev" ro
&& [ ! -e "/dev/ubiblock${voldev:3}" ] && return 1
73 voldev
="$(getdev "$@
")"
74 [ "$voldev" ] ||
return 2
75 cat "/sys/devices/virtual/ubi/${ubidev}/${voldev}/data_bytes"
80 voldev
="$(getdev "$@
")"
81 [ "$voldev" ] ||
return 2
82 if vol_is_mode
"$voldev" ro
; then
83 echo "/dev/ubiblock${voldev:3}"
84 elif vol_is_mode
"$voldev" rw
; then
92 mount
-t ubifs
"$1" "$tmp_mp" ||
return $?
93 umount
"$tmp_mp" ||
return $?
94 rmdir "$tmp_mp" ||
return $?
100 voldev
=$
(getdev
"$@")
101 [ "$voldev" ] && return 17
113 ubimkvol
"/dev/$ubidev" -N "uvol-$mode-$1" -s "$2" ||
return $?
115 [ $ret -eq 0 ] ||
return $ret
116 voldev
="$(getdev "$@
")"
117 ubiupdatevol
-t "/dev/$voldev" ||
return $?
118 [ "$mode" = "wp" ] ||
return 0
119 mkubifs
"/dev/$voldev" ||
return $?
120 uvol_uci_add
"$1" "/dev/$voldev" "rw"
121 ubirename
"/dev/$ubidev" "uvol-wp-$1" "uvol-wd-$1" ||
return $?
126 voldev
=$
(getdev
"$@")
127 [ "$voldev" ] ||
return 2
128 vol_is_mode
"$voldev" rw
&& return 16
129 vol_is_mode
"$voldev" ro
&& return 16
130 volnum
="${voldev#${ubidev}_}"
131 ubirmvol
"/dev/$ubidev" -n "$volnum" ||
return $?
144 voldev
="$(getdev "$@
")"
145 [ "$voldev" ] ||
return 2
146 vol_is_mode
"$voldev" rw
&& return 0
147 vol_is_mode
"$voldev" ro
&& return 0
148 vol_is_mode
"$voldev" wo
&& return 22
149 vol_is_mode
"$voldev" wp
&& return 16
151 if vol_is_mode
"$voldev" rd
; then
152 ubirename
"/dev/$ubidev" "uvol-rd-$1" "uvol-ro-$1" ||
return $?
153 ubiblock
--create "/dev/$voldev" ||
return $?
155 elif vol_is_mode
"$voldev" wd
; then
156 ubirename
"/dev/$ubidev" "uvol-wd-$1" "uvol-rw-$1" ||
return $?
157 block_hotplug add
"$voldev"
164 voldev
="$(getdev "$@
")"
165 [ "$voldev" ] ||
return 2
166 vol_is_mode
"$voldev" rd
&& return 0
167 vol_is_mode
"$voldev" wd
&& return 0
168 vol_is_mode
"$voldev" wo
&& return 22
169 vol_is_mode
"$voldev" wp
&& return 16
170 if vol_is_mode
"$voldev" ro
; then
171 /sbin
/block umount
"ubiblock${voldev:3}"
172 ubiblock
--remove "/dev/$voldev"
173 ubirename
"/dev/$ubidev" "uvol-ro-$1" "uvol-rd-$1" ||
return $?
175 elif vol_is_mode
"$voldev" rw
; then
176 /sbin
/block umount
"$voldev"
177 ubirename
"/dev/$ubidev" "uvol-rw-$1" "uvol-wd-$1" ||
return $?
178 block_hotplug remove
"$voldev"
185 voldev
="$(getdev "$@
")"
186 [ "$voldev" ] ||
return 2
187 [ "$2" ] ||
return 22
188 vol_is_mode
"$voldev" wo ||
return 22
189 ubiupdatevol
-s "$2" "/dev/$voldev" -
190 ubiblock
--create "/dev/$voldev"
191 uvol_uci_add
"$1" "/dev/ubiblock${voldev:3}" "ro"
192 ubiblock
--remove "/dev/$voldev"
193 ubirename
"/dev/$ubidev" "uvol-wo-$1" "uvol-rd-$1"
197 local volname volmode volsize json_output json_notfirst
198 if [ "$1" = "-j" ]; then
203 for voldir
in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
204 read -r volname
< "$voldir/name"
207 read -r volsize
< "$voldir/data_bytes"
213 volmode
="${volname:5:2}"
214 volname
="${volname:8}"
215 if [ "$json_output" = "1" ]; then
216 [ "$json_notfirst" = "1" ] && echo ","
218 echo -e "\t\t\"name\": \"$volname\","
219 echo -e "\t\t\"mode\": \"$volmode\","
220 echo -e "\t\t\"size\": $volsize"
224 echo "$volname $volmode $volsize"
228 if [ "$json_output" = "1" ]; then
229 [ "$json_notfirst" = "1" ] && echo
235 local volname volmode volsize voldev fstype
236 for voldir
in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
237 read -r volname
< "$voldir/name"
238 voldev
="$(basename "$voldir")"
242 ubiblock
--create "/dev/$voldev" ||
return $?
248 volmode
="${volname:5:2}"
249 volname
="${volname:8}"
254 local volname voldev volmode voldev fstype tmpdev
=""
255 for voldir
in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
256 read -r volname
< "$voldir/name"
257 voldev
="$(basename "$voldir")"
261 if ! [ -e "/dev/ubiblock${voldev:3}" ]; then
262 ubiblock
--create "/dev/$voldev" ||
return $?
266 tmpdev
="$tmpdev $voldev"
274 volmode
="${volname:5:2}"
275 volname
="${volname:8}"
280 for voldir
in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
281 read -r volname
< "$voldir/name"
282 voldev
="$(basename "$voldir")"
291 volmode
="${volname:5:2}"
292 volname
="${volname:8}"
295 uvol_uci_add
"$volname" "/dev/ubiblock${voldev:3}" "ro"
298 uvol_uci_add
"$volname" "/dev/${voldev}" "rw"
305 for voldev
in $tmpdev ; do
306 ubiblock
--remove "/dev/$voldev" ||
return $?
354 echo "unknown command"