treewide: replace /sys/devices/virtual/ubi by /sys/class/ubi
Starting from Linux Kernel version 6.3 UBI devices will no longer be considered virtual, but rather have an MTD device parent. Hence they will no longer be listed under /sys/devices/virtual/ubi which is used in multiple places in OpenWrt. Prepare for future kernels by using /sys/class/ubi instead of /sys/devuces/virtual/ubi. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
		| @@ -28,7 +28,7 @@ ubi_mknod() { | ||||
|  | ||||
| nand_find_volume() { | ||||
| 	local ubidevdir ubivoldir | ||||
| 	ubidevdir="/sys/devices/virtual/ubi/$1" | ||||
| 	ubidevdir="/sys/class/ubi/" | ||||
| 	[ ! -d "$ubidevdir" ] && return 1 | ||||
| 	for ubivoldir in $ubidevdir/${1}_*; do | ||||
| 		[ ! -d "$ubivoldir" ] && continue | ||||
| @@ -41,13 +41,12 @@ nand_find_volume() { | ||||
| } | ||||
|  | ||||
| nand_find_ubi() { | ||||
| 	local ubidevdir ubidev mtdnum | ||||
| 	local ubidevdir ubidev mtdnum cmtdnum | ||||
| 	mtdnum="$( find_mtd_index $1 )" | ||||
| 	[ ! "$mtdnum" ] && return 1 | ||||
| 	for ubidevdir in /sys/devices/virtual/ubi/ubi*; do | ||||
| 		[ ! -d "$ubidevdir" ] && continue | ||||
| 	for ubidevdir in /sys/class/ubi/ubi*; do | ||||
| 		[ ! -e "$ubidevdir/mtd_num" ] && continue | ||||
| 		cmtdnum="$( cat $ubidevdir/mtd_num )" | ||||
| 		[ ! "$mtdnum" ] && continue | ||||
| 		if [ "$mtdnum" = "$cmtdnum" ]; then | ||||
| 			ubidev=$( basename $ubidevdir ) | ||||
| 			ubi_mknod "$ubidevdir" | ||||
|   | ||||
| @@ -23,7 +23,7 @@ rootfs_prepare() { | ||||
| 	ubinfo /dev/ubi0 -N metadata1 > /dev/null 2>&1 || return | ||||
|  | ||||
| 	# Find UBI volume device (e.g. ubi0_123) | ||||
| 	local ubivol="$(grep rootfs_data /sys/devices/virtual/ubi/ubi*/ubi*/name | sed -n 's/.*\(ubi\d*_\d*\).*/\1/p')" | ||||
| 	local ubivol="$(grep rootfs_data /sys/class/ubi/ubi*/name | sed -n 's/.*\(ubi\d*_\d*\).*/\1/p')" | ||||
| 	if [ -n "$ubivol" ]; then | ||||
| 		bcm4908_verify_rootfs_data $ubivol | ||||
| 	else | ||||
|   | ||||
| @@ -3,7 +3,7 @@ linksys_get_target_firmware() { | ||||
|  | ||||
| 	cur_boot_part="$(/usr/sbin/fw_printenv -n boot_part)" | ||||
| 	if [ -z "${cur_boot_part}" ]; then | ||||
| 		mtd_ubi0=$(cat /sys/devices/virtual/ubi/ubi0/mtd_num) | ||||
| 		mtd_ubi0=$(cat /sys/class/ubi/ubi0/mtd_num) | ||||
| 		case "$(grep -E "^mtd${mtd_ubi0}:" /proc/mtd | cut -d '"' -f 2)" in | ||||
| 		kernel|rootfs) | ||||
| 			cur_boot_part=1 | ||||
|   | ||||
| @@ -8,7 +8,7 @@ linksys_get_target_firmware() { | ||||
|  | ||||
| 	cur_boot_part=$(/usr/sbin/fw_printenv -n boot_part) | ||||
| 	if [ -z "${cur_boot_part}" ] ; then | ||||
| 		mtd_ubi0=$(cat /sys/devices/virtual/ubi/ubi0/mtd_num) | ||||
| 		mtd_ubi0=$(cat /sys/class/ubi/ubi0/mtd_num) | ||||
| 		case $(grep -E ^mtd${mtd_ubi0}: /proc/mtd | cut -d '"' -f 2) in | ||||
| 		kernel1|rootfs1) | ||||
| 			cur_boot_part=1 | ||||
|   | ||||
| @@ -8,7 +8,7 @@ linksys_get_target_firmware() { | ||||
|  | ||||
| 	cur_boot_part=$(/usr/sbin/fw_printenv -n boot_part) | ||||
| 	if [ -z "${cur_boot_part}" ] ; then | ||||
| 		mtd_ubi0=$(cat /sys/devices/virtual/ubi/ubi0/mtd_num) | ||||
| 		mtd_ubi0=$(cat /sys/class/ubi/ubi0/mtd_num) | ||||
| 		case $(grep -E ^mtd${mtd_ubi0}: /proc/mtd | cut -d '"' -f 2) in | ||||
| 		kernel|rootfs) | ||||
| 			cur_boot_part=1 | ||||
|   | ||||
| @@ -8,7 +8,7 @@ linksys_get_target_firmware() { | ||||
|  | ||||
| 	cur_boot_part=$(/usr/sbin/fw_printenv -n boot_part) | ||||
| 	if [ -z "${cur_boot_part}" ] ; then | ||||
| 		mtd_ubi0=$(cat /sys/devices/virtual/ubi/ubi0/mtd_num) | ||||
| 		mtd_ubi0=$(cat /sys/class/ubi/ubi0/mtd_num) | ||||
| 		case $(grep -E ^mtd${mtd_ubi0}: /proc/mtd | cut -d '"' -f 2) in | ||||
| 		kernel1|rootfs1) | ||||
| 			cur_boot_part=1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Golle
					Daniel Golle