Change --initrd from optimize to recreate.

master
Mike Hiretsky 13 years ago
parent 20299952c4
commit 79c63c0cfe

Binary file not shown.

@ -75,7 +75,7 @@ class cl_kernel(color_print):
def makeKernel(self,quiet=True,showMenuConfig=False,noClean=False,
lvmOpt=False,dmraidOpt=False,mdadmOpt=False,
mrproper=False):
mrproper=False,target="all"):
"""Run kernel compilation"""
clVars = self.clVars
standardParams = ["--splash=tty1", "--unionfs",
@ -122,7 +122,7 @@ class cl_kernel(color_print):
params = ["genkernel"]+cachedir+tempdir+\
standardParams+kernelDir+modulePrefix+\
logLevel+makeOpts+menuConfig+noClean+kernelConfig+\
bootDir+lvmOpt+dmraidOpt+mdadmOpt+mrproperOpt+["all"]
bootDir+lvmOpt+dmraidOpt+mdadmOpt+mrproperOpt+[target]
try:
genkernelProcess = process(*params,stdout=None,stderr=STDOUT,
@ -418,6 +418,37 @@ class cl_kernel(color_print):
curConfig[x[0]]=="Y",
newConfig)
def createInitrd(self,lvmOpt=False, dmraidOpt=False, mdadmOpt=False):
"""Recreate initrd"""
if self.makeKernel(quiet=True,
showMenuConfig=False,noClean=False,
lvmOpt=lvmOpt,dmraidOpt=dmraidOpt,mdadmOpt=mdadmOpt,
mrproper=False,target="ramdisk"):
clVars = self.clVars
bootDir = clVars.Get('cl_kernel_boot_path')
if not os.access(bootDir,os.W_OK):
self.printERROR(_("No permissions to write to '%s'")% bootDir)
return False
march = clVars.Get('os_arch_machine')
if re.match("^i.86$",march):
march = "x86"
kernelFullVer = clVars.Get('cl_kernel_full_ver')
suffixName = "genkernel-%(march)s-%(fullver)s"%\
{"march":march,
"fullver":kernelFullVer}
baseInitrdName = path.join(bootDir,"initramfs-%s"%suffixName)
newInitrdName = self._getNewName("initramfs")
try:
os.rename(baseInitrdName,newInitrdName)
except OSError,e:
self.printERROR(_("Can not rename initramfs files: %s")
%e.strerror)
return False
return True
return False
def cleanInitrd(self):
"""Discard from initrd non-critical modules"""
clVars = self.clVars

@ -94,8 +94,8 @@ class kernel_cmd(share_cmd):
opt.color_control,
check_values=self.checkOpts)
self.logicObj = cl_kernel()
self.optionsInitrdIncompatible = ["o","no_clean","m","mdadm","lvm",
"k", "e","dmraid","c","ebuild",
self.optionsInitrdIncompatible = ["o","no_clean","m",
"k", "e","c","ebuild",
"symlink"]
self.optionsSymlinkIncompatible = ["o","no_clean","m","mdadm","lvm",
"e","dmraid","c","ebuild","initrd" ]
@ -147,11 +147,13 @@ class kernel_cmd(share_cmd):
return (values, args)
def cleanInitrd(self,options):
if not self.logicObj.cleanInitrd():
self.printERROR(_("Failed to optimize initramfs"))
if not self.logicObj.createInitrd(lvmOpt=options.lvm,
dmraidOpt=options.dmraid,
mdadmOpt=options.mdadm):
self.printERROR(_("Failed to create initramfs"))
return False
else:
self.printSUCCESS(_("Initramfs successfully optimized"))
self.printSUCCESS(_("Initramfs successfully created"))
return True
def checkEbuildParam(self,options,phase):

Loading…
Cancel
Save