Changes

Jump to: navigation, search

DPI908/SBR600 Potential Projects

16,217 bytes added, 13:02, 5 October 2012
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]] coursesin Fall 2012.[[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 [[Fall 2012 DPI908/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 your professors ([[User:Chris Tyler|Chris Tyler]] and [[User:rchan|Raymond Chan]]).* 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. Please identify which aspect(s) of the project you will be delivering on the project page.}} == [[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: 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: <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: Vivaldi Tablet (possible target) - http://makeplaylive.com/-->Maximum number of students: One per hardware feature to be supported Resources: Chris Tyler (ctyler), Peter Robinson (pbrobinson) === Ne10 (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) === Raspberry Pi Video Decoding === The Raspberry Pi has GPU video decoding capabilities. This project involves exposing those capabilities to Fedora video applications, by packaging new components or modifying existing packages, and getting those changes incorporated into either Fedora or the Raspberry Pi Fedora Remix repositories. Expected outcome: It will be possible to play video on the Raspberry Pi using GPU acceleration. Maximum number of students: 1 (possibly more if multiple packages are affected). Resources: Chris Tyler (ctyler) == 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) === GuruPlug Security Servers === We have a group of GuruPlug micro-servers that are no longer needed in the FedoraARM buid farm. It would be interesting to create a Fedora Remix for these devices for the following use cases:# Penetration testing (perhaps similar to the PwnieExpress products?)# Intrusion Detection System# High-performance firewall Expected outcome: A Fedora Remix which can be loaded onto a microSD card and used on a GuruPlug to provide the specified feature set. Maximum number of students: 3 (one for each of the use-cases) Skills required: Linux administration, security, packaging, composing Resources: Raymond Chan (rchan), Chris Tyler (ctyler) == Andora Projects == Andora is a Fedora Remix that the [http://linux.senecac.on.ca/wordpress/?p=166 Linux-Android club has been working on]. They have identified some needs within Fedora related to Android development. === 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 === Create the andora-logos, andora-release, and andora-fedora-remix-release-notes packages === Fedora usually contains three packages that cannot be redistributed with derived (remixed) versions: * fedora-logos* fedora-release* fedora-release-notes Dummy versions of these packages are available, substituting generic- for fedora- (i.e., generic-logos, generic-release, and generic-release-notes). This project involves creating a replacement for the three packages: * andora-logos -- This package will contain replacements for the Fedora logos, including the Andora logo where appropriate. It would probably also be a good idea to produce a Andora-backgrounds package with Andora-branded wallpaper.* andora-fedora-remix-release -- This package will contain Andora-Fedora Remix release files such as yum configs and various /etc/ files that define the release.* andora-fedora-remix-release-notes -- This package will contain documentation on the Remix, including notes on how to install it to a hard disk or an USB flash drive, trademarks, etc. Expected outcome: three packages. Skills required: documentation writing, graphics, packaging Maximum number of people: 3 (logos, release keys, release notes) Resources: Raymond Chan (rchan), John Selmys == Architecture Support Projects == === ARMv8 Support Analysis === Many Fedora packages contain assembley code for performance optimization or platform-specific support. Assembley code is very processor-specific. When assembley code is not present for a specific architecture, either the package will not build on that architecture, or other code (typically C) which is not processor-specific is used instead. This project involves analyzing Fedora packages to determine which ones contain assembly code, and determining whether the package will probably build on the upcoming ARMv8 64-bit architecture. Expected outcome: An analysis of part of the Fedora package set to predict ARMv8 build outcomes. Maximum number of students: 6 (each taking part of the Fedora package set) Skills required: packaging, scripting, writing Resources: Chris Tyler (ctyler), Jon Masters (jonmasters) Project Page: [[ARMv8_Support_Analysis|ARMv8_Support_Analysis]] == OLPC Projects == === School Server Packaging === The [http://laptop.org One Laptop per Child] project (OLPC) provides a software distribution for what they call the "school server" (XS). This distribution needs to run on both ARM and x86_64/i386 systems. There are some packages that have been created for this school server which should be reviewed using Fedora's packaging guidelines and made a part of the Fedora package set. This may involve refactoring the packages (dividing them up), adjusting spec files, and going through the Fedora package review process. There are some XO 1.75 ARM computers available for sign-out if needed. Expected outcome: The XS packages will be in the Fedora package set. Maximum number of students: 6 (each taking several different packages) Web references:# Repo: http://build.laptop.org.au/xs/XS-0.7+/repos/XS-F17ARM/SRPMS/# Description of the new school server project: https://docs.google.com/document/pub?id=1dnhU2F6EntepVXTgN8QpkME8fZVUuPjcCoMUfAVKbcc# Blog about the school server: http://schoolserver.wordpress.com/blog# Mailing list: http://lists.laptop.org/listinfo/server-devel Skills required: packaging, scripting, testing Resources: Jerry Vonauk, Adam Holt, Chris Tyler (ctyler)
1
edit

Navigation menu