From e8625c89efbbbe12a5934c10fc3478fd2f70fb21 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Wed, 15 Feb 2023 03:06:05 +0000 Subject: [PATCH] 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 --- package/base-files/files/lib/upgrade/nand.sh | 9 ++++----- .../bcm4908/base-files/lib/preinit/75_rootfs_prepare | 2 +- target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh | 2 +- target/linux/ipq806x/base-files/lib/upgrade/linksys.sh | 2 +- target/linux/kirkwood/base-files/lib/upgrade/linksys.sh | 2 +- .../mvebu/cortexa9/base-files/lib/upgrade/linksys.sh | 2 +- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/package/base-files/files/lib/upgrade/nand.sh b/package/base-files/files/lib/upgrade/nand.sh index e7ac34f5d0..907945b349 100644 --- a/package/base-files/files/lib/upgrade/nand.sh +++ b/package/base-files/files/lib/upgrade/nand.sh @@ -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" diff --git a/target/linux/bcm4908/base-files/lib/preinit/75_rootfs_prepare b/target/linux/bcm4908/base-files/lib/preinit/75_rootfs_prepare index 09c12cd31d..829dd6adf1 100644 --- a/target/linux/bcm4908/base-files/lib/preinit/75_rootfs_prepare +++ b/target/linux/bcm4908/base-files/lib/preinit/75_rootfs_prepare @@ -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 diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh b/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh index 5d25c20ad7..c0d45d640d 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh @@ -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 diff --git a/target/linux/ipq806x/base-files/lib/upgrade/linksys.sh b/target/linux/ipq806x/base-files/lib/upgrade/linksys.sh index 1feffc7aa2..5f883637da 100644 --- a/target/linux/ipq806x/base-files/lib/upgrade/linksys.sh +++ b/target/linux/ipq806x/base-files/lib/upgrade/linksys.sh @@ -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 diff --git a/target/linux/kirkwood/base-files/lib/upgrade/linksys.sh b/target/linux/kirkwood/base-files/lib/upgrade/linksys.sh index 7e20276fe5..9067f00e1a 100644 --- a/target/linux/kirkwood/base-files/lib/upgrade/linksys.sh +++ b/target/linux/kirkwood/base-files/lib/upgrade/linksys.sh @@ -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 diff --git a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/linksys.sh b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/linksys.sh index 826bf8c9b5..1a23a9bbc2 100644 --- a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/linksys.sh +++ b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/linksys.sh @@ -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 -- 2.30.2