Fedora ARM Secondary Architecture/Research Plan/Summer 2010
From CDOT Wiki
Goals
In collaboration with the Fedora project and other open source projects:
- To build the Fedora Linux distribution for computers based on the ARM processor.
- To keep current with the software builds taking place on the Fedora primary architectures.
- To provide input into the Fedora packaging process and to the design of specific packages with respect to building on ARM.
- To develop tools for using Fedora on ARM devices (e.g., compose and loading tools).
- To advance the state of the art of software on low-power devices.
- To support new ARM devices well, with specific emphasis on the upcoming OLPC XO 1.75.
Specific Objectives
This list includes objectives that will be completed this summer, and objectives that will be started this summer and continue.
Fedora ARM Koji Farm
- Evaluate and select hardware options for a Koji farm for the Fedora ARM Secondary Architecture, building on the work done by SBR600 in Winter 2010
- Set up the Koji build farm in collaboration with the Fedora ARM community
- Switch to Fedora certificates
Factors to Consider
- Network layout
- Koji-Hub, Koji-Server, and resulting software repository must be accessible both inside and outside Seneca
- ARM builders must be able to communicate with the Koji-Hub
- ARM builders must be able to communicate with shared file storage
- ARM builders must have local storage or a SAN (e.g., iSCSI) or shared, high-performance file storage
Current Candidate Configuration
- 15-25 GuruPlug Servers
- iSCSI SAN for storage
- Quad-core PC to run Koji-Hub, Koji-Web, and master repository
- May eventually need second machine with different connectivity for Koji Hub/Koji Web
Koji-Shadow
- Configure Koji-Shadow so that packages built for the Fedora primary architectures are also built for Fedora ARM
- Sync up with F13 and Rawhide builds
Package Set Maintenance
- Become a Fedora packager
- Become a member of the Fedora-ARM FAS2 group (for CVS access to packages for arch purposes)
- Update packages as necessary with ExcludeArch tags where those packages are not suitable or cannot be built on ARM architecture
Bugzilla
- Get the bugzilla admins to rationalize the ARM processor options in the platform list (right now there are a number of ARM options, none of which accurately reflect the ARM build: arm7, arm9, xscale, strongarm).
- Actively monitor bugzilla for platform-related problems
Testing
- Acquire a number of ARM hardware devices and test the ARM build on those devices:
- SheevaPlug
- OpenRD-Client
- GuruPlug
- Beagleboard
- Hawkboard
- TouchBook
- OLPC XO 1.75
Optimization
- Optimize the Fedora ARM Build
- Identify optimization opportunities
- Create and test optimized builds
- Make decisions on which optimizations should be default
- Create additional subarchs are appropriate (e.g., armv5, armv7 or with/without FPU)
Compose
- Create root filesystems
- Write tools to load popular products (e.g., tool that would be run on a PC to connect to a SheevaPlug and load NAND)
- Write a tool to compose a custom root filesystem formatted for a specific device (e.g., SD card image, tftp file set)
Kernel
- Investigate creating a single kernel or a small set of kernels that would work on a variety of devices, rather than a custom kernel-per-device
- Use initrd (dracut) and modules to handle the differences between devices
Summer 2010 Timeline
This timeline sets out 2-week goals for the first half of the summer work period.
May 14
- Demos ready for OCE Discovery
- Koji Farm
- Final farm configuration researched and selected
- Note: Hardware will have been ordered and will start arriving
- Become a Fedora packager (minimum: start process)
May 28
- Become a Fedora packager, get Fedora ARM status in FAS2
- Koji Shadow
- Installed and running
- Bugzilla
- Request changes in platform tags for ARM
- Start tracking platform-specific bugs
June 11
- Koji Farm
- Hardware installed and running
- Compose
- Initial rootfs compose
June 25
- Package Set Maintenance
- Start submitting bugs against packages that won't build on ARM (ongoing) and/or use Secondary Arch procedures to directly commit spec changes
- Testing
- Initial testing reports on one ARM platform (e.g. GuruPlug) using new rootfs
July 9
- Package Set Maintenance (ongoing)
- Testing
- Initial testing reports on two additional ARM platforms (e.g., Hawkboard, Beagleboard)