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

d.marlin dmarlin at redhat.com
Fri Jul 13 17:46:40 UTC 2012


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]
+
+    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")
 


More information about the anaconda-patches mailing list