[Community] [Gta04-owner] The future of QtMoko

Dr. H. Nikolaus Schaller hns at goldelico.com
Wed Sep 24 17:48:07 CEST 2014


Hi Radek,

Am 24.09.2014 um 07:38 schrieb Radek Polak:

> On Tuesday, September 23, 2014 19:19:36 Dr. H. Nikolaus Schaller wrote:
>  
> > Hi,
> > since I know that there are many QtMoko lovers out there who wait for
> > new versions or new hardware that is supported, I have set up our own
> > build system to compile QtMoko v58 and create GTA04-single-partition
> > SD card images that might work with the newer DT based kernels we
> > are working on.
> > 
> > Here is the first result (installer for a 3.17-DT based GTA04 kernel and
> > the last official rootfs):
> > 
> > 	http://download.goldelico.com/gta04/qtmoko/
> > 		makesd + unstable.tbz
> > 
> > It boots well an the touch is working. But of course many /sys nodes
> > have changed so that there is neither WLAN, Bluetooth or WWAN.
> > And no battery charging, sensors etc. But GPS appears to do something.
> > 
> > This raises some questions, especially as it appears that QtMoko isn’t
> > developed any more. At least there have been no commits in the last
> > 9 months.
> > 
> > The first practical question is how to easily run the compile/test/fix
> > cycle.
>  
> Hi,
> cross compiling in chroot is best for development, i used qemu for releases only. Check README in qtmoko git.

Ok, I see. It just requires a machine where chroot/cross compiling works. qemu gives such a machine anywhere - but is slow... Maybe VirtualBox is better if I run it in x86 mode.

Or I try to use my own cross-toolchain which I use for compiling kernels and other stuff. But iI don't know if it has all required libs since it is not even a Linux but a *BSD system...

>  
> > It took several days on my setup (build within qemu-system-arm -M
> > vexpress-a9) to build the qtmoko-gta04.deb, but finally it failed.
>  
> I could upload my qemu image used for qtmoko builds, but it's quite big...

That is not necessary since I have a working arhf-cortex-a9-wheezy qemu image here (for everybody):

http://download.goldelico.com/gta04/debian/qemu-wheezy-vexpress/

qemu itself is not the problem, but the build process:

=========== millions of lines cut out =========
g++ /root/qtmoko/src/applications/calculator/interfaces/phone.cpp
moc /root/qtmoko/src/applications/calculator/doubledata.cpp
g++ /root/qtmoko/src/applications/calculator/doubledata.cpp
moc /root/qtmoko/src/applications/calculator/main.cpp
g++ /root/qtmoko/src/applications/calculator/main.cpp
moc /root/qtmoko/src/applications/calculator/interfaces/stdinputwidgets.cpp
g++ /root/qtmoko/src/applications/calculator/interfaces/stdinputwidgets.cpp
moc /root/qtmoko/src/applications/calculator/display.cpp
g++ /root/qtmoko/src/applications/calculator/display.cpp
g++ -MMD -MF /root/build-gta04/src/applications/calculator/.obj/display.cpp.d -c -pipe -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=hard -marm -DQT_QWS_FICGTA01 -fno-exceptions -fno-rtti -Wall -W -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -D_FORTIFY_SOURCE=0 -DQT_QWS_DYNAMIC_TRANSFORMATION -DQT_QWS_CLIENTBLIT -DQTOPIA_NO_PAGE_SIZE_MASK -DQTOPIA_POSIX_LOCKS -DQTOPIA_HAVE_SEMTIMEDOP -DQT_NO_QWS_VFB -DQTOPIA_HAVE_V4L2 -DQTOPIA_TELEPHONY -DMEDIA_SERVER -DQTOPIA_MOBILEUI -DQT_QWS_GTA04 -DHAVE_V4L2 -D_FORTIFY_SOURCE=0 -DQT_QWS_DYNAMIC_TRANSFORMATION -DQT_QWS_CLIENTBLIT -DQTOPIA_NO_PAGE_SIZE_MASK -DQTOPIA_VOIP -DQTOPIA_CELL -DQTOPIA_BLUETOOTH -DQT_NO_SXE -DUSE_PICTUREFLOW -DQT_KEYPAD_NAVIGATION -DBUILDER=""\""root at qemu-wheezy-armhf\"""" -DQTOPIA_APP_INTERFACE -DQTOPIA_TARGET=""\""calculator\"""" -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SVG_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQTOPIA_TRTARGET=""\""calculator\"""" -I/root/build-gta04/sdk/devices/root/qtmoko/devices/gta04/mkspecs/qws/linux-native-g++ -I/root/build-gta04/devices/root/qtmoko/devices/gta04/mkspecs/qws/linux-native-g++ -I/root/qtmoko/devices/gta04/mkspecs/qws/linux-native-g++ -I/root/build-gta04/src/applications/calculator/.uic -I/root/build-gta04/src/applications/calculator/.moc -I/root/build-gta04/src/applications/calculator -I/root/qtmoko/devices/gta04/ui/mobile/src/applications/calculator -I/root/qtmoko/devices/gta04/src/applications/calculator -I/root/qtmoko/ui/mobile/src/applications/calculator -I/root/qtmoko/src/applications/calculator -I/root/qtmoko/devices/gta04/include -I/root/build-gta04/sdk/qtopiacore/target/include -I/root/build-gta04/qtopiacore/target/include -I/root/build-gta04/sdk/include/qtopiabase -I/root/build-gta04/sdk/include/qtopiabase/module -I/root/build-gta04/include/qtopiabase -I/root/build-gta04/include/qtopiabase/module -I/root/build-gta04/sdk/include/qtopia -I/root/build-gta04/sdk/include/qtopia/module -I/root/build-gta04/include/qtopia -I/root/build-gta04/include/qtopia/module -I/root/build-gta04/sdk/include/sqlite -I/root/build-gta04/sdk/include/sqlite/module -I/root/build-gta04/sdk/include/md5 -I/root/build-gta04/sdk/include/md5/module -I/root/qtmoko/qtopiacore/qt/src/3rdparty/zlib -I/root/build-gta04/sdk/include/qtopiagfx -I/root/build-gta04/sdk/include/qtopiagfx/module -I/root/build-gta04/sdk/qtopiacore/target/include/QtSvg -I/root/build-gta04/qtopiacore/target/include/QtSvg -I/root/build-gta04/sdk/qtopiacore/target/include/QtSql -I/root/build-gta04/qtopiacore/target/include/QtSql -I/root/build-gta04/sdk/qtopiacore/target/include/QtXml -I/root/build-gta04/qtopiacore/target/include/QtXml -I/root/build-gta04/sdk/qtopiacore/target/include/QtGui -I/root/build-gta04/qtopiacore/target/include/QtGui -I/root/build-gta04/sdk/qtopiacore/target/include/QtNetwork -I/root/build-gta04/qtopiacore/target/include/QtNetwork -I/root/build-gta04/sdk/qtopiacore/target/include/QtCore -I/root/build-gta04/qtopiacore/target/include/QtCore -o /root/build-gta04/src/applications/calculator/.obj/display.o /root/qtmoko/src/applications/calculator/display.cpp
/root/qtmoko/src/applications/calculator/display.cpp: In member function 'virtual QSize MyLcdDisplay::minimumSizeHint() const':
/root/qtmoko/src/applications/calculator/display.cpp:57:11: warning: variable 'sz' set but not used [-Wunused-but-set-variable]
moc /root/qtmoko/src/applications/calculator/instruction.cpp
g++ /root/qtmoko/src/applications/calculator/instruction.cpp
moc /root/qtmoko/src/applications/calculator/data.cpp
g++ /root/qtmoko/src/applications/calculator/data.cpp
moc /root/qtmoko/src/applications/calculator/engine.cpp
g++ /root/qtmoko/src/applications/calculator/engine.cpp
moc /root/qtmoko/src/applications/calculator/calculator.cpp
g++ /root/qtmoko/src/applications/calculator/calculator.cpp
g++ /root/build-gta04/src/applications/calculator/libcalculator.so
g++ /root/build-gta04/src/applications/calculator/link_test
moc /root/qtmoko/src/plugins/composers/mms/videoselector.h
g++ /root/build-gta04/src/plugins/composers/mms/.moc/moc_videoselector.cpp
moc /root/qtmoko/src/plugins/composers/mms/mmscomposer.h
g++ /root/build-gta04/src/plugins/composers/mms/.moc/moc_mmscomposer.cpp
moc /root/qtmoko/src/plugins/composers/mms/videoselector.cpp
g++ /root/qtmoko/src/plugins/composers/mms/videoselector.cpp
moc /root/qtmoko/src/plugins/composers/mms/mmscomposer.cpp
g++ /root/qtmoko/src/plugins/composers/mms/mmscomposer.cpp
g++ /root/build-gta04/src/plugins/composers/mms/libmmscomposer.so
g++ /root/build-gta04/src/plugins/composers/mms/link_test
*** Error 
/default: Prerequisite failed
/sub_default: Prerequisite failed
/src/default_sub: Prerequisite failed
/src/default: Prerequisite failed
/src/sub_default: Prerequisite failed
/src/3rdparty/default_sub: Prerequisite failed
/src/3rdparty/default: Prerequisite failed
/src/3rdparty/sub_default: Prerequisite failed
/src/3rdparty/applications/default_sub: Prerequisite failed
/src/3rdparty/applications/default: Prerequisite failed
/src/3rdparty/applications/sub_default: Prerequisite failed
/src/3rdparty/applications/nerongps/default_sub: Prerequisite failed
/src/3rdparty/applications/nerongps/default: Prerequisite failed
/src/3rdparty/applications/nerongps/target: Prerequisite failed
/src/3rdparty/applications/nerongps/target_pre: Prerequisite failed
/src/libraries/qtopiawhereabouts/default: Prerequisite failed
/src/libraries/qtopiawhereabouts/module_dep: Prerequisite failed
/src/libraries/qtopiawhereabouts/target_post: Prerequisite failed
/src/libraries/qtopiawhereabouts/cpp_compiler_target: Prerequisite failed
/src/libraries/qtopiawhereabouts/qwhereaboutsfactory.o: Command execution failed
$$MKSPEC.CXX -MMD -MF $$[OUTPUT.1] -c $${COMPILER.CXXFLAGS} $${COMPILER.DEFINES} $${COMPILER.INCLUDEPATH} -o $$[OUTPUT.0] $$[INPUT.0]
g++ -MMD -MF /root/build-gta04/src/libraries/qtopiawhereabouts/.obj/qwhereaboutsfactory.cpp.d -c -pipe -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=hard -marm -DQT_QWS_FICGTA01 -fno-exceptions -fno-rtti -Wall -W -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -D_FORTIFY_SOURCE=0 -DQT_QWS_DYNAMIC_TRANSFORMATION -DQT_QWS_CLIENTBLIT -DQTOPIA_NO_PAGE_SIZE_MASK -DQTOPIA_POSIX_LOCKS -DQTOPIA_HAVE_SEMTIMEDOP -DQT_NO_QWS_VFB -DQTOPIA_HAVE_V4L2 -DQTOPIA_TELEPHONY -DMEDIA_SERVER -DQTOPIA_MOBILEUI -DQT_QWS_GTA04 -DHAVE_V4L2 -D_FORTIFY_SOURCE=0 -DQT_QWS_DYNAMIC_TRANSFORMATION -DQT_QWS_CLIENTBLIT -DQTOPIA_NO_PAGE_SIZE_MASK -DQTOPIA_VOIP -DQTOPIA_CELL -DQTOPIA_BLUETOOTH -DQT_NO_SXE -DUSE_PICTUREFLOW -DQT_KEYPAD_NAVIGATION -DBUILDER=""\""root at qemu-wheezy-armhf\"""" -DQTOPIA_TARGET=""\""qtopiawhereabouts\"""" -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQTOPIA_TRTARGET=""\""libqtopiawhereabouts\"""" -I/root/build-gta04/sdk/devices/root/qtmoko/devices/gta04/mkspecs/qws/linux-native-g++ -I/root/build-gta04/devices/root/qtmoko/devices/gta04/mkspecs/qws/linux-native-g++ -I/root/qtmoko/devices/gta04/mkspecs/qws/linux-native-g++ -I/root/build-gta04/src/libraries/qtopiawhereabouts/.uic -I/root/build-gta04/src/libraries/qtopiawhereabouts/.moc -I/root/build-gta04/src/libraries/qtopiawhereabouts -I/root/qtmoko/devices/gta04/ui/mobile/src/libraries/qtopiawhereabouts -I/root/qtmoko/devices/gta04/src/libraries/qtopiawhereabouts -I/root/qtmoko/ui/mobile/src/libraries/qtopiawhereabouts -I/root/qtmoko/src/libraries/qtopiawhereabouts -I/root/qtmoko/devices/gta04/include -I/root/build-gta04/sdk/qtopiacore/target/include -I/root/build-gta04/qtopiacore/target/include -I/root/build-gta04/sdk/include/qtopiawhereabouts -I/root/build-gta04/sdk/include/qtopiawhereabouts/module -I/root/build-gta04/sdk/include/qtopiabase -I/root/build-gta04/sdk/include/qtopiabase/module -I/root/build-gta04/include/qtopiabase -I/root/build-gta04/include/qtopiabase/module -I/root/build-gta04/sdk/include/qtopia -I/root/build-gta04/sdk/include/qtopia/module -I/root/build-gta04/include/qtopia -I/root/build-gta04/include/qtopia/module -I/root/build-gta04/sdk/include/sqlite -I/root/build-gta04/sdk/include/sqlite/module -I/root/build-gta04/sdk/include/md5 -I/root/build-gta04/sdk/include/md5/module -I/root/qtmoko/qtopiacore/qt/src/3rdparty/zlib -I/root/build-gta04/sdk/include/qtopiagfx -I/root/build-gta04/sdk/include/qtopiagfx/module -I/root/build-gta04/sdk/qtopiacore/target/include/QtSvg -I/root/build-gta04/qtopiacore/target/include/QtSvg -I/root/build-gta04/sdk/qtopiacore/target/include/QtSql -I/root/build-gta04/qtopiacore/target/include/QtSql -I/root/build-gta04/sdk/qtopiacore/target/include/QtXml -I/root/build-gta04/qtopiacore/target/include/QtXml -I/root/build-gta04/sdk/qtopiacore/target/include/QtGui -I/root/build-gta04/qtopiacore/target/include/QtGui -I/root/build-gta04/sdk/qtopiacore/target/include/QtNetwork -I/root/build-gta04/qtopiacore/target/include/QtNetwork -I/root/build-gta04/sdk/qtopiacore/target/include/QtCore -I/root/build-gta04/qtopiacore/target/include/QtCore -o /root/build-gta04/src/libraries/qtopiawhereabouts/.obj/qwhereaboutsfactory.o /root/qtmoko/src/libraries/qtopiawhereabouts/qwhereaboutsfactory.cpp
In file included from /root/qtmoko/src/libraries/qtopiawhereabouts/qwhereaboutsfactory.cpp:22:0:
/root/qtmoko/src/libraries/qtopiawhereabouts/qgpsdwhereabouts.h:37:17: fatal error: gps.h: No such file or directory
compilation terminated.

make[2]: make[2]: Leaving directory `/root/build-gta04'
*** [all] Error 1
make[1]: *** [build_gta04] Error 2
make[1]: Leaving directory `/root/qtmoko'
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2



>  
> > Q1: Is there a simple method to get the development cycle down to some
> > minutes or even sub-minute?
>  
> The best workflow i found is like:
>  
> 1/ install clear qtmoko image on some SD partition.
> 2/ work on new feature
> 3/ recompile the binary/.so library on PC

hm. how does this work? Just a single .so? Some special dpkg-buildpackage command?

I might have to study the instructions deeper.

> 4/ scp the recompiled binary to device
> 5/ start QtMoko (from SSH to see output), check if it works
>  
> It is very comfortable and fast.
>  
> > Q2: The next question is how to adapt QtMoko to newer kernels since I
> > assume that there are some dependencies - at least in the /sys file names.
>  
> Start QtMoko from terminal. It will spit out warning when something expected is not there.
>  
> Most of the sysfs paths are in devices/gta04 adaptation. Just grep from /sys in all the .cpp files, modify as needed and recompile.

Ok, that appears to be not very difficult.

>  
> > Q3: Another question comes from the idea that QtMoko should not only run on
> > the GTA02/04 devices but others as well. At least Letux 3704 and Letux7004,
> > but OpenPandora, Pyra and Neo900 are also nice candidates. Interested?
>  
> The "devices" directory is where the HW adaptations are.

Fine!

>  
> > Q4: This raises a follow-up question: does QtMoko (and the apps) adapt
> > automatically to different screen sizes (or orientations like Neo900)?
>  
> IMO no. It has different screen -> it's not the same device. But there is nothing preventing to share source code between similar devices.
>  
> Specifically the screen resolution: qtmoko uses xml for the whole phone UI design. This allows you to write your own GUI themes:
>  
> 	http://qtmoko.sourceforge.net/apps/category-themes.html
>  
> The themes probably could be written resolution independed, but when i tried e.g. on N900 it looked ugly.

Ok, that is something for deeper study.

>  
> > Q6: The next question goes @Radek (I hope he still reads here): do you plan
> > to continue this work, i.e. accept patches? Or should we start and
> > maintain a fork?
>  
> Doing fork is always encouraged with git. If you send me pull requests/patches i can merge them. I can also try to do releases if needed.

Ok. I will set up a git and publish the gitweb address.

>  
> > Q7: Finally, who is interested in developing and contributing towards
> > making QtMoko the most simple but greatest Telephony-GUI and helps to push
> > the packages to the mainline Debian?
>  
> I was thinking about debian mainlining but IMO it's not worth it. You'll have to spend huge amount of time on internal things that wont make QtMoko better for the end user. Even if you succeed the result will be 2 years outdated QtMoko. IMO it's better to stay out of debian and deliver frequent up to date always improved versions.
>  
> It's similar to kernel - if you wanted kernel for GTA04 from mainline debian - you would be stuck with 3.2 version.

Not necessarily. Debian will eventually upgrade the kernel as well. So in the two years we will not only have a newer QtMoko but also a newer kernel. If we upstream all changes before the 2 years have passed.

But I agree that this is a very thick piece of concrete to drill through...

BR,
Nikolaus

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.goldelico.com/pipermail/community/attachments/20140924/3250ed26/attachment.html>


More information about the Community mailing list