Open main menu

CDOT Wiki β

Changes

SBR600 Potential Projects

7,239 bytes added, 22:42, 30 January 2012
no edit summary
= Raspberry Pi Fedora Remix Projects =
 
= Raspberry Pi Fedora Remix Projects =
 
== Package the Raspberry Pi firmware ==
 
The Raspberry Pi ships with some proprietary firmware used by the graphics processing unit (GPU). This firmware should be packaged within Fedora.
 
Expected outcome: a Fedora package containing the Raspberry Pi firmware.
 
Skills required: packaging
 
Maximum number of participants: 1
 
== Generate an RPM-based Raspberry Pi kernel ==
 
The Fedora project has a standard RPM kernel package. The Fedora ARM project has extended this package to build separate kernels for various ARM system-on-a-chip (SOC) platforms, generating binary RPM packages for kernel-omap, kernel-tegra, kernel-kirkwood, and so forth. This package should be extended to generate a kernel package for the Broadcom SOC used in the Raspberry Pi (either kernel-raspi or kernel-bcm).
 
In order to create a standard RPM package file, Dracut (initramfs) will need to be properly supported.
 
Expected outcome: the Fedora kernel package generates a Raspberry Pi kernel binary RPM.
 
Skills required: packaging, kernel building
 
Maximum number of participants: 2 (kernel package, initramfs/dracut setup)
 
== Package the Raspberry Pi libraries ==
 
The Raspberry Pi includes a number of proprietary libraries. These libraries are expected to be re-licensed under an open source license in the coming months. These libraries should be packaged ready for inclusion in Fedora; until they are licensed under an open-source license, only the SRPMs should be released.
 
Note that the libray headers (-devel package) should be released in source form.
 
Expected outcome: a raspberrypi-firmware (or bcm2835-firmware) package containing the GPU firmware.
 
Skills required: packaging
 
Maximum number of participants: 1
 
== Package the Raspberry Pi kernel utility ==
 
The Raspi bootloader requires a special header at the start of the kernel file in order to correctly load it into memory. The tool which creates this header needs to be packaged in Fedora.
 
Expected outcome: a Fedora package for the Raspberry Pi kernel utility.
 
Skills required: packaging
 
Maximum number of participants: 1
 
== Modify Grubby to work with the Raspberry Pi kernel ==
 
On ARM systems, kernels are shipped as vmlinuz images (as on other platforms). The ''grubby'' utility is a tool which is used to configure the bootloader when a new kernel is installed, by adjusting the appropriate boot configuration (such as grub/grub2/lilo/elilo/...). On ARM systems, grubby generally calls mkimage to generate a uImage file from the vmlinuz file. On the Raspi, it will need to additionally call the Raspberry Pi kernel utility (described above) to convert the uImage into the kernel.img file.
 
Expected outcome: patches for grubby submitted upstream; the ARM grubby package will correctly install the Raspi kernel.
 
Skills required: packaging, scripting (bash and/or python)
 
Maximum number of participants: 1
 
== Systemd ==
 
In Fedora 15 and later, the ''upstart'' startup system is replaced by ''systemd''. Systemd needs to be tested on the Raspi, and as much as possible, tuned to use as little memory as possible.
 
Expected outcome: systemd is tested and ready for use on the Raspi in F17.
 
Skills required: debugging, sysadmin problem solving, testing/QA
 
Maximum number of participants: 1
 
== Firstboot ==
 
The ''firstboot'' package asks the user specific questions when the system starts for the first time. Since Raspberry Pi systems are installed by copying the SD card, additional questions should be asked during the first boot -- for example, the root password and timezone should be set. This project involves writing and packaging additional modules for firstboot for use with the Raspi (and potentially other ARM systems).
 
Expected outcome: changes for firstboot committed upstream, or a package that extends firstboot packaged in Fedora.
 
Skills required: scripting (python), packaging
 
Maximum number of participants: 1
 
== Package Scratch ==
 
''Scratch'' is an educational programming environment from MIT. It's not licensed under an OSI-approved license, but the upstream project has indicated a willingness to relicense it. An OSI-approved license should be negotiated, and the software packaged for Fedora.
 
Expected outcome: a Fedora package of Scratch.
 
Skills required: packaging
 
Maximum number of participants: 1
 
== Package KidsRuby ==
 
''KidsRuby'' is an educational programming editor/IDE for Ruby, which should be packaged for Fedora.
 
Expected outcome: a Fedora package of KidsRuby.
 
Skills required: packaging
 
Maximum number of participants: 1
 
== Create a SD Card Installation Tool ==
 
The Fedora LiveUSB-Creator tool can run on a Fedora or on a Windows system and can be used to download and install a Fedora live disc image on a USB flash drive. This tool should be adapted so that it can also create an SD card for the Raspberry Pi (and hopefully other devices) -- so that a user can install the Raspberry Pi remix without using commands such as fdisk, dd, and resize2fs.
 
Note: the liveusb-creator tool goes through a number of setup steps that are not required for an SD card. On the other hand, creating an SD card involves a few steps that are not necessary for a live USB. Therefore it might be appropriate to create a separate tool rather than modifying the liveusb-creator tool. Also, there are other efforts taking place within the Raspberry Pi community which might do the same thing; if one of those efforts reaches a stable release, it might be possible to package that for Fedora.
 
Expected outcome: a Fedora package of a tool to install the Raspi distribution image on an SD card. Ideally, a Windows version as well.
 
Skills required: scripting (python), system administration, testing/QA
 
Maximum number of people: 3 (scripting, Fedora packaging and testing, Windows packaging and testing)
 
== Create the F17 Raspberry Pi image ==
 
Based on feedback on the F14 Raspberry Pi image, create an F17 alpha/beta image for the Raspberry Pi.
 
This will involve modifying (or creating) a script to produce the Raspi rootfs, putting the rootfs and image into the final format for distribution.
 
Note: the final version of F17 won't be ready until just after this course ends. The image will need to be based on the F17 alpha/beta package set.
 
Expected outcome: a F17 image creation script.
 
Skills required: system administration, scripting, testing/QA
 
Maximum number of people: 2 (scripting, testing)
 
== Create the Raspi Repositories ==
 
Set up the repositories to distribute the F17 Raspberry Pi remix files, including:
* Setting up the signing keys
* Creating a standard signing procedure (SOP) for signing
* Creating a 'release' package containing the public keys and repo files
 
Expected outcome: repos, release package, SOP
 
Maximum number of participants: 1
= Fedora-ARM Projects =
 
== Set up a Koji Test Hub ==
 
We have a Koji Hub to run the Fedora ARM build farm. However, we should have a separate hub for testing configurations before deploying them to the production server. This project involves setting up a test hub so that koji hub/builder configurations can be tested independently from the production server.
 
Expected outcome: a koji test server set up on England
 
Maximum number of participants: 1