Difference between revisions of "Compile on the Pandora"

From Pandora Wiki
Jump to: navigation, search
Line 32: Line 32:
 
   ln -s /lib/libgcc_s.so.1 /usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcc_s.so
 
   ln -s /lib/libgcc_s.so.1 /usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcc_s.so
  
9. Install extra dev libs:
+
9. I had trouble with libsdl-image-1.2-dev and libpng / libpng-dev.  libpng-dev from the repo conflicts with 'libpng' on the Pandora.  That latter package is misnamed I guess, it should be called 'libpng-dev', only contains libpng-config and libpng12-config (dev tools, not essential) but task-pandora-core depends on it.  The real libs are in libpng12-0 / libpng3.  So I did this:
 +
 
 +
  opkg remove libpng --force-depends
 +
  opkg install libpng-dev
 +
 
 +
10. Install extra dev libs:
  
 
   opkg install libgles-omap3-dev
 
   opkg install libgles-omap3-dev
 
   opkg install libsdl-1.2-dev libsdl-gfx-dev libsdl-image-1.2-dev libsdl-mixer-dev libsdl-net-1.2-dev libsdl-ttf-2.0-dev
 
   opkg install libsdl-1.2-dev libsdl-gfx-dev libsdl-image-1.2-dev libsdl-mixer-dev libsdl-net-1.2-dev libsdl-ttf-2.0-dev
  
10. I had trouble with libsdl-image-1.2-dev and libpng, so did something like this (there might be some errors):
+
  Hopefully this will go smoothly if you've fixed the png conflict in step 9.
 
 
  opkg info libsdl-image-1.2-dev      # to see the deps
 
  opkg install libz-dev libpng-dev libjpeg-dev libtiff-dev libpng12-dev libc6-dev libsdl-1.2-dev
 
  opkg install --nodeps libsdl-image-1.2-dev
 
  ln -s libpng.so.3 /usr/lib/libpng.so
 
  
 
11. Install optional extra stuff, if you want them:
 
11. Install optional extra stuff, if you want them:

Revision as of 17:21, 29 March 2011

torpor described how to build apps directly on the Pandora.

Please note that as of March 2011, you will break your install if you follow those instructions directly! The angstrom "unstable" distribution is well named.

You can try the following:

1. I found that the www.angstrom-distribution.org repo was very slow, so changed the config files in /etc/opkg/ to use us.feeds.angstrom-distribution.org instead.

2. Enable sshd, and ssh in from another machine. This helps keep control when things break. To get root:

 sudo bash

3. Set up a root overlay on your SD card. This gives you a way to try again when things break, and there are other benefits. I added /home/ to the overlay also, by editing the "premount" script. To explain the extend terminology a bit, a "root overlay" is a loop mounted filesystem (on an SD) which goes over the top of (most of) your normal root filesystem. You can still read the files underneath it, but any writes / deletes are recorded only in the overlay filesystem. Your real root on the NAND is not modified at all. The "premount" shell script is used to mount your overlay, have a look in it to see how it works. You can sort of unmount them using umount -l (lazy umount), but I'm not sure if this is safe. The reliable way to unmount it is to reboot the Pandora!

4. Mount the overlay. Check this worked, with "mount" or "df".

5. Get new fresh package lists:

 opkg update

6. ncurses packaging seems to be broken, and ncurses is important! So, I suggest to do this first (in the overlay), or be prepared for things to start breaking when it gets removed later. If it does get removed, make sure to install it again!

 opkg install libncurses5

7. Install dev packages:

 opkg install gcc gcc-symlinks make-dev binutils-dev cpp cpp-symlinks g++ g++-symlinks libstdc++-dev

8. Try to compile "hello world". Mine didn't find libgcc_s, this fixed it:

 opkg install libgcc1   # not sure if this was needed
 ln -s /lib/libgcc_s.so.1 /usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcc_s.so

9. I had trouble with libsdl-image-1.2-dev and libpng / libpng-dev. libpng-dev from the repo conflicts with 'libpng' on the Pandora. That latter package is misnamed I guess, it should be called 'libpng-dev', only contains libpng-config and libpng12-config (dev tools, not essential) but task-pandora-core depends on it. The real libs are in libpng12-0 / libpng3. So I did this:

 opkg remove libpng --force-depends
 opkg install libpng-dev

10. Install extra dev libs:

 opkg install libgles-omap3-dev
 opkg install libsdl-1.2-dev libsdl-gfx-dev libsdl-image-1.2-dev libsdl-mixer-dev libsdl-net-1.2-dev libsdl-ttf-2.0-dev
 Hopefully this will go smoothly if you've fixed the png conflict in step 9.

11. Install optional extra stuff, if you want them:

 opkg install vim vim-syntax
 opkg install libgles-omap3-demos
 opkg install screen git rsync


The above was from memory, I didn't re-test it because it took too long even the first time! If you find other problems or quirks, please correct it.