def build(self, make_opts = '', logfile = '', extraversion='autotest'): """build the kernel make_opts additional options to make, if any """ os_dep.commands('gcc', 'make') if logfile == '': logfile = os.path.join(self.log_dir, 'kernel_build') os.chdir(self.build_dir) if extraversion: self.extraversion(extraversion) self.set_cross_cc() # setup_config_file(config_file, config_overrides) # Not needed on 2.6, but hard to tell -- handle failure utils.system('make dep', ignore_status=True) threads = 2 * utils.count_cpus() build_string = 'make -j %d %s %s' % (threads, make_opts, self.build_target) # eg make bzImage, or make zImage print build_string utils.system(build_string) if kernel_config.modules_needed('.config'): utils.system('make -j %d modules' % (threads)) kernel_version = self.get_kernel_build_ver() kernel_version = re.sub('-autotest', '', kernel_version) self.logfile.write('BUILD VERSION: %s\n' % kernel_version) utils.force_copy(self.build_dir+'/System.map', self.results_dir)
def install(self, tag='autotest', prefix = '/'): """make install in the kernel tree""" # Record that we have installed the kernel, and # the tag under which we installed it. self.installed_as = tag os.chdir(self.build_dir) if not os.path.isdir(prefix): os.mkdir(prefix) self.boot_dir = os.path.join(prefix, 'boot') if not os.path.isdir(self.boot_dir): os.mkdir(self.boot_dir) if not self.build_image: images = glob.glob('arch/*/boot/' + self.build_target) if len(images): self.build_image = images[0] else: self.build_image = self.build_target # remember installed files self.vmlinux = self.boot_dir + '/vmlinux-' + tag if (self.build_image != 'vmlinux'): self.image = self.boot_dir + '/vmlinuz-' + tag else: self.image = self.vmlinux self.system_map = self.boot_dir + '/System.map-' + tag self.config_file = self.boot_dir + '/config-' + tag self.initrd = '' # copy to boot dir utils.force_copy('vmlinux', self.vmlinux) if (self.build_image != 'vmlinux'): utils.force_copy(self.build_image, self.image) utils.force_copy('System.map', self.system_map) utils.force_copy('.config', self.config_file) if not kernel_config.modules_needed('.config'): return utils.system('make modules_install INSTALL_MOD_PATH=%s' % prefix) if prefix == '/': self.initrd = self.boot_dir + '/initrd-' + tag self.mkinitrd(self.get_kernel_build_ver(), self.image, self.system_map, self.initrd)