[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [PATCH anaconda/master] Add support to determine the ARM processor variety and select the correct kernel to install.
- From: Martin Gracik <mgracik redhat com>
- To: Discussion of Development and Customization of the Red Hat Linux Installer <anaconda-devel-list redhat com>
- Cc: Brendan Conoboy <blc redhat com>
- Subject: Re: [PATCH anaconda/master] Add support to determine the ARM processor variety and select the correct kernel to install.
- Date: Thu, 12 Jul 2012 02:25:00 -0400 (EDT)
Signed-off-by: David A. Marlin <dmarlin redhat com>
---
diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py
index 8fe818d..b0d9adc 100644
--- a/pyanaconda/iutil.py
+++ b/pyanaconda/iutil.py
@@ -621,6 +621,42 @@ 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 = None
+ machine = None
+
+ # ARM machine hash
+ armType = {
+ 'OMAP' : 'omap',
+ 'trimslice' : 'tegra',
+ 'Marvell Armada XP' : 'mvebu',
+ 'Marvell GuruPlug' : 'kirkwood',
+ 'Efika MX' : 'imx',
+ 'Highbank' : 'highbank',
+ }
+
+ f = open('/proc/cpuinfo', 'r')
+ lines = f.readlines()
+ f.close()
+ for line in lines:
+ if line.find('Hardware') != -1:
+ machine = line.split(':')[1]
+ break
+
+ if machine is not None:
+ for type in armType.items():
+ if machine.find(type[0]) != -1:
+ armMachine = type[1]
+ break
+
+ 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")
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]