Hi there,
I've offered to help with the OLPC ARM port for OLPC 1.75. Obviously this hardware doesn't exist yet, so I have a few questions.
I've just installed x64 F13 and got a Fedora account.
1. How is the best way to get started? 2. Should I get a cross-compiler going, and pick a package to port? Obviously, I'd prefer to work on the packages that OLPC 1.75 will need, but am happy to work on anything you need. 3. How can I test the resulting RPM? 4. I'm going to be in the US next week for OSCON. I will try to pick up a Beagle Board or GuruPlug, but it seems like supply is severely constrained for any / all of the suitable ARM boards. As the OLPC 1.75 and XO-3 will use Marvell parts, will ARM-A8 boards be a suitable target, or should I go with a Marvell based device?
I have long lost experience with kernel programming (porting Reiserfs and other ports to Alpha back in 2000 or so, when LP big endian 64 bit was very rare), X11 drivers (Matrox cards) for XFree86 back in the 1990's and pnm2ppa - a printer driver for HP's worst ever printers.
thanks, Andrew
p.s. I have three XO-1's, but obviously these are not that useful for this effort unless parity is achieved for the OS with the 1.75.
On Tue, 2010-07-13 at 16:49 +1000, Andrew van der Stock wrote:
Hi there,
I've offered to help with the OLPC ARM port for OLPC 1.75. Obviously this hardware doesn't exist yet, so I have a few questions.
I've just installed x64 F13 and got a Fedora account.
- How is the best way to get started?
- Should I get a cross-compiler going, and pick a package to port?
Obviously, I'd prefer to work on the packages that OLPC 1.75 will need, but am happy to work on anything you need. 3. How can I test the resulting RPM? 4. I'm going to be in the US next week for OSCON. I will try to pick up a Beagle Board or GuruPlug, but it seems like supply is severely constrained for any / all of the suitable ARM boards. As the OLPC 1.75 and XO-3 will use Marvell parts, will ARM-A8 boards be a suitable target, or should I go with a Marvell based device?
I have long lost experience with kernel programming (porting Reiserfs and other ports to Alpha back in 2000 or so, when LP big endian 64 bit was very rare), X11 drivers (Matrox cards) for XFree86 back in the 1990's and pnm2ppa - a printer driver for HP's worst ever printers.
thanks, Andrew
p.s. I have three XO-1's, but obviously these are not that useful for this effort unless parity is achieved for the OS with the 1.75.
Hi Andrew,
Welcome to the arm list :-)
Here's the current status:
- There is an F12 arm port available (http://fedoraproject.org/wiki/Architectures/ARM) from a previous initiative on hardware run by Lennert in NL. F12-arm runs well on a wide range of hardware, including BeagleBoards, SheevaPlugs, GuruPlugs, and so forth. However, this port includes a subset of packages and no updates.
- We're now working on an F13+ port via the koji instance at http://arm.koji.fedoraproject.org. You can access this system using the same credentials as you would use to access the primary-arch koji systems. It includes 12 builders on a good day - 7 here at Seneca in Toronto and 5 at OLPC in Boston (I say "on a good day" because we're having troubles with a few of them yet), with a target of 20+ builders when hardware is available.
- The intention is to have the arm koji instance shadow the primary archs, so that as packages are built for the primary archs they're also built for arm, using Dennis Gilmore's koji-shadow script.
A few of the quickest ways to get involved:
- Start fixing up packages that don't build successfully for arm. http://fedoraproject.org/wiki/Architectures/ARM/Packages_needing_patching contains a list of 44 packages that we know were patched for the F12 initiative and the patches were not upstreamed -- so the F13 and rawhide packages need to be re-patched and the patches need to be checked in to the Fedora CVS (or the upstream projects). Fortunately, we have the diffs from the previous work. Other packages will be added to this list as we encounter build failures with F13.
- Help build a collection of nicely-featured kernels for various devices.
If you're buying hardware, a Cortex A8 or A9 device such as a BeagleBoard is fine, but as you note the Marvell parts may give a better indication of issues we may find on the XOs (e.g., alignment traps, math performance). The current arch target is armv5te.
-- Chris
On 13/07/2010, at 11:06 PM, Chris Tyler wrote:
Hi Andrew,
Welcome to the arm list :-)
Thanks :)
Here's the current status: [snip] A few of the quickest ways to get involved:
- Start fixing up packages that don't build successfully for arm.
http://fedoraproject.org/wiki/Architectures/ARM/Packages_needing_patching contains a list of 44 packages that we know were patched for the F12 initiative and the patches were not upstreamed -- so the F13 and rawhide packages need to be re-patched and the patches need to be checked in to the Fedora CVS (or the upstream projects). Fortunately, we have the diffs from the previous work. Other packages will be added to this list as we encounter build failures with F13.
Okay. Can you allocate PHP to me and I'll have a shot at patching that to build on F13 using the cross-compilation tool chain. Once I've done that, is there a procedure to give you a diff or a SRPM, or ...? Are the diffs for F12 available publicly?
- Help build a collection of nicely-featured kernels for various
devices.
I think I had better learn how to walk first :)
If you're buying hardware, a Cortex A8 or A9 device such as a BeagleBoard is fine, but as you note the Marvell parts may give a better indication of issues we may find on the XOs (e.g., alignment traps, math performance). The current arch target is armv5te.
As both all of the aforementioned devices are back ordered up the wazoo, I'll just place an order for a GuruPlug Plus today and wait for one to come in rather than try to acquire one in the US.
thanks, Andrew
On Wed, 2010-07-14 at 14:58 +1000, Andrew van der Stock wrote:
On 13/07/2010, at 11:06 PM, Chris Tyler wrote:
- Start fixing up packages that don't build successfully for arm.
http://fedoraproject.org/wiki/Architectures/ARM/Packages_needing_patching contains a list of 44 packages that we know were patched for the F12 initiative and the patches were not upstreamed -- so the F13 and rawhide packages need to be re-patched and the patches need to be checked in to the Fedora CVS (or the upstream projects). Fortunately, we have the diffs from the previous work. Other packages will be added to this list as we encounter build failures with F13.
Okay. Can you allocate PHP to me and I'll have a shot at patching that to build on F13 using the cross-compilation tool chain. Once I've done that, is there a procedure to give you a diff or a SRPM, or ...? Are the diffs for F12 available publicly?
Andrew,
A few things:
- It's a wiki - you can assign a package to yourself and record your progress. The first column is linked to the F-12 diffsl the proposed procedure is there too.
- You'll want to come up to speed on the Fedora packaging process (see the Fedora wiki starting at https://fedoraproject.org/wiki/PackageMaintainers). Basically, a spec file + sources fed into rpmbuild yields source and binary RPMS; rpmlint can be used to check spec file quality; mock performs builds in a striped-down chroot to verify that build dependencies are accurately recorded; and koji provides client-server access to a build farm.
- Rather than cross-compile, it's probably easier to use the ARM emulator (qemu-system-arm) and run rpmbuild and/or mock in there. Alternately, you can submit scratch builds to the ARM koji system and it will build the package for you on real hardware.
- We hang out on IRC in #fedora-arm on irc.freenode.net, you're welcome to join us there.
-- Chris