Changes

Jump to: navigation, search

SBR600 Potential Projects

1,522 bytes removed, 06:47, 24 September 2013
no edit summary
[[Category:SBR600]][[Category:Winter 2012 SBR600]]
{{Admon/caution|Obsolete! - Winter 2012|Please note that this page contains obsolete content and is being updated for Fall 2013.}}
{{Chris Tyler Draft}}
= Introduction =
= Raspberry Pi Fedora Remix Projects =
== Package Update the Raspberry Pi firmware raspberrypi-config package ==
The raspberrypi-config package contains the default configuration files for Pidora. These files need to be updated to reflect new options available in the Raspberry Pi ships with some proprietary firmware , as well as options that are not commonly used by and may conflict with common use-cases - for example, the current configuration files cause kernel start-up messages to be reported on the graphics processing unit serial port. This is rarely used, any may cause conflicts with other devices connected to that port (GPU)e. This firmware should be packaged within FedoragExpected outcome: a Fedora package containing the Raspberry Pi firmware, LCD displays).
Skills required: packaging
Maximum number of participants: 1
== Generate an RPM-based Raspberry Pi kernel Kernel Configuration Files ==
The Fedora project has a standard RPM kernel package. The Fedora ARM project has extended this package to build separate kernels process for various ARM system-on-the kernel uses a-chip (SOC) platforms, generating binary RPM packages for configuration file to control which kernel capabilities are built into the kernel-omapitself, kernel-tegrawhich are built as loadable modules, and which are not built. The Pidora kernel-kirkwood, configuration file is a combination of the RaspberryPi default configuration file and so forththe Fedora configuration file. This package should be extended project involves reviewing the Pidora kernel configuration to generate a kernel package optimize it for the Broadcom SOC used in the Raspberry Pi (either kernelwidest possible range of use-raspi or cases while ensuring a fairly small kernel-bcm)image size.
In order to create a standard RPM package fileSkills required: kernel configuration/building, Dracut (initramfs) will need to be properly supported.packaging
Expected outcomeMaximum number of participants: the Fedora kernel package generates a Raspberry Pi kernel binary RPM.1
Skills required: packaging, kernel building== Profile and Improve RPM and YUM performance on the Pi ==
Maximum number RPM/YUM appear to perform slowly on the Pi -- which is appropriate, since the Pi has a slower processor and storage system than most modern PCs -- but the performance can probably be improved. This project involves profileing the RPM/YUM operations to determine which parts of participants: 2 (kernel packagethe processing are slowest, initramfs/dracut setup)and then examining how those parts work to see if any improvements in speed are possible.
== Package the Raspberry Pi libraries ==Skills required: profiling, programming, packaging
The Raspberry Pi includes a Maximum 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.participants: 1
Note that the libray headers (-devel package) should be released == Internationalization Support in source form.Firstboot for Pidora 19 ==
Expected outcome: This project involves taking the Pidora 19 Firstboot package and internationalizing it (making it possible to use multiple language files with Firstboot). Note that Pidora 19 is expected to use a raspberrypiFedora 18-firmware style Firstboot system (or bcm2835-firmwareas was used in Pidora 18) package containing rather than the GPU firmwarefirstboot system used in Fedora 19 and higher.
Skills required: python, i11n using gettext, packaging
Maximum number of participants: 1
== Package the Raspberry Pi kernel utility New Firstboot for Pidora 20 == 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: Firstboot on the Pi varies a bit from firstboot on PCs, because the software isn't installed onto storage in the same way as PCs. This project involves updating the Fedora 20 firstboot package for the Raspberry Pi kernel utilityto work with Pidora 20.
Skills required: python programming, packaging, testing
Maximum number of participants: 1
== Modify Grubby to work with the Raspberry Pi kernel Compiler Flags on Pidora == 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 We're not sure if the compiler flags being used for grubby submitted upstream; Pidora are optimal. This project involves building a number of packages with different combinations of compiler flags, observing the ARM grubby package will correctly install results (in terms of binary size and performance) and recommending the Raspi kerneloptimal set of flags.
Skills required: packagingbuilding, scripting (bash and/or python), testing/QAbenchmarking
Maximum number of participants: 1
== Create the raspi-logos and raspi-fedora-remix-release-notes packages Avahi Configuration for Pidora ==
Fedora usually contains three packages Avahi (zeroconf) enables discovery of computers without DNS or IP numbers. This project involves configuring Avahi for use on the Pi, so that other computers can connect to it by name without DNS support. This configuration must then be packaged in such a way that cannot it can be redistributed with derived (remixed) versions:* fedora-logos* fedora-release* fedora-release-notesincluded in the Pidora composes without causing conflicts.
Dummy versions of these packages are availableSkills required: testing, substituting generic- for fedora- (i.e., generic-logos, generic-release, and generic-release-notes).packaging
The fedora-release package has been replaced by the raspberrypi-fedora-remix-release package.Maximum number of participants: 1
This project involves creating == Create a replacement for the other two packages:* raspberrypi-logos -Fedpkg- This package will contain replacements compatible Package Repository for the Fedora logos, including the Raspberry Pi logo (and possibly the Fedora secondary mark) where appropriate. It would probably also be a good idea to produce a raspberrypi-backgrounds package with Raspberry Pi-branded wallpaper.* raspberrypi-fedora-remix-release-notes -- This package will contain documentation on the Remix, including notes on how to install it on an SD card, trademarks, use of the GPIO controls, etc.Pidora ==
Expected outcome: two Fedpkg is a tool used to manage Fedora packages using GIT (and http). We'd like to be able to use it for Pidora-specific (non-Fedora) packages as well. To set up Fedpkg, a package database (pkgdb), GIT repository, http repository, and Fedpg configuration will be required. Completion of the various components of this project should result in a usable, RPM-installable Fedpkg configuration for Pidora packages.
Skills required: documentation writingsystem administration, graphicstesting, packaging
Maximum number of peopleparticipants: 2 (logos, release notes)3
== Systemd Upstream the Pidora RPM Changes ==
In Fedora 15 and later, There are some small changes to the ''upstart'' startup RPM system is replaced by ''systemd''that have been done for Pidora. Systemd needs These changes need to be tested on included in the upstream version of RPM. This project involves working with upstream to ensure that these changes are in the Raspi, correct format and as much as possible, tuned to use as little memory as possibleincluded in subsequent releases of RPM.
Expected outcome: systemd is tested and ready for use on the Raspi in F17. Skills required: debugginginterpersonal skills - negotiation, sysadmin problem solvingpatch creation, testing/QApackaging
Maximum number of participants: 1
== Firstboot Wayland ==
The ''firstboot'' package asks the user specific questions when Fedora 20 includes support for the Wayland display system starts . The RaspberryPi foundation has been working on a Wayland implementation 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 getting the Raspi (and potentially other ARM systems)two to work well together.
Expected outcomeSkills required: changes for firstboot committed upstreamsystem administration, or a package that extends firstboot packaged in Fedora.debugging, possibly some programming, packaging
Skills required: scripting (python), packaging Maximum number of participants: 12
== Package Scratch Automate Pidora Kernel and Firmware Building ==
[http://scratch.mit.edu/ Scratch] The Raspberry Pi Foundation maintains a kernel fork that is an educational programming environment from MITupdated frequently. It's not licensed under an OSI-approved licenseWe would like to package kernel and firmware changes on a daily basis, but the upstream project has indicated and have these available in a willingness to relicense ittesting repository so that anyone can use them. An OSIPeriodically, we will select a kernel-approved license should be negotiated, firmware combination from this testing repository and make it available as the software packaged for Fedoramain Pidora kernel.
Expected outcome: a Fedora package of Scratch. Skills required: scripting (python and/or bash), packaging
Maximum number of participants: 1
== Change raspberrypi-vc Package KidsRuby to Build from Source ==
[http://kidsrubyOriginally, the VideoCore IV GPU on the Pi was used with proprietary libraries which were only available in compiled form, so the raspberrypi-vc package was originally set up to package prebuilt binaries and not build from source.com/download KidsRuby] The source code for these libraries is an educational programming editor/IDE for Rubynow available, which and the raspberrypi-vc package should be packaged for Fedora. Expected outcome: a Fedora package of KidsRubychanged to build from source (this will help with SELinux compatibility).
Skills required: packaging
Maximum number of participants: 1
== Create a SD Card Installation Tool Write an Updated Boot Screen ==
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 Pidora includes an SD card for the Raspberry Pi (and hopefully other devices) OpenGL-- so that a user can install powered boot screen, which uses the Raspberry Pi remix without using commands such as fdisk, dd, and resize2fsFedora Remix logo. The current code does not use OpenGL very effectively.
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 This package should be appropriate updated to create a separate tool rather than modifying use OpenGL better and to use 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 FedoraPidora logo.
'''NoteSkills required:''' Jon Chiappetta has started work on a similar tool -- participants in this project should co-ordinate/work with Jon on this tool (fossjon in #seneca).C programming, OpenGL programming, packaging
Expected outcomeMaximum number of participants: a Fedora package of a tool to install the Raspi distribution image on an SD card. Ideally, a Windows version as well.1
Skills required: scripting (python), system administration, testing/QA== Update rootfs-resize ==
Maximum number The rootfs-resize package resizes the Pidora rootfs after installation. It works with primary partitions, and it works with the NOOBS system, but it doesn't work with a NOOBS-style layout outside of participants: 3 NOOBS (scriptingi.e., Fedora packaging where the rootfs is placed in an extended partition). This project involves extending rootfs-resize so that it can resize extended and testing, Windows packaging and testing)logical partitions as well as primary partitions.
== Create the F17 Raspberry Pi image ==Skills required: Python scripting/programming, system administration, packaging
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 participants: 2 (scripting, testing)1
== Create the Raspi Repositories Bug Tracker for Pidora ==
Set up the repositories to distribute the F17 Raspberry Pi remix files, including:* Setting up the signing keys* Creating Pidora currently uses a standard signing procedure (SOP) Trac instance for signing* Creating bug tracking. However, there is a 'release' package containing lot of spammer activity on that system. Implement an effective spam prevention system on Trac, or implement an alternative bug tracking system such as Bugzilla. Document the public keys and repo filessolution for future maintainability.
Expected outcomeSkills required: repossystem administration, release package, SOPdocumentation
Maximum number of participants: 1
= Fedora= Packaging Pi-ARM Projects compatible Software ==
== Set up There are a Koji Test Hub ==number of Pi-specific software packages that could/should be included in Pidora. Select one, package it, and get it into Fedora (preferred) or directly into Pidora.
We have a Koji Hub Some packages 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 hubget you started:* Adafruit WebIDE* Adafruit libraries/tools/builder configurations can be tested independently from the production server.etc* OMXplayer
Expected outcome: a koji test server set up on England* Vidcore library compatibility package (symlink farm in /opt/vc)
Skills required: system administration* Quick2wire python library
Maximum There are a number of participants: 1other package requests in the Pidora bug tracking system.
== Document YUM Api == Yum is written in Python, but the yum API is poorly documentedSkills required: the usual answer to a question about the API is: "ask Seth Vidal".packaging
'''This is a hard project.''' Do not take it on unless you are really willing to complete this task. Expected outcome: a guide to the yum API. Skills required: investigation, scripting (python), writing Maximum number of participants: 21 per package (identify the package!)

Navigation menu