Integrate building from git repo into kvm class
Add support for the kvm class to be built from the kvm git repo. After pulling
down the latest kvm and kvm-userspace git repositories, use kvm-userspace's make
sync method for pulling in the latest kvm kernel bits.
Add a dict to track full path to modules for running with modinfo to extract kvm
version for scripts.
Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@1033 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/server/kvm.py b/server/kvm.py
index f997d16..cecf6f3 100644
--- a/server/kvm.py
+++ b/server/kvm.py
@@ -86,6 +86,7 @@
support_dir= None
addresses= []
insert_modules= True
+ modules= {}
def __del__(self):
@@ -147,7 +148,7 @@
self.host.run(_remove_modules_script)
- def install(self, addresses, build=True, insert_modules=True):
+ def install(self, addresses, build=True, insert_modules=True, syncdir=None):
"""
Compile the kvm software on the host that the object was
initialized with.
@@ -231,9 +232,25 @@
self.host.run('cd "%s" && ./configure %s' % (
utils.sh_escape(self.build_dir),
configure_modules,))
+ if syncdir:
+ cmd = 'cd "%s/kernel" && make sync LINUX=%s' % (
+ utils.sh_escape(self.build_dir),
+ utils.sh_escape(syncdir))
+ self.host.run(cmd)
self.host.run('make -j%d -C "%s"' % (
self.host.get_num_cpu() * 2,
utils.sh_escape(self.build_dir),))
+ # remember path to modules
+ self.modules['kvm'] = "%s" %(
+ utils.sh_escape(os.path.join(self.build_dir,
+ "kernel/kvm.ko")))
+ self.modules['kvm-intel'] = "%s" %(
+ utils.sh_escape(os.path.join(self.build_dir,
+ "kernel/kvm-intel.ko")))
+ self.modules['kvm-amd'] = "%s" %(
+ utils.sh_escape(os.path.join(self.build_dir,
+ "kernel/kvm-amd.ko")))
+ print self.modules
self.initialize()