[PATCH anaconda/master] Add support to determine the ARM processor variety and select the correct kernel to install.

David Cantrell dcantrell at redhat.com
Fri Jul 20 18:25:40 UTC 2012


Comments below.

On Fri, Jul 13, 2012 at 12:46:40PM -0500, d.marlin wrote:
> From: "d.marlin" <dmarlin at redhat.com>
> 
> Signed-off-by: David A. Marlin <dmarlin at redhat.com>
> -----
> diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py
> index 8fe818d..1c88d30 100644
> --- a/pyanaconda/iutil.py
> +++ b/pyanaconda/iutil.py
> @@ -621,6 +621,20 @@ def getPPCMacBook():
>          return 1
>      return 0
>  
> +## Get the ARM processor variety.
> +# @return The ARM processor variety type, or 0 if not ARM.
> +def getARMMachine():
> +    if not isARM():
> +        return 0
> +
> +    armMachine = os.uname()[2].rpartition('.' )[2]

So the kernel release contains the machine name information?  Just trying to
understand.  I think this is what I'm seeing kernel.spec, but I just want to
make sure.

> +
> +    if armMachine.startswith('arm'):
> +        return None
> +    else:
> +        return armMachine
> +
> +
>  cell = None
>  ## Determine if the hardware is the Cell platform.
>  # @return True if so, False otherwise.
> diff --git a/pyanaconda/platform.py b/pyanaconda/platform.py
> index 8870374..1611797 100644
> --- a/pyanaconda/platform.py
> +++ b/pyanaconda/platform.py
> @@ -335,6 +335,7 @@ class Sparc(Platform):
>          return start+1
>  
>  class ARM(Platform):
> +    _armMachine = iutil.getARMMachine()
>      _bootloaderClass = bootloader.GRUB2
>      _boot_stage1_device_types = ["disk"]
>      _boot_mbr_description = N_("Master Boot Record")
> @@ -343,6 +344,10 @@ class ARM(Platform):
>  
>      _disklabel_types = ["msdos"]
>  
> +    @property
> +    def armMachine(self):
> +        return self._armMachine
> +
>  def getPlatform(anaconda):
>      """Check the architecture of the system and return an instance of a
>         Platform subclass to match.  If the architecture could not be determined,
> diff --git a/pyanaconda/yuminstall.py b/pyanaconda/yuminstall.py
> index 0ca534b..63d077d 100644
> --- a/pyanaconda/yuminstall.py
> +++ b/pyanaconda/yuminstall.py
> @@ -1465,6 +1465,11 @@ reposdir=/etc/anaconda.repos.d,/tmp/updates/anaconda.repos.d,/tmp/product/anacon
>              if selectKernel("kernel-PAE"):
>                  foundkernel = True
>  
> +        if not foundkernel and iutil.isARM():
> +            if anaconda.platform.armMachine is not None:
> +                selectKernel("kernel-" + anaconda.platform.armMachine)
> +                foundkernel = True
> +
>          if not foundkernel:
>              selectKernel("kernel")

Otherwise this looks good.

-- 
David Cantrell <dcantrell at redhat.com>
Supervisor, Installer Engineering Team
Red Hat, Inc. | Westford, MA | EST5EDT


More information about the anaconda-patches mailing list