X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=inspector%2Fvirt-inspector.pl;h=4ee0e08a29d0d911abec84096f34b26c32ce078d;hb=3e408f493496597dc026d20778837f421f05a9dd;hp=c5c3813571ca4941b6fb0275e232d1e96c9ba88c;hpb=2fa68269fa63c5aab2015e3ee6ee1d33185e6e0a;p=libguestfs.git diff --git a/inspector/virt-inspector.pl b/inspector/virt-inspector.pl index c5c3813..4ee0e08 100755 --- a/inspector/virt-inspector.pl +++ b/inspector/virt-inspector.pl @@ -434,8 +434,7 @@ sub check_windows_root local $_; my $r = shift; - # XXX Windows version. - # List of applications. + # Windows version? } sub check_grub @@ -443,7 +442,7 @@ sub check_grub local $_; my $r = shift; - # XXX Kernel versions, grub version. + # Grub version, if we care. } #print Dumper (\%fses); @@ -616,7 +615,37 @@ sub check_for_kernels local $_; my $root_dev = shift; - # XXX + my @kernels; + + my $os = $oses{$root_dev}->{os}; + if ($os eq "linux") { + # Installed kernels will have a corresponding /lib/modules/ + # directory, which is the easiest way to find out what kernels + # are installed, and what modules are available. + foreach ($g->ls ("/lib/modules")) { + if ($g->is_dir ("/lib/modules/$_")) { + my %kernel; + $kernel{version} = $_; + + # List modules. + my @modules; + foreach ($g->find ("/lib/modules/$_")) { + if (m,/([^/]+)\.ko,) { + push @modules, $1; + } + } + + $kernel{modules} = \@modules; + + push @kernels, \%kernel; + } + } + + } elsif ($os eq "windows") { + # XXX + } + + $oses{$root_dev}->{kernels} = \@kernels; } #---------------------------------------------------------------------- @@ -700,7 +729,15 @@ sub output_text_os print " $_->{name} $_->{version}\n" } - # XXX Kernel. + print " Kernels:\n"; + my @kernels = @{$os->{kernels}}; + foreach (@kernels) { + print " $_->{version}\n"; + my @modules = @{$_->{modules}}; + foreach (@modules) { + print " $_\n"; + } + } } sub output_xml @@ -754,7 +791,20 @@ sub output_xml_os } print "\n"; - # XXX Kernel. + print "\n"; + my @kernels = @{$os->{kernels}}; + foreach (@kernels) { + print "\n"; + print "$_->{version}\n"; + print "\n"; + my @modules = @{$_->{modules}}; + foreach (@modules) { + print "$_\n"; + } + print "\n"; + print "\n"; + } + print "\n"; print "\n"; }