Actually I have another comment about this patch ..
On Tue, Sep 27, 2016 at 05:58:11PM +0200, Pino Toscano wrote:
diff --git a/v2v/linux_kernels.ml b/v2v/linux_kernels.ml
index b292921..c197f78 100644
--- a/v2v/linux_kernels.ml
+++ b/v2v/linux_kernels.ml
@@ -53,6 +53,21 @@ let detect_kernels (g : G.guestfs) inspect family bootloader =
(* What kernel/kernel-like packages are installed on the current guest? *)
let installed_kernels : kernel_info list =
let rex_ko = Str.regexp ".*\\.k?o\\(\\.xz\\)?$" in
+ let check_config version feature =
+ let prefix = "^CONFIG_" ^ String.uppercase_ascii feature ^ "="
in
+ let lines = g#grep ~extended:true prefix ("/boot/config-" ^ version) in
This could fail if the config file doesn't exist or has an
unexpected name.
I don't think we should fail in that case.
I think what we should do is put the config file name in the
Linux_kernels.kernel_info struct, eg:
ki_config_file : string option;
where None would be "not found".
The check_config function can then short-circuit when ki_config_file == None.
Rich.
+ let lines = Array.to_list lines in
+ match lines with
+ | [] -> false
+ | line :: _ ->
+ let kind = snd (String.split "=" line) in
+ (match kind with
+ | "m" (* Theoretically this should not be needed, since the module
+ * would be found. *)
+ | "y" -> true
+ | _ -> false
+ )
+ in
let rex_ko_extract = Str.regexp ".*/\\([^/]+\\)\\.k?o\\(\\.xz\\)?$" in
let rex_initrd =
if family = `Debian_family then
@@ -156,7 +171,10 @@ let detect_kernels (g : G.guestfs) inspect family bootloader =
) modules in
assert (List.length modules > 0);
- let supports_virtio = List.mem "virtio_net" modules in
+ let kernel_supports what kconf =
+ List.mem what modules || check_config version kconf in
+
+ let supports_virtio = kernel_supports "virtio_net"
"VIRTIO_NET" in
let is_xen_kernel = List.mem "xennet" modules in
(* If the package name is like "kernel-debug", then it's
--
2.7.4
_______________________________________________
Libguestfs mailing list
Libguestfs(a)redhat.com
https://www.redhat.com/mailman/listinfo/libguestfs
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/