Current open tasks official

From Pandora Wiki
Jump to: navigation, search

This page is meant as some form of coordination of efforts. It is is explicitly directed to all people that want to help with the official software base and don't know what to work on. Please do not modify the page unless you work on something yourself or discussed the issues on the IRC and reached some kind of agreement with the people working on this stuff. If you just want to see some new features, submit a request in the bugtracker.

Contents

General workflow

There is a git repository for all the "core" work on openpandora. You find it at git.openpandora.org.

Most work does happen in the irc channel irc.freenode.net. We plan to discuss work in there and actively coordinate with each other where appropriate and required. We do not want to discuss every tiny mini step. The plan is to let those doing the work decide things. They will of course talk to the once affected by the result and discuss as appropriate.

On this page things that got a general consent will be listed. Most of those are areas that can require some active help or are already being tackled. We will try to link to entries in the bugtracker at bugs.openpandora.org for feature requests as well as known bugs. We plan to make full use of the tracker for enlisting all the things that are wanted or even needed. Here is how the bugtracker will most likely be used:

  • Devs will have a look at submitted reports every now and then. If there is someone who tends to feel responsible for this area, the report is assigned to him to check it, comment on it, fix it and all that stuff. Of course this dev can reassign it (to someone else or noone), too.
  • Once a feature is added in the repositories or the respective bug is fixed, the report is marked as "fixed".
  • After the respective bugfix or feature is included in a new firmware image, hotfix or released package, the report will be closed. Closing of reports can of course be delayed a little depending on the workload of those helping in keeping the tracker clean.
  • If the report is not reasonable, it will just be marked as "Invalid", "Won't do" or something along those lines and be closed.
  • Please do open one request/report per issue, don't clutter 100 unrelated things into one report. Do also make sure that you use some reasonable summary for the title.

If already reported issues arise in the forums, people in the forums are encouraged to simply link to the tracker and/or fixes as well as workarounds mentioned in the Wiki. In case some new issue comes up, it would be good to have forum people ask the ones reporting the issues to leave a bug report in the tracker to make sure the issue is not missed in the noise of the forums. The reason for this is that the forums have a huge potential for distracting developers and many coder just don't like them anyway. With having stuff in the bugtracker things are easy to find and won't get lost.

Open Tasks

This block will be roughly split into various areas. The splitting is not always 100% clear since there are of course overlapping areas.

Kernel

This is the base of everything. In the first firmware release, called Zaxxon, kernel 2.6.27 with several OMAP and Pandora specific patches was used. In this area we plan to enlist the bigger changes that are wanted and/or needed on the kernel side. Kernel patches should go through notaz for review to make sure that things do work as expected. Current information regarding the kernel port status is listed on this wiki page.

  • Make currently used kernel config easily available. At the moment you can for example get it on the Pandora in /proc/config.gz.
  • Move to a more recent kernel version (status):
    • Notaz already started working on this. At the moment he has to rebase his repository to make the progress available to everyone in the git at git.openpandora.org. The stuff already done is pushed into the branch pandora-35.
    • Once the new kernel version is basically available, drivers have to be ported. The tasks include, but are not limited to, getting wireless, 3D, audio as well as all the pandora specific input methods to work nicely and in a backwards compatible way. This task requires help for doing the port of the drivers and, even more important, lots of testing to make sure it does work as expected.
  • Offer more kernel modules:
    • Some commonly required kernel modules are not available at the moment. Those could/should be added once tested that they work as expected. Here some samples:
      • device-mapper (required for encryption via dm-crypt to work)
    • Make drivers for peripherals available. This could for example be done by creating an additional package that does eg include drivers for USB DVB sticks, webcams and stuff like this.
      • support for more filesystems eg for attaching USB drives (currently at least ext4 is "missing"; FR #119)
  • Speed improvements:
    • activate DMA for mUSB (the OTG port) once a kernel >.30 is running (anything under .30 causes it to die, read up on mUSB in the kernel for more info, its a mess. DMA is on for SD, Wifi etc.)
  • power-saving:
    • Try to get suspend to ram working (this is most likely a huge pile of work and should not be started before a new kernel is included!)
    • Check that turning off devices like Wifi and bluetooth really does turn them off and powers them down.
    • Check which power saving features can possibly be activating (dynamic power-saving? dynamically lowering core voltage? ...). At the moment basically no powermanagement features are active in the kernel. Some possible features that should be checked are:
  • nubs/controls:
    • Can the nub usage somehow be improved? eg have the gaming controls show up as if they were one joypad? The main challenge here is to make this possible without breaking backwards compatibility with existing software.
  • Evaluate if it is possible and makes sense to switch to OSS4 instead of ALSA:
    • General:
      • Try to encourage programs to rely on existing audio libs that offer backends to both sound systems.
      • Is it possible to maintain backwards compatibility to ALSA by making use of some alsa emulation? How good is this emulation?
    • Pro OSS4:
      • ALSA does often create problems (cf the problems setting up the driver without having init problems that result in crackling) and is hard to use directly by programs.
      • General performance of OSS4 should be better than ALSA since eg dmix is not required, mixing is done by the driver.
    • Pro ALSA:
      • Existing progs that do make direct use of ALSA would have to be ported to OSS (eg PSX4Pandora, zodttd is aware of this).
      • Open question: how much work is it to get the current feature set work with the OSS driver?
      • Good hardware support (midi, usb sound cards, bluetooth headsets, ...), here OSS4 seems to be lacking and problematic.
      • Speed problems due to dmix can be worked around by deactivating mixing when not required and tuning the .asoundrc file.
      • ALSA should provide less problems when trying to get suspend to ram working, OSS4 is known to be problematic in those regards.
  • other:

Base OS

This is a list of things that could/should be improved in the default distribution available on the Pandora.

  • Create some centralized GUI that offers the functionality of the current scripts. This GUI should be usable from minimenu, too (and be controllable by dpad.
  • Readd missing things in existing packages in the base system of angstrom:
    • python is missing some modules (eg cgi) in the current base system (bug #120)
  • Add some more "common libs" to the base system:
    • openal (useful base audio lib that eg games could rely on, some existing (Linux) games already do; FR #103)
    • sdl-perl (FR #118)
    • ...
  • Add some more "often useful" progs to the base system:
    • screen
    • rsync
    • A tool for downloading embedded web videos (flash!) so that they can be watched via a normal media player. Examples for tools like this are youtube-dl or get-flash-videos.
  • Create additional "packs" like eg the "Community Codec Pack" that do include programs that are useful but can't be shipped in the Base OS:
    • Create a package for extraction tools like unrar, 7z and the likes.
  • Create an openpandora package repository for "auto system updates"
    • This is already planned, but requires some more time. Of course tools for allowing easy (graphical) updates are welcome, too.
  • Implement "mini OS" for loading without doing a full boot (quite some work expected!). The biggest challenge here would be to boot a system that does maximum power saving while loading and that is activated eg when shutting down a system that is currently plugged into AC.
  • Improve displaying of current status. This eg does include the status of bluetooth, wifi, the battery and common things like this. Most things already got an applet in the XFCE view, but maybe things can somehow be further improved?
  • Setup a build server that does regular (daily?) builds of the OS. ED mentioned that DJWillis and notaz already started working on it, though help is most likely welcome anyway...
  • The "pandora" button:
    • Offer some XBox like overlay menu when hitting the pandora button. (FR #123)

Further libraries and programs

Here additional programs that are not directly part of the base OS as done by the pandora team but closely related, sometimes even specific parts shipped with the OS.

Community Codec Pack

The community codec pack that might include codecs that you are not legally allowed to use in your country without buying a license at the respective authority. Please make sure that you are allowed to use it before installing it!

  • Improve configuration of mplayer to reduce system load and speed up playback.

libpnd

The PND system used for bundling programs into one file that can simply be copied to the sdcard and will directly be recognized by the system.

  • Find a decent way to make sure that as little as required ends in the NAND. For example some additional parameter that sets the applications "home" folder and defaults to somewhere on the sdcard (the appdata folder).
  • Fix libpnd not being able to start pnd files if there are spaces somewhere in the pnds complete path (FR #112) -- patch/fix existing, needs testing

libsdl

A rather common library used by many programs, especially games.

  • Optimize the sdl lib for the pandora by eg adding double buffer and stuff like this (bug #122)

python

Python is a programming language that is easy to use and used at various places. It is used for several games, too.

  • pygame:
    • Add support for hardware surfaces to speed things up, currently eg games with scrolling are unusably slow. (FR #121)

Documentation

There can't be enough documentation, right? The task here is to list things that we want to have better documented, preferably here in the wiki in some "well sorted" way. Some things that can already be done:

Personal tools
community