Difference between revisions of "Development Tools"

From Pandora Wiki
Jump to: navigation, search
(Official Firmware images: obsolete hotfix removed. outdated info to support page replaced with general phrase and forum link.)
(content moved to Development)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Official Pandora Source Code Repository==
+
#REDIRECT [[Development]]
 
 
{{Split section|All the firmware stuff}}
 
The official source repository is under GIT revision control; EvilDragon is the admin, but the repo has a web based browser built in.===
 
 
 
Minor note on [[libpnd]] in the GIT; as skeezix (me) is too lazy to install vmware-tools for date sync, the check-in times are not accurate for libpnd; they're in order of course, but the actual date is usualyl off by many days, so don't sweat it.
 
 
 
The actual GIT repository is here: [http://git.openpandora.org/cgi-bin/gitweb.cgi] It is recommended that you read the [[Kernel_status#openpandora.org_git_structure | git structure]] information before going too far.
 
 
 
===Official Firmware images===
 
A Pandora specific repository is work-in-progress. From 1 July 2010, you can grab the latest ''unstable'' ready-to-be-flashed ubifs-images from [http://openpandora.org/firmware/ http://openpandora.org/firmware/] or the rootfs which you can [[Creating_a_bootable_SD_card | extract on your SD Card and boot]] from there.
 
 
 
Be aware that these images are the most recent cutting edge. They might have some bugs, but should include any new fixes which are yet to be released as [[Hotfixes]]. Note they are also 'un-configured' so will take you through the first-boot process. You will obtain a slightly different result if you copy your existing rootfs to an SD card and boot from there.
 
 
 
For ''stable'' released images, see other OpenPandora support pages. E.g. official forum [http://boards.openpandora.org/index.php/forum/41-pandora-os-superzaxxon-gnulinux/ software - pandora os] news.
 
 
 
==Pandora Specific Libraries==
 
 
 
===libpnd - the Pandora Library===
 
 
 
[[libpnd]] is a collection of utilities that Pandora developers may find useful, as well as including the daemons and tools for creating and working with PXML.xml based applications (pnd files or unpacked application directories.)
 
 
 
It is hoped the '''community will continue to expand this library''' over time!
 
 
 
Some stubs are included as hints .. for instance, the first dev to build a clean /dev/gpio based input library should slip it into libpnd so that others may benefit as well, avoid fragmentation and application bugs.
 
 
 
Continue into the main [[libpnd_hub|libpnd documentation hub]].
 
 
 
===Notaz SDL - improved SDL for Pandora===
 
 
 
[http://boards.openpandora.org/index.php?/topic/6231-improved-sdl-for-pandora/Notaz enhanced SDL thread, on the boards]
 
 
 
This library is very very useful for SDL-based ports and new games / apps.
 
 
 
* hardware scaling support (up and down)
 
* doublebuffering support (can eliminate tearing)
 
* vsync support (can give smooth scrolling if done right)
 
* keymap change with a config file (porting aid)
 
 
 
==Tentative Library Environment==
 
 
 
===Information===
 
 
 
'''Please note, that this information is hearsay/guesswork, and is yet to be confirmed on a production unit.'''
 
 
 
For Pandora [http://en.wikipedia.org/wiki/Out_of_the_box (Out-Of-The-Box)]
 
* [http://www.gnu.org/software/libc glibc] (at a guess, version 2.6.1 or whatever is compatible with OpenEmbedded)
 
* [http://www.libsdl.org/ libSDL] (also a guess, latest available version of 1.2)
 
 
 
For those interested in creating libraries, or needing more low-level access, read about the
 
[[kernel interface]].
 
 
 
==Tools for Pandora Software Development==
 
 
* OpenEmbedded cross-compile environment (and Angstrom distro) [http://www.elinux.org/BeagleBoard#OpenEmbedded]
 
* CodeSourcery gcc[http://www.codesourcery.com/gnu_toolchains/arm]
 
** [http://www.codesourcery.com/gnu_toolchains/arm/portal/release313] - NB: OpenEmbedded uses the CodeSourcery 2007q3 to build the kernel, but uses gcc 4.3.1 to compile everything else.
 
* TI CodeComposer Studio: Free Evaluation Tools[http://focus.ti.com/dsp/docs/dspsupportaut.tsp?sectionId=3&tabId=416&familyId=44&toolTypeId=30]
 
* TI c6x Codegen tools for Linux[https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/download.html]; License [https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/doc/c6x/TILAW-%23180394-v1-Compiler_Clickwrap_For_OS_Community-2.html]; TI account required; this is *only* for Open Source development
 
* Das U-boot: The Universal Bootloader[http://www.denx.de/wiki/DULG/WebHome]
 
* Git - Fast Version Control System [http://git-scm.com/]; Good tuto: [http://www.trinitydesktop.org/wiki/bin/view/Developers/GIT]
 
 
 
===Kernel Source===
 
 
 
* A read-only GIT repository for the [[kernel_status|kernel]] source has been made available (November 2008); the note from ED is:
 
 
 
<blockquote>If anybody wants to take a sneak peek at the current kernel, we've got a read-only GIT setup which features the most recent version of the MK2 OpenPandora Kernel.
 
The git is: [git://git.openpandora.org/pandora-kernel.git]
 
Use the '''pandora-27-omap1''' branch for the moment, there will soon be a 2.6.28.</blockquote>
 
* [[Kernel_build_instructions|Kernel build instructions]]
 
 
 
===OpenGL===
 
 
 
(See also [[OpenGLES On the Pandora]])
 
 
 
* [[OpenGL ES]] 2.0 emulator for PC[http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp#GLES2]  ''This works both on Linux and Windows. One needs to register with imgtec before downloading.''
 
** To build the applications a few environment variables need to be set (tested on Ubuntu Gutsy). Note that to run them, you do need an OpenGL 2.0 compliant gfx card.
 
*** LD_LIBRARY_PATH needs to be set to the folder holding the important libraries, such as libEGL.so ($SDK_PATH/Builds/OGLES2/LinuxPC/Lib might be enough)
 
*** To run the makefiles in the Training section you need to set a PLATFORM variable to either LinuxPC or LinuxGeneric. I have had success with LinuxPC.
 
*** See [http://pastebin.com/f3f9f159f] for a script that you can run to set these for you.
 
* [http://www.imgtec.com/powervr/insider/powervr-pvrtextool.asp PowerVR Texture creation tool]
 
** "PVRTexTool enables conversion of standard bitmap files (e.g. BMP, JPG, PNG, TGA, etc.) to any texture type supported by POWERVR MBX or POWERVR SGX hardware including PVRTC, DXT and ETC compressed formats. Both a GUI and command line version are supplied for Windows and Linux. There are also plug-ins for Autodesk 3ds Max, Maya and Adobe Photoshop." - requires imgtec registration.
 
** ''Note, this is part of the main SDK'' - (Linux path to it is /SDKPackage/Utilities/PVRTexTool/)
 
 
 
===Packaging===
 
(See also [[PND_quickstart#Making_PND_files|Making PND files]] and [[Libpnd_hub#PXML.xml_and_.pnd_files|the PND package format]])
 
 
 
*[[Libpnd_hub#pnd_make.sh|pnd_make.sh]] - a straightforward shell script to build PND files from a prepared directory.  Included with libpnd and, therefore, in all Pandoras
 
*[http://www.gp32x.com/board/index.php?/topic/58587-pndbuilder/ PNDbuilder] - a graphical tool to build PNDs.  Can be used [http://freedomdown.squarespace.com/storage/PNDbuilder.zip in Windows] or [http://freedomdown.squarespace.com/storage/pndb.pnd on the Pandora].
 
*[http://www.gp32x.com/board/index.php?/topic/57350-distpnd/ distPND] - an extension to [http://docs.python.org/distutils/index.html Python's Distutils] designed to make PND files from Python source quickly and easily.
 
 
 
 
 
===Profiling===
 
If you need performance analysis, you can find a compiled version of the "perf" tool there : http://boards.openpandora.org/index.php?/topic/9809-profiling/#entry181954<br>
 
Just unzip the tool somewhere and launch it with LD_LIBRARY_PATH set.<br>
 
<br>
 
See https://perf.wiki.kernel.org/index.php/Main_Page to learn how to use it and happy optimizations!
 
 
 
[[Category:Development]]
 
[[Category:Operating system]]
 

Latest revision as of 13:24, 26 October 2013

Redirect to: