DPI908/SBR600 Potential Projects
This page will contain the Potential Project List for the DPI908 and SBR600 courses.
Contents
Introduction
This is a list of potential projects related to the SBR600 course that need people.
Students: Please select a project that you're interested in and add an entry to the project table/participants page.
Open Source Community Members: We welcome your recommendations for potential projects. Please create an account on this Wiki and create a description for your proposed project below. Please list your contact info (just an IRC or FAS2 name is OK) as well as links to any related web pages as Resources for the proposed project. (Questions? Ask Chris Tyler or Raymond Chan).
Notes
Each project listing contains a general description, plus this information:
- Maximum number of students - Do not exceed this number without approval from your professor.
- Skills required - This is a rough list of some of the skills required for this project. This list may be incomplete or inaccurate, but it will give you a starting point in evaluating whether this project is a good fit for you. It is not assumed that you will have all of these skills at the outset of the project -- some of them will be picked up as you do the project.
- Resources - An initial list of computer and information resources to get started on the project.
- Expected result - A rough indication of what is expected at the conclusion of the project.
- Initial contacts - Who to initially talk to about this project. These contacts may refer you on to other people with the respective open source communities.
You will have an opportunity to investigate, expand upon, and fine-tune this information as you prepare your initial project plan. For example, you may come up with a more detail list of expected results (deliverables), resources, and contacts during your planning.
Sample Project
This is a sample project stub. You can use the template for Sample Project in order to create a project page for one of the projects listed below. This is how you 'sign-up' for a project.
NOTE: if someone has already created the project page, speak to this person and see if you can join them. If so, simply add your name to the Project Leader(s) section on the project page. Otherwise, you can become a contributor later.
Hardware Support Projects
The Panda media centre
The PandaBoard is a popular ARM development board. It has good multimedia capabilities but these are not supported in Fedora ARM at the present time.
This project involves packaging the requisite pieces for the PandaBoard for use as a media centre.
Web reference: http://rsalveti.wordpress.com/2012/07/29/pre-built-images-for-xbmc-ubuntu-12-04-based-with-hw-acceleration-finally-available-at-linaro/
From Peter Robinson:
This would be quite a large project and covers a lot of things both HWand software. It would also likely partially cover Fedora legal as well. dgilmore and i spoke with spot about the codecs and he gave a general "should be OK but will need review" as it should be like the libcrystalhd package which ships firmware for HW h264/mpeg etc.
It would cover RMSG support in the kernel, gstreamer, both sound
(pulseaudio, HDMI surround sound etc) and video, packaging etc.
Expected outcome: The PanadaBoard features -- sound, video, video decoding, and wifi -- would be fully supported in Fedora.
Skills required: packaging, kernel/module building, testing, negotiation
Web reference: http://rsalveti.wordpress.com/2012/07/29/pre-built-images-for-xbmc-ubuntu-12-04-based-with-hw-acceleration-finally-available-at-linaro/
Maximum number of participants: 4 (different device features, documentation)
Resources: Peter Robinson (pbrobinson)
Packaging and support for OpenMAX
OpenMax is a means of supporting media well on a lot of ARM platforms. It should be packaged and present in Fedora.
Expected outcome: The OpenMAX software is packaged and present in Fedora.
Skills required: packaging, kernel/module building, testing
Web reference: http://www.arm.com/community/multimedia/standards-apis.php
Maximum number of participants: 2 (suggested breakdown: packaging, testing)
Resources: Peter Robinson (pbrobinson)
Lima X driver
This is a driver for the Mali GPU hardware. It should be able to work with a number of devices including the Oriegin and Snowball boards.
Expected outcome: The Limo X driver is packaged and present in Fedora.
Skills required: packaging, kernel/module building, testing
Web reference: http://limadriver.org/
Maximum number of participants: 1
Resources: Peter Robinson (pbrobinson)
Programming GPIO on Fedora
A guide and some simple projects that run on different boards on Fedora.
Package appropriate libraries and provide instructions on interfacing devices to the BeagleBoard/BeagleBone and PandaBoard devices using the GPIO/SPI/I2C interfaces.
Expected outcome: appropriate libraries for GPIO/SPI/I2C support will be present in Fedora, and documentation page will be available outlining how to use these features.
Skills required: packaging, testing, writing
Maximum number of participants: 2 (one per board)
Resources: Chris Tyler (ctyler), Peter Robinson (pbrobinson)
General HW enablement
A number of ARM boards have features that are not fully supported in Fedora.
Note: Before starting this project, you must identify the features and boards you are targeting.
From Peter Robinson:
Most of the devices we support actually only use a small amount of theHW that is actually on the device. Whether it be simple like graphics or sound or more interesting like gyro, gps, FM radio. There's also some other devices that would be interesting to support like the snowball, origen, or even the Vivaldi Tablet. Some definitely need FW and hence probably packaging if it's not in the linux-firmware dumping
ground
Expected outcome: The identified features will be supported on the identified board(s) within Fedora.
Skills required: packaging, kernel/module building, testing
Maximum number of students: One per hardware feature to be supported
Resources: Chris Tyler (ctyler), Peter Robinson (pbrobinson)
The knights that say Ne
Ne10 is a new upstream ARM project to for optimising libraries on NEON. This project involves getting this library into Fedora.
Expected outcome: The Ne10 library will be packaged in a useful way in Fedora. Optionally, use Ne10 to optimize some Fedora packages.
Maximum number of students: 1 (possibly more if other packages can be modified to use Ne10)
Web references:
- http://blogs.arm.com/software-enablement/703-ne10-a-new-open-source-library-to-accelerate-your-applications-with-neon/
- http://projectne10.github.com/Ne10/
Resources: Peter Robinson (pbrobinson)
Performance Tuning Projects
Benchmarking and Tuning on ARM Devices
From Peter Robinson:
A lot of libraries, especially graphics libraries, offer ARMoptimisations. Some are auto HW detect like cairo/pixman but there are a lot that might not be. Ultimately I'm sure we could run faster on ARM HW. There's also various benchmarking toolkits out there. A documented means of doing this on ARM platforms would be great. It could be used to see what improvements changed on the platform has on various chipsets/boards. Some libraries that do arm optimisation are things like cairo/pixman/pango and graphics like opus/libvpx/theora/vorbis/libpng/libjpeg-turbo/libtiff so it would be interesting to see that they are as optimised as they could be on ARM
or could we improve it with some %{arm} directives to help out.
Note: Before beginning this project, you must identify an existing Fedora software package with available but unused ARM optimizations.
Expected outcome: The selected package will be conditionally optimized for ARM and will perform better than the original package.
Maximum number of students: One per package to be optimized.
Skills required: packaging, benchmarking, testing
Resources: Chris Tyler (ctyler), Peter Robinson (pbrobinson)
Security-Related Projects
Mock chroot-break/Privilege Escalation Risk Assessment
Mock uses chroot environments for building. It is possible to break out of a chroot environment. An intentionally-malicious package could potentially break out of a chroot and wreak havoc on the build system. Alternately, a privilege escalation exploit could be used to cause similar issues (without necessarily breaking out of the chroot).
This project involves investigating this risk, developing a proof-of-concept, and recommending changes to the mock/koji system to mitigate this risk.
Expected outcome: A proof-of-concept of this issue and recommended changes to mitigate the risk.
Maximum number of students: 2 (one on chroot breaking, and one on privilege escalation)
Skills required: security auditing, scripting/programming, testing, writing
Resources: Chris Tyler (ctyler), Raymond Chan (rchan)
SELinux Policy Analysis
The SELinux policy has never been reviewed to determine (a) best practices for policy in a general-distribution context such as Fedora, and (b) whether there are architecture-specific policy extensions or changes that should be present in an ARM system. This project provides such a policy review.
Expected outcome: A review of the SELinux policy with recommendations (and ideally patches) for policy changes.
Maximum number of students: 2 (one on best practices, one on ARM policy optimizations)
Skills required: SELinux policy writing, risk assessment, testing, writing
Resources: Raymond Chan (rchan)
Andora Projects
Andora is a Fedora Remix that the Linux/Andora club has been working on.
Make Fedora Eclipse Compatible with the Android Extensions
The Eclipse IDE as packaged in Fedora appears to be incompatible with the Android software development plugins/extensions. Determine why this is the case, and get appropriate modifications into Fedora to rectify the issue.
Expected outcome: The Fedora Eclipse package will be compatible with the Android extensions.
Maximum number of students: 1
Skills required: building, packaging, testing
Resources: Raymond Chan (rchan), John Selmys
Package the Android Extensions for Eclipse
There are a group of extensions (4?) for Eclipse that enable development of Android applications. Package these extensions and make them available in (or for) Fedora.
Expected outcome: The extensions will be available as Fedora packages, or if not permitted by licensing, as packages available from an external repository.
Maximum number of students: 4 (one per extension/plugin)
Skills required: packaging, testing
Resources: Raymond Chan (rchan), John Selmys