<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi all,<div class="">I finally managed to build parts of current QtMoko from sources and</div><div class="">even if not completely successful, I think this is a good moment</div><div class="">to write down and share the experiences.</div><div class=""><br class=""></div><div class="">For a long time I had experimented with cross-compiling or using</div><div class="">qemu with a vexpress ARM emulation, but wasn't successful.</div><div class=""><br class=""></div><div class="">So I thought about using our brand new Letux Cortex 8 (LC8) board</div><div class="">(OSD3358 based tiny AM3358 board) and did equip it with a</div><div class="">200GB µSD card.</div><div class=""><br class=""></div><div class="">This looks like a big overkill, but using git and gcc has the</div><div class="">tendency to need a lot of disk space for the full history. This</div><div class="">setup is also planned to be used for building Replicant and there</div><div class="">a simple repo init fills the disk by several 10GB.</div><div class=""><br class=""></div><div class="">So I installed our Letux-Debian-Jessie by using the makesd</div><div class="">script (which was as simple as "DEV=/dev/sdb ./makesd lc8").</div><div class=""><br class=""></div><div class="">The LC8 is then connected and powered through USB and gives</div><div class="">simple network access through ssh <a href="mailto:root@192.168.0.202" class="">root@192.168.0.202</a> into the</div><div class="">device. Through ip-forwarding on the host, the LC8 has full</div><div class="">internet access (e.g. for apt-get upgrade or git clone).</div><div class=""><br class=""></div><div class=""><img apple-inline="yes" id="D69184F3-5FC1-4B06-9B00-C6AE19ACE896" height="380" width="640" apple-width="yes" apple-height="yes" src="cid:60AD085E-1FD9-4608-8DE9-08AD1F702B72@Speedport_W_700V" class=""></div><div class=""><br class=""></div><div class="">Next I did write a driver script that runs on the host and starts a build script</div><div class="">on the LC8. Such a driver script shall finally do everything what we need to get</div><div class="">QtMoko compiled and packed.</div><div class=""><br class=""></div><div class="">For example it does a git fetch to pull the sources or a (c)debootstrap</div><div class="">to create a debian wheezy image. And it finally starts compilation.</div><div class=""><br class=""></div><div class="">Basically it follows the steps described as prose by</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">   </span><a href="https://github.com/radekp/qtmoko/blob/master/README" class="">https://github.com/radekp/qtmoko/blob/master/README</a></div><div class=""><br class=""></div><div class="">The first experiments did show a lot of problems but I was able</div><div class="">to overcome most of them. Here is a short summary of the most important ones:</div><div class=""><br class=""></div><div class="">* compiling QtMoko on Debian Jessie fails. At least because libts-dev and libtiff4-dev are missing</div><div class="">* doing a chroot into a Wheezy image makes it work</div><div class="">* since the LC8 has only 512MB RAM (like the GTA04) we need swap space (seems to need up to ca. 300 MB)</div>* the first build is very very slow - it takes several days to compile<br class="">* using ccache and not doing a clean build reduces a recompile (to approx. 1h) but the result may be questionable<div class="">* ccache needs more than the default cache size (1GB)<br class="">* there are some more prerequisites than described in prose to really build from scratch - but my automatic build scripts should cover them now<br class=""><div class="">* it is better to extract qtmoko specific dependencies automatically</div><div class=""><br class=""></div><div class="">But still I was not yet able to build the latest sources (there is a dependency or search path</div><div class="">issue with libamrrecordplugin and libtimidityplugin).</div><div class=""><br class=""></div><div class="">Here are the scripts:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">    </span><a href="http://git.goldelico.com/?p=gta04-qtmoko.git;a=tree;f=goldelico;hb=refs/heads/master" class="">http://git.goldelico.com/?p=gta04-qtmoko.git;a=tree;f=goldelico;hb=refs/heads/master</a></div><div class=""><br class=""></div><div class="">(there is still stuff to set up a qemu image but it is no longer used).</div><div class=""><br class=""></div><div class="">After getting parts of QtMoko compiled I have set up a new repository for the</div><div class="">packages (including source packages) and have added Package/Sources/Release files:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span><a href="http://www.qtmoko.net/download" class="">http://www.qtmoko.net/download</a></div><div class=""><br class=""></div><div class="">So with this setup (if it finally succeeds), installation should become even more simple. It should be just</div><div class=""><br class=""></div><div class="">a) get (debootstrap) some minimal Debian Wheezy up and running (e.g.</div><div class="">   <a href="http://download.goldelico.com/letux-debian-rootfs/20170509-wheezy-7.11-minimal.tbz" class="">http://download.goldelico.com/letux-debian-rootfs/20170509-wheezy-7.11-minimal.tbz</a>)</div><div class=""><br class=""></div><div class="">b) add to /etc/apt/sources.list</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">  </span>deb <a href="http://www.qtmoko.net/download/" class="">http://www.qtmoko.net/download/</a> wheezy main</div><span class="Apple-tab-span" style="white-space:pre">  </span>deb-src <a href="http://www.qtmoko.net/download/" class="">http://www.qtmoko.net/download/</a> wheezy main<br class=""><br class=""><div class="">c) apt-get update</div><div class=""><br class=""></div><div class="">d) apt-get install qtmoko</div><div class=""><br class=""></div><div class="">e) to get sources: apt-get source qtmoko</div><div class=""><br class=""></div><div class="">Well, there are still some limitations I want to work on in the next weeks:</div><div class="">* the repository has no GPG signatures so one has to work around apt-get security complaints</div><div class="">* since some packages do not compile properly there are no complete source packages yet</div><div class="">* compilation is still slow despite ccache. I should try the 200GB card on a Pyra or OMAP5432EVM as soon as there becomes one available for running in background</div><div class=""><br class=""></div><div class="">This is a snapshot on the trail to world domination :)</div><div class=""><br class=""></div><div class="">Some thoughts where we should head to next:</div>* adapt hard coded file names to latest Letux kernels (many /sys and /dev names have changed since 3.7 kernels) so that it runs on GTA04A5<br class="">* get rid of tslib (not available in Jessie)<br class="">* try to upgrade to build/run on Jessie (libtiff4 -> libtiff5 and other unknown dependencies)<br class=""><div class="">* fix package dependencies so that 'apt-get install qtmoko' pulls in everything we need</div><div class="">* fix package descriptions (some still refer to the non-existing <a href="http://www.qtmoko.org" class="">www.qtmoko.org</a> landing page)<br class="">* adapt QtMoko for other devices (may be more difficult since we have different screen resolution/layout)<br class=""><div class="">* split qtmoko.deb into smaller and better manageable .deb packages (even if the sources remain monolithic)</div><div class="">* somehow provide a -dev package for easily building Apps</div><div class="">* somehow move QTMOKO_VERSION_STR to outside of qtopiabase/version.h so that we don't have to recompile everything (incl. the base libraries)</div><div class=""><br class=""></div></div><div class="">Hope this brief but lengthy summary help others working on QtMoko sources.</div><div class="">I hope you can also share your experiences / results.</div><div class=""><br class=""></div><div class="">BR,</div><div class="">Nikolaus</div><div class=""><br class=""></div></div></body></html>