base-files: introduce a function to get kernel version number
authorShiji Yang <yangshiji66@outlook.com>
Tue, 11 Nov 2025 21:02:22 +0000 (23:02 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Tue, 11 Nov 2025 23:08:14 +0000 (00:08 +0100)
A new function "get_linux_version()" to normalize and print the
kernel version as an integer. In some migration scripts, it is
useful for checking the Linux kernel version.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19172
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit a0fe3cfb62fbf0b5f599c90e488727f493223429)
Link: https://github.com/openwrt/openwrt/pull/20739
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
package/base-files/files/lib/functions/system.sh

index f43281b5dceb071b8e586b8d1931a2836162378a..eaed0fba110448ded33a98606942d66d79075158 100644 (file)
@@ -315,3 +315,10 @@ macaddr_canonicalize() {
 dt_is_enabled() {
        grep -q okay "/proc/device-tree/$1/status"
 }
+
+get_linux_version() {
+       local ver=$(uname -r)
+       local minor=${ver%\.*}
+
+       printf "%d%02d%03d" ${ver%%\.*} ${minor#*\.} ${ver##*\.} 2>/dev/null
+}