adding ARM support to Anaconda

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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

[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux