I've been doing some work on Fedora-ARM, and have been looking into adding ARM support to Anaconda. My first step was just to get Anaconda to be aware of the ARM architecture. I have now been able to create a disk-image for an ARM system (Trim Slice) using livemedia-creator and a kickstart file. This involved some changes to both Anaconda and Lorax.
Attached is a patch against anaconda-17.21 from F17. Please let me know if the changes I am making are acceptable, and if so, what I need to do to push these upstream.
I plan to continue working on this to make the correct kernel selection and add support for the U-Boot bootloader (used by many ARM systems). I am currently handling the bootloader setup in the %post section of the kickstart config file, which works for now to create a bootable image.
Please CC me on any replies, as I am not currently on this list. Thank you, d.marlin
--- ./pyanaconda/iutil.py.orig 2012-04-02 13:14:44.000000000 -0400 +++ ./pyanaconda/iutil.py 2012-04-02 16:56:14.174192002 -0400 @@ -763,6 +763,9 @@ def isSparc(): return os.uname()[4].startswith('sparc') +def isARM(): + return os.uname()[4].startswith('arm') + def getArch(): if isX86(bits=32): return 'i386' @@ -776,6 +779,8 @@ return 'alpha' elif isSparc(): return 'sparc' + elif isARM(): + return 'arm' else: return os.uname()[4] --- ./pyanaconda/platform.py.orig 2012-04-02 13:14:44.000000000 -0400 +++ ./pyanaconda/platform.py 2012-04-02 18:28:45.294192000 -0400 @@ -332,6 +332,15 @@ start /= long(1024 / disk.device.sectorSize) return start+1 +class ARM(Platform): + _bootloaderClass = bootloader.GRUB2 + _boot_stage1_device_types = ["disk"] + _boot_mbr_description = N_("Master Boot Record") + _boot_descriptions = {"disk": _boot_mbr_description, + "partition": Platform._boot_partition_description} + + _disklabel_types = ["msdos"] + 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, @@ -358,5 +367,7 @@ return EFI(anaconda) elif iutil.isX86(): return X86(anaconda) + elif iutil.isARM(): + return ARM(anaconda) else: raise SystemError, "Could not determine system architecture."
_______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list