]> rtime.felk.cvut.cz Git - linux-conf-perf.git/blob - scripts/kernel.py
33fcb794c7288b0d5a302ad06cd7a5da3fe18ad6
[linux-conf-perf.git] / scripts / kernel.py
1 import os
2 import sys
3 import subprocess
4 import shutil
5 import tempfile
6
7 from conf import conf
8 from conf import sf
9 import exceptions
10 import utils
11
12 def config(txtconfig):
13         "Apply text configuration to kernel folder"
14         infile = tempfile.NamedTemporaryFile()
15         for ln in txtconfig:
16                 infile.write(bytes(ln + '\n', sys.getdefaultencoding()))
17         wd = os.getcwd()
18         os.chdir(sf(conf.linux_sources))
19         try:
20                 utils.callsubprocess('write_config', [sf(conf.write_config), infile.name],
21                         conf.kernel_config_output, env=utils.get_kernel_env())
22                 os.rename(sf(conf.linux_sources) + '/.config',
23                                 sf(conf.linux_build_folder) + '/.config')
24         except exceptions.ProcessFailed:
25                 raise exceptions.ConfigurationError("some configs mismatch")
26         infile.close()
27         os.chdir(wd)
28
29 #def config_noprogram():
30 #       # Executing old linux config
31 #       env = dict(os.environ)
32 #       wd = os.getcwd()
33 #       os.chdir(sf(conf.linux_sources))
34 #       if conf.kernel_config_output:
35 #               sprc = subprocess.call('yes "" | make oldconfig', shell=True,
36 #                       env=utils.get_kernel_env())
37 #       else:
38 #               sprc = subprocess.call('yes "" | make oldconfig', shell=True,
39 #                       stdout=subprocess.DEVNULL, env=utils.get_kernel_env())
40 #       os.chdir(wd)
41
42 def make(confhash):
43         wd = os.getcwd()
44         os.chdir(sf(conf.linux_build_folder))
45         if conf.kernel_make_output:
46                 subprocess.call(conf.build_command, env=utils.get_kernel_env())
47         else:
48                 subprocess.call(conf.build_command, stdout=subprocess.DEVNULL,
49                                 env=utils.get_kernel_env())
50         jobimage = os.path.join(sf(conf.build_folder), confhash + '_linux.img')
51         shutil.move(sf(conf.linux_image), jobimage)
52         os.chdir(wd)
53         return confhash + '_linux.img'