1,885
edits
Changes
no edit summary
{{Chris Tyler Draft}}[[Category:Fall 2012 SBR600]][[Category:Fall 2012 DPI908]]
This page will contain the Potential Project List for the [[DPI908]] and [[SBR600]] courses.[[Category:SBR600]][[Category:DPI908]] = 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 [[Winter 2012 SBR600 Participants|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 [[User:Chris Tyler|Chris Tyler]] or [[User:rchan|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 [[User:Chris Tyler|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. {{Admon/important|Individual Deliverables|Note that when multiple people are working on the same project, they will have independent deliverables -- it's not really group work, but rather separate, closely related projects.}} == [[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: <blockquote>This would be quite a large project and covers a lot of things both HWand software. It would also likely partially cover Fedora legal aswell. dgilmore and i spoke with spot about the codecs and he gave ageneral "should be OK but will need review" as it should be like thelibcrystalhd 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.</blockquote> 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: 3 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: <blockquote>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 graphicsor sound or more interesting like gyro, gps, FM radio. There's alsosome other devices that would be interesting to support like thesnowball, origen, or even the Vivaldi Tablet. Some definitely need FWand hence probably packaging if it's not in the linux-firmware dumpingground</blockquote> Expected outcome: The identified features will be supported on the identified board(s) within Fedora. Skills required: packaging, kernel/module building, testing Web reference: http://makeplaylive.com/ Maximum number of students: One per hardware feature to be supported Resource: Chris Tyler (ctyler), Peter Robinson (pbrobinson) === The knights that say Ne === A new upstream ARM project to for optimising libraries on NEON. http://blogs.arm.com/software-enablement/703-ne10-a-new-open-source-library-to-accelerate-your-applications-with-neon/http://projectne10.github.com/Ne10/ == Performance Tuning Projects == === Benchmarking and Tuning on ARM Devices === From Peter Robinson: <blockquote>A lot of libraries, especially graphics libraries, offer ARMoptimisations. Some are auto HW detect like cairo/pixman but there area lot that might not be. Ultimately I'm sure we could run faster onARM HW. There's also various benchmarking toolkits out there. Adocumented means of doing this on ARM platforms would be great. Itcould be used to see what improvements changed on the platform has onvarious chipsets/boards. Some libraries that do arm optimisation arethings like cairo/pixman/pango and graphics likeopus/libvpx/theora/vorbis/libpng/libjpeg-turbo/libtiff so it would beinteresting to see that they are as optimised as they could be on ARMor could we improve it with some %{arm} directives to help out.</blockquote> 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 == === 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: 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.