Add a simple detection for the config file of each kernel, so that can
be used later to get more information on what a kernel provides.
---
v2v/linux_kernels.ml | 10 +++++++++-
v2v/linux_kernels.mli | 1 +
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/v2v/linux_kernels.ml b/v2v/linux_kernels.ml
index b292921..df093d0 100644
--- a/v2v/linux_kernels.ml
+++ b/v2v/linux_kernels.ml
@@ -41,12 +41,14 @@ type kernel_info = {
ki_supports_virtio : bool;
ki_is_xen_kernel : bool;
ki_is_debug : bool;
+ ki_config_file : string option;
}
let string_of_kernel_info ki =
- sprintf "(%s, %s, %s, %s, %s, virtio=%b, xen=%b, debug=%b)"
+ sprintf "(%s, %s, %s, %s, %s, %s, virtio=%b, xen=%b, debug=%b)"
ki.ki_name ki.ki_version ki.ki_arch ki.ki_vmlinuz
(match ki.ki_initrd with None -> "None" | Some f -> f)
+ (match ki.ki_config_file with None -> "None" | Some f -> f)
ki.ki_supports_virtio ki.ki_is_xen_kernel ki.ki_is_debug
let detect_kernels (g : G.guestfs) inspect family bootloader =
@@ -156,6 +158,11 @@ let detect_kernels (g : G.guestfs) inspect family bootloader =
) modules in
assert (List.length modules > 0);
+ let config_file =
+ let cfg = "/boot/config-" ^ version in
+ if List.mem cfg files then Some cfg
+ else None in
+
let supports_virtio = List.mem "virtio_net" modules in
let is_xen_kernel = List.mem "xennet" modules in
@@ -179,6 +186,7 @@ let detect_kernels (g : G.guestfs) inspect family bootloader =
ki_supports_virtio = supports_virtio;
ki_is_xen_kernel = is_xen_kernel;
ki_is_debug = is_debug;
+ ki_config_file = config_file;
}
)
diff --git a/v2v/linux_kernels.mli b/v2v/linux_kernels.mli
index 453ce67..c01adeb 100644
--- a/v2v/linux_kernels.mli
+++ b/v2v/linux_kernels.mli
@@ -31,6 +31,7 @@ type kernel_info = {
ki_supports_virtio : bool; (** Kernel has virtio drivers? *)
ki_is_xen_kernel : bool; (** Is a Xen paravirt kernel? *)
ki_is_debug : bool; (** Is debug kernel? *)
+ ki_config_file : string option; (** Path of config file, if found. *)
}
(** Kernel information. *)
--
2.7.4