This shows you the differences between two versions of the page.
chumbyimagehowto [2010/06/14 16:10] gonium |
chumbyimagehowto [2012/10/30 10:27] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Some daemons need to be compiled on another host machine, since the Chumby is not powerful enough for this task (and has not enough memory). Here are my notes: | + | === Download a prepared Image === |
+ | You can download the finished images here: [[ChumbyImageDownload]]. | ||
+ | |||
+ | === Build an Image on your own === | ||
+ | |||
+ | Some daemons need to be compiled on another host machine, since the Chumby is not powerful enough for this task (and has not enough memory). Here are my notes: | ||
====== Install Scratchbox ====== | ====== Install Scratchbox ====== | ||
- | as described here. This greatly simplifies cross-compiling things. It also provides you a way to run the compiled ruby interpreter on a bigger host machine using QEMU. This is essential because I rely on rubygems, and the Chumby is too small to execute the gem install commands. Besides, at least for the sqlite3-ruby and mongrel gems, I need to compile native code. | + | [[http://wiki.chumby.com/mediawiki/index.php/Scratchbox|as described here.]] This greatly simplifies cross-compiling things. It also provides you a way to run the compiled ruby interpreter on a bigger host machine using QEMU. This is essential because I rely on rubygems, and the Chumby is too small to execute the gem install commands. Besides, at least for the sqlite3-ruby and mongrel gems, I need to compile native code. |
+ | |||
+ | The CMake tool does not compile in a Scratchbox environment, see [[http://www.staerk.de/thorsten/Nokia_N810#cmake]]: | ||
+ | the error msg is | ||
+ | <code> | ||
+ | make[2]: *** No rule to make target `Source/CMakeFiles/CMakeLib.dir/link.txt', needed by `Source/libCMakeLib.a'. Stop. | ||
+ | </code> | ||
+ | Workaround: I took link.txt from another computer and copied it => cmake is installed on the N810 | ||
+ | |||
+ | The complete command sequence is: | ||
+ | <code> | ||
+ | mkdir build | ||
+ | cd build | ||
+ | ../bootstrap --prefix=/mnt/storage/usr && make | ||
+ | # make install also fails, so: | ||
+ | cp bin/* /mnt/storage/usr/bin | ||
+ | </code> | ||
====== Install dependencies ====== | ====== Install dependencies ====== | ||
I found the following libraries necessary: | I found the following libraries necessary: | ||
Line 11: | Line 33: | ||
Compile the libraries and install them into /mnt/storage (use –-prefix where necessary). | Compile the libraries and install them into /mnt/storage (use –-prefix where necessary). | ||
====== Adjust the environment ====== | ====== Adjust the environment ====== | ||
- | to use the new libraries: | + | to use the new libraries: |
- | <code> | + | <code> |
- | BASEDIR=/mnt/storage/usr | + | BASEDIR=/mnt/storage/usr |
- | export PATH=$PATH:$BASEDIR/bin | + | export PATH=$PATH:$BASEDIR/bin |
- | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BASEDIR/lib | + | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BASEDIR/lib |
- | </code> | + | </code> |
====== Install Ruby and rubygems ====== | ====== Install Ruby and rubygems ====== | ||
I was not able to compile Ruby 1.8.7, but Ruby 1.8.6-p399 works nice. To configure everything, I use the following commands: | I was not able to compile Ruby 1.8.7, but Ruby 1.8.6-p399 works nice. To configure everything, I use the following commands: | ||
Line 33: | Line 55: | ||
gem install sqlite3-ruby -- --with-sqlite3-dir=/mnt/storage/usr | gem install sqlite3-ruby -- --with-sqlite3-dir=/mnt/storage/usr | ||
</code> | </code> | ||
+ | |||
+ | |||
====== The result ====== | ====== The result ====== | ||
is an image with Ruby installed, and all necessary gems for my project. The tarball can be downloaded here. To install, scp it to the Chumby and log in: | is an image with Ruby installed, and all necessary gems for my project. The tarball can be downloaded here. To install, scp it to the Chumby and log in: |