ivanovic
Active Member
- Joined
- Aug 4, 2006
- Messages
- 784
This is basically meant to continue the thread from the other board. It is based on "EDIT9" (introducing "Sourcery CodeBench Lite 2011.09-70 for ARM GNU/Linux") from the old thread in case any questions regarding the version arise.
Hi everybody!
Todays post is about yet another try on getting a nicely working toolchain setup that allows crosscompilation of pandora binaries on x86 based Linux systems. Here a short summary what this is meant to be (and later on what it is *not* meant to be!):
What it is not meant to be:
This toolchain is built upon the efforts and scripts provided by Cpasjuste as well as Hitnrun. Some of the scripts are (or were once) 1:1 copies of their scripts. What I mainly changed is removing stuff like sudo. The scripts should be 100% distribution independent.
Pre start dependencies:
In case of a gentoo system all dependencies should already be met, on an Ubuntu system this command should install the required compile env, though I have no way to test this and can't be sure:
Some notes regarding the scripts:
Now to the most important part, the sdk itself:
Once the script is done, enjoy the crosscompiler toolchain. This new version does directly ship helper files to use with cmake, qmake as well as configure. Using autotools based configure is still problematic though since there are no fixed settings to be used and every script can behave differently, so the wrapper might not work for you... If you encounter any problems, please tell me. If you have suggested improvements or patches for this script I do highly welcome them!
That should be it for the moment. I hope this toolchain works for you as well as it seems to for me. If you alter on want to update the libs you have available, just rerun the script installer and it should fetch the latest versions currently available for OpenPandora (possibly libs that are only available in a beta firmware!).
Hi everybody!
Todays post is about yet another try on getting a nicely working toolchain setup that allows crosscompilation of pandora binaries on x86 based Linux systems. Here a short summary what this is meant to be (and later on what it is *not* meant to be!):
- Rather easy to setup toolchain that allows compiling binaries for the pandora on a linux host.
- Should support x86 as well as amd64 with multilib support.
- Installable inside a users $HOME without root priviledges.
- Completely based upon the packages that are also used on the pandora. It should use exactly the versions as shipped with the pandora and just those.
- Includes all libs and headers that are also found on the pandora (even some useless progs) but only a small number of binaries that can't be run on the host architecture.
- Should be rather easy to keep in sync with upsteam (aka openpandora.org) version changes.
What it is not meant to be:
- An sdk that is able to build the official firmware image. For those you still need an OpenEmbedded based setup so that you can make use of the recipes directly.
- It likely won't work on "pure" 64bit systems because the toolchain, things are based on (codesourcery), is plain x86.
- It will not automatically get all the dependencies that you need to make things work for your distribution. You will have to make your system able to compile things (for itself) before you can start with this toolchain.
- Some things like eg the gettext tools (for generation of translations used in the programs you compile with your toolchain) will have to be provided by your system. Stuff like msgfmt is *not* included!
- This sdk is not meant to be installed systemwide with root priviledges. In my early tests I could have destroyed my whole system if I were using root privs. Those problems have likely be fixed, but better save than sorry, so: don't install with root privs (either logged in as root or using su -c or sudo)!!!
This toolchain is built upon the efforts and scripts provided by Cpasjuste as well as Hitnrun. Some of the scripts are (or were once) 1:1 copies of their scripts. What I mainly changed is removing stuff like sudo. The scripts should be 100% distribution independent.
Pre start dependencies:
- wget
- bash
- sed
- md5sum
- working compile env for host system
In case of a gentoo system all dependencies should already be met, on an Ubuntu system this command should install the required compile env, though I have no way to test this and can't be sure:
Code:
sudo apt-get install libcurl4-openssl-dev libgpgme11-dev libtool build-essential
Some notes regarding the scripts:
- Make sure to change the variable PNDSDK_DIR at the top of the script to match your system. Make sure that your current user has permissions to write into this folder.
- After installation the SDK itself requires about 2.1GB on your harddrive. During installation about 700MB are downloaded into a tmp/ folder created where you call the scripts from. Those files can be removed after the script completed.
- After installation is done and everything works you can remove the following files/folders:
the installation script itself
- the folder "tmp/" (all downloaded files should have been stored here, as well as some folders used for temporary compilation)
Now to the most important part, the sdk itself:
- Download the script
Download the script openpandora_toolchain.sh. The installer script is still a single file but now available directly from the openpandora.org git repositories. To check the history of the file, please head over to git.openpandora.org/pandora-misc.git/sdk_installer.
- Fix line endings using "dos2unix"
After downloading the script in the step before you should run "dos2unix" on the file to make sure that they work nicely for you.
Code:dos2unix openpandora_toolchain.sh
- Make the script executable
Code:chmod +x openpandora_toolchain.sh
- Check that everything is correctly setup
Have a look into the script using a texteditor. If you want your toolchain installed somewhere else (aka "not in $HOME/pandora-dev") you have to change the variable PNDSDK_DIR in line 100. You should also read through the comments at the top since they might include some useful information.
- Execute the script
Once everything else is done (and you got the dependencies installed!) execute the script:
Code:./openpandora_toolchain.sh
- In case of errors
If you get an error message, you should try to fix those problems. They are likely related to you missing some dependencies for compiling opkg or pkg-config. Once you got the deps, rerun the step above.
- (optional) Remove temporary folder
Now that the script has completed running you can remove the temporary folder. Have a look at the last output from the script, it should name the folder.
Once the script is done, enjoy the crosscompiler toolchain. This new version does directly ship helper files to use with cmake, qmake as well as configure. Using autotools based configure is still problematic though since there are no fixed settings to be used and every script can behave differently, so the wrapper might not work for you... If you encounter any problems, please tell me. If you have suggested improvements or patches for this script I do highly welcome them!
That should be it for the moment. I hope this toolchain works for you as well as it seems to for me. If you alter on want to update the libs you have available, just rerun the script installer and it should fetch the latest versions currently available for OpenPandora (possibly libs that are only available in a beta firmware!).
Last edited by a moderator: