[pve-devel] [PATCH stable-7 manager] pve7to8: Add check for dkms modules

Christian Ebner c.ebner at proxmox.com
Fri Jun 23 15:28:01 CEST 2023


... and warn if at least one is present.

Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
 PVE/CLI/pve7to8.pm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/PVE/CLI/pve7to8.pm b/PVE/CLI/pve7to8.pm
index da1e15bc..ecfb4011 100644
--- a/PVE/CLI/pve7to8.pm
+++ b/PVE/CLI/pve7to8.pm
@@ -1287,6 +1287,40 @@ sub check_bootloader {
     }
 }
 
+sub check_dkms_modules {
+    log_info("Check if dkms is installed...");
+
+    my $path;
+    my $filter_path = sub {
+	$path = shift;
+	chomp $path;
+    };
+
+    run_command(['which', 'dkms'], outfunc => $filter_path, noerr => 1);
+
+    if (!$path) {
+	log_skip("dkms not installed, no need to check for installed modules");
+	return;
+    }
+
+    log_info("Check for installed dkms modules...");
+
+    my $count;
+    my $set_count = sub {
+	$count = scalar @_;
+    };
+
+    eval {
+	run_command(['dkms', 'status', '-k', '`uname -r`'], outfunc => $set_count, noerr => 1);
+    };
+
+    if (!$count) {
+	log_pass("no dkms modules found");
+    } else {
+	log_warn("dkms modules found, this might cause issues during upgrade.");
+    }
+}
+
 sub check_misc {
     print_header("MISCELLANEOUS CHECKS");
     my $ssh_config = eval { PVE::Tools::file_get_contents('/root/.ssh/config') };
@@ -1388,6 +1422,7 @@ sub check_misc {
     check_apt_repos();
     check_nvidia_vgpu_service();
     check_bootloader();
+    check_dkms_modules();
 }
 
 my sub colored_if {
-- 
2.39.2






More information about the pve-devel mailing list