tag:blogger.com,1999:blog-199336232024-03-05T12:34:32.059-08:00mickensMichael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.comBlogger24125tag:blogger.com,1999:blog-19933623.post-17914852879683034402016-11-22T13:42:00.002-08:002016-11-22T14:11:53.829-08:00It is time to throw in the towel.Those of you who know me knows that I have serious health issues. I am suffering from psychosis. It has been a long journey and I would like to thank everyone that helped me over the years.<br />
<br />
It is really a tough decision to make, but I need strength to live a normal life. I have spent 3 months/year at hospital and that simply isn't doable. <br />
<br />
However, I will not disappear from earth. I am going to make whatever I can to continue to learn and practice technology. If anyone who reads this is interested in having something done, feel free to ask me questions. I we are lucky I might be able to do something on a hobby basis.<br />
<br />
Feel free to send me your prototypes and the like. Who knows, I have been known to make cool things with new hardware :)<br />
<br />
<br />
Also check out my SoundCloud page: <a href="https://soundcloud.com/michael-grunditz">https://soundcloud.com/michael-grunditz</a><br />
<br />
<br />
I need to mention three people that helped me in a extraordinary way.<br />
<br />
(in no particular order)<br />
<br />
Kristoffer Andersson Prevas<br />
William H. Buck (aka Bill) Genesi<br />
Stefan Melander NXP (Freescale)<br />
<br />
*Goes back to stare on his 200 lines of ARM assembler code ... It will be fun :)Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-29578807165209713712016-01-11T02:58:00.000-08:002016-01-11T02:58:33.176-08:00Qt Declarative 2d build explainedThe source code posted at <a href="https://github.com/mgrunditz/qtdeclarative-2d" target="_blank">Sources</a> is built against Qt 5.3.2 . I hope to be able to update to newer versions later on. The problem with this is that Quick2 changes a lot and it is very hard to keep up for me, help is most welcome.<br />
<br />
Prerequisites:<br />
<br />
<ol>
<li>A working toolchain for your ARM target.</li>
<li>A system rootfs with headers etc on your build host.</li>
<li>The 5.3.2 distribution of Qt</li>
</ol>
Build process:<br />
<br />
<ol>
<li>Extract the Qt source archive.</li>
<li>Please read the generic build instructions at <a href="http://qt.io/" target="_blank">qt.io</a> and configure the sources for "linux-arm-g++". *hint* use the -sysroot argument to point to your rootfs. You will also need to add -no-xcb and -qpa linuxfb.</li>
<li>Build Qt (make)</li>
<li>Test Qt on your target with a simple widget application for example wiggly.</li>
<li>If the test fails, check that your /dev/fb0 is working and go thru the configure step again. Once you have your Qt working move on to next step.</li>
<li>Clone Qt Declarative 2d into your top Qt source tree. ( git clone -b asm https://github.com/mgrunditz/qtdeclarative-2d.git )</li>
<li>Enter the resulting directory and run qmake from your build tree ( ../qtbase/bin/qmake )</li>
<li>Build it with make.</li>
<li>Modify src/quick/items/qquickitem.cpp to your target screeen resolution.</li>
<li>Modify src/quick/items/alphablender.S to match your screenwidth*4. *hint* check the comments.</li>
<li>Redo make.</li>
<li>make install</li>
<li>Once you have your new binaries on your target it is time for some testing. You should have a program "qml" in your $prefix/$qt/bin directory. Do a simple hello world qml script and run it with the qml program.</li>
<li>You might have problems with missing components. Check that your build includes imports, and tools.</li>
<li>If your "Hello World" works you are ready to try out more complex applications.</li>
</ol>
<br />
Problems and bugs:<br />
<br />
The most important issue is that Quick2 assumes that you can have larger window than your screen. I have tried to handle this in qquickitem.cpp and I have it semi working with 720p but it still crashes sometimes. Obviously it doesn't crash if your application stays inside your screen resolution.<br />
<br />
The screen dimensions can be fetched from the qquickswindow object. Keep in mind that it is my variables you want to use, screenwidth screenheight.<br />
<br />
The rest is a pure math exercise.<br />
<br />
If you have any questions you can always email me at <a href="mailto:michael.grunditz@prevas.se" target="_blank">michael.grunditz@prevas.se</a>.<br />
<br />
Thank you for reading this far and on from all of us at:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2SdZ7sGj6oyR2qxbtc8ltqmM78-FQqxbXn4reOFcmqrzoJWY0EFgh56XKjUnr0o2k9rWyWArbfO4aOG_uZEiUYu1hEPgmTHAZ-xguIm8pEQdMQ0fGvPTVq76osIl6nuDYm9MI/s1600/Prevas+logo-cent.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2SdZ7sGj6oyR2qxbtc8ltqmM78-FQqxbXn4reOFcmqrzoJWY0EFgh56XKjUnr0o2k9rWyWArbfO4aOG_uZEiUYu1hEPgmTHAZ-xguIm8pEQdMQ0fGvPTVq76osIl6nuDYm9MI/s320/Prevas+logo-cent.jpg" width="320" /></a></div>
Good luck!Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com1tag:blogger.com,1999:blog-19933623.post-65894522008192910182015-10-09T06:52:00.000-07:002016-01-05T03:03:43.004-08:00QtDeclarative-2d first code drop!I have the pleasure to announce the first sourcecode drop of our qtdeclarative (Quick2) renderer for system without GPU's.<br />
<br />
<a href="https://github.com/mgrunditz/qtdeclarative-2d" target="_blank">The sources</a><br />
<br />
The first push contains the branch "asm" which is a version for ARM systems only. If you want to try it on your system, please note the following:<br />
<br />
The screen resolution is hardcoded in QQuickItem and in alphablender.S.<br />
<br />
The screen needs to be in 32-bit mode ( fbset -depth 32)<br />
<br />
More branches with more generic support will follow soon.<br />
<br />
So, instead of complaining that it is not working for you , or that it looks bad , go fork it and make pull requests. The whole idea with releasing this as a opensource project is to make it a community project. More details about how it is built up will be posted here in next week.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUTGDjjh0-cMpzdT4RNK9228FkkdX5mPuWoJArUMAeaZIuYiXtwr-GbodQRKT7NvOM4ZiddaRGABsN9aGgorYm4dLGIgRhDH1cdn4Mvp1HL_t2YAgOgWZ5s_2L8LTy4jj8yIt7/s1600/flir_logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUTGDjjh0-cMpzdT4RNK9228FkkdX5mPuWoJArUMAeaZIuYiXtwr-GbodQRKT7NvOM4ZiddaRGABsN9aGgorYm4dLGIgRhDH1cdn4Mvp1HL_t2YAgOgWZ5s_2L8LTy4jj8yIt7/s320/flir_logo.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
This work is funded by <a href="http://www.flir.com/" target="_blank">FLIR</a> to investigate the possibilities of running a rich UI on simple devices with high performance.<br />
<br />
<br />
<img alt="Freescale Semiconductor" src="http://www.freescale.com/files/graphic/icons/freescale-logo.png" /><br />
<br />
The reference hardware is <a href="http://www.freescale.com/" target="_blank">Freescale</a> i.MX7, but is also tested on much smaller hardware with ARM9 cores.<br />
<br />
If you find this effort interesting , have suggestions, want to certify it for your hardware, please tell me:<br />
<br />
michael.grunditz@prevas.se , <a href="http://www.prevas.com/" target="_blank">Prevas</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn6hIOJcPAK6hVR27W1b8Kuo5-vl_ZnRdOkkxfG_37WQfgitLiweeWPpoHWnO15-pp668su58EKd1718JOnVpCUCjJI9KHplAZy9L0jZV0nsXjkeR1iONnNsGi0KXkj3iHiq1U/s1600/Prevas+logo-cent.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn6hIOJcPAK6hVR27W1b8Kuo5-vl_ZnRdOkkxfG_37WQfgitLiweeWPpoHWnO15-pp668su58EKd1718JOnVpCUCjJI9KHplAZy9L0jZV0nsXjkeR1iONnNsGi0KXkj3iHiq1U/s320/Prevas+logo-cent.jpeg" width="320" /></a></div>
<br />
<br />
Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com3tag:blogger.com,1999:blog-19933623.post-50626680657052845452015-08-19T08:50:00.000-07:002015-08-19T08:50:58.582-07:00i.MX6 Qt Quick2 display mirroring and scalingThis is about screen mirroring and scaling with Qt Quick2 content on the i.MX6.<br />
<br />
<br />
The way I did it was to use the IPU's to scale and copy out a grabbed screen image to the second display. The event mechanism was triggered by a Quick property in the Window item.<br />
<br />
The linked file isn't the exact source code that went into production, but it shows the how the mirror / scaling can be done. It contains a nasty goto/label thing ... useful in the context since if something breaks, the IPU tasks needs to be shutdown and not to be started again. <br />
<br />
The performance is quite good thanks to the high performance IPU's. There is some load on the CPU when doing the "grab", but it isn't a problem on a Quad i.MX6<br />
<br />
<br />
The sourcecode below can be used under the LGPL v2 or later license. The complete code package is available on request.<br />
<br />
<br />
<br />
<a href="http://www.update.uu.se/~micken/qt/qsgthreadedrenderloop.cpp" target="_blank">qsgthreadedrenderloop.cpp</a>Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com3tag:blogger.com,1999:blog-19933623.post-18706839238221606992015-08-14T00:21:00.001-07:002015-08-14T08:04:12.453-07:00Qt Declarative 2d on i.MX7Time for some updates on the Qt Declarative 2d project.<br />
<br />
I have recently focused on changing the rendering mechanism to a custom frame buffer hitting solution. The heart of it is a ARM assembler routine for alpha blending that composes the the graphics on to the "window" backbuffer. The assembler runs in circles around Qt's drawImage,<br />
which was the primary composing mechanism I used before the assembler routine.<br />
<br />
I am also lucky to have a i.MX7 board for certifying Qt Declarative 2d on. It runs very nicely.<br />
<br />
The rssnews demo running on the i.MX7 using Qt Declarative 2d with the new rendering engine:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ9DkXI-7J082pLjwTEj98SRChIOeoYVOHq9KONWmxV3TViYrViqSESyiFVujfgI5P2VqxsaA1Hld4AiMZNG4Md-yoSRq8tB_XuNz6IBCHAYop5dots2TvfqLlG44j92fMzPuJ/s1600/IMG_20150629_135719.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ9DkXI-7J082pLjwTEj98SRChIOeoYVOHq9KONWmxV3TViYrViqSESyiFVujfgI5P2VqxsaA1Hld4AiMZNG4Md-yoSRq8tB_XuNz6IBCHAYop5dots2TvfqLlG44j92fMzPuJ/s320/IMG_20150629_135719.jpeg" width="320" /></a></div>
<br />
<br />
If you have hardware that you would like that to be certified, please contact me at:<br />
<br />
michael.grunditz@prevas.se.Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-71662189028007355122015-07-25T02:17:00.000-07:002015-07-25T12:23:57.922-07:00Vacation "Work"It is vacation time this month and I have spent a lot of time with on of my passions, namely:<br />
<b>The Sinclair QL</b> , or rather its operating system QDOS and its successor SMSQ/E.<br />
<br />
The main quest has been to get a dedicated system. I don't have any original QL, they went away many years ago. SMSQ/E is available for many platforms, including Atari ST/TT. I have a Atari 1024STe so I picked that for my first test. Sadly the current builds of SMSQ/E didn't work on it. The testing resulted in more fun! I started to debug SMSQ/E using the sources and the Hatari emulator.<br />
<br />
In the meantime I figured out a alternative. The most well known SMSQ/E capable emulators is <a href="http://www.kilgus.net/qpc/index.html" target="_blank">QPC</a> . They recently became freeware and I encourage you to try them out. Since I wanted a machine that is dedicated to QL computing I opted for the older DOS QPC1. I found a Celeron 400Mz PC under my desk (!) that have a CF IDE adapter and runs DOS. I took the CF card and plugged it into my CF reader and extracted QPC1 to it from my Mac. It worked on first try in the DOS pc.<br />
<br />
QPC1 doesn't multitask, it completely takes over the machine. That was exactly what I wanted.<br />
I am currently busy with getting up a decent install of QL software, slow progress but I am getting there.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi57yxEgvmOXnZZ35kroe8rP6V1ws7_QtolkXwqcuLccXU5f1JSAh8F8BIhQDofXKAL9rWAxWSZSijpKpZtWK1X5i7r_YQW_I3b9NM6GDFyPrJn_oUjWQpvr7_huj_RAvWh8OfB/s1600/IMG_20150724_160142.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi57yxEgvmOXnZZ35kroe8rP6V1ws7_QtolkXwqcuLccXU5f1JSAh8F8BIhQDofXKAL9rWAxWSZSijpKpZtWK1X5i7r_YQW_I3b9NM6GDFyPrJn_oUjWQpvr7_huj_RAvWh8OfB/s320/IMG_20150724_160142.jpg" width="320" /></a></div>
<br />
<br />
And on Atari (old smsq/e) :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSO3ea_ti-1drrGsLqHW2-dFUDWyN92QfJ0TmCimn1yD_8PdAselCjpARPAsOSLreDKbFc9uBKUkfd4q2RvJHPWFjInRpW7Qa7XwYCNKidFTGml9-akotW0I5BLZ23JHjScyZN/s1600/IMG_20150725_201216.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSO3ea_ti-1drrGsLqHW2-dFUDWyN92QfJ0TmCimn1yD_8PdAselCjpARPAsOSLreDKbFc9uBKUkfd4q2RvJHPWFjInRpW7Qa7XwYCNKidFTGml9-akotW0I5BLZ23JHjScyZN/s320/IMG_20150725_201216.jpg" width="320" /></a></div>
<br />
<br />Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com6tag:blogger.com,1999:blog-19933623.post-89675177650008744722015-02-12T00:02:00.002-08:002015-02-12T00:02:58.398-08:00Photo on Topas 910 (QtDeclarative-2d)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcGfn8l8C3_w1aJd7xYLZDaS9bkpKhhzSaoXh6O0QQoTkxWtZnqA3r1Wjb58X-HL9_-utpGPwU26jA3cJTRYzakVYqD34quHz-fU2zcZsn_DH7Iia1R9GgWfczfgTIEmTvFgr3/s1600/calc_topas910.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcGfn8l8C3_w1aJd7xYLZDaS9bkpKhhzSaoXh6O0QQoTkxWtZnqA3r1Wjb58X-HL9_-utpGPwU26jA3cJTRYzakVYqD34quHz-fU2zcZsn_DH7Iia1R9GgWfczfgTIEmTvFgr3/s1600/calc_topas910.jpg" height="320" width="240" /></a></div>
<br />
<br />
This shows the calculator demo running on slow and old Toshiba Topas 910.Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-21221426759142803722015-02-09T02:17:00.000-08:002015-02-09T06:51:10.143-08:00QtDeclarative on platforms without GLES (Quick2)We ,Prevas (<a href="http://www.prevas.com/">http://www.prevas.com</a>), have been working on a yet to be released project. Our goal is to have a Quick2 compatible Qt Declarative framework for targets without GLES enabled GPU's. The basic design is:
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1NwVPIpiLfxDw_8VE9EIg8WWPQp3glIbHD63J7vS870XvJQl9xEgTyGcCuGGVSccznQ4V2jy7GMRI59BZ4cGfhML8on6l9KyPaMNgKt0scYD5Vp3n8XQgkvgpUCDEpjDYw3iZ/s1600/qtdeclarative-2d-block.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1NwVPIpiLfxDw_8VE9EIg8WWPQp3glIbHD63J7vS870XvJQl9xEgTyGcCuGGVSccznQ4V2jy7GMRI59BZ4cGfhML8on6l9KyPaMNgKt0scYD5Vp3n8XQgkvgpUCDEpjDYw3iZ/s320/qtdeclarative-2d-block.png" /></a></div>
* The application is a standard Quick2 QML application that can be created with QtCreator.<br />
* The QML code runs inside the standard unaltered QML engine.<br />
* A QML application can be described as a tree of QQuickItems. In the GLES QtDeclarative those are tied to GLES shaders. Within this implementation we have replaced the shaders with Qt 2d drawing methods.
When a QQuickItem is shown on the screen it renders itself directly to the QPA back buffer. In this way we can skip a lot of abstraction layers compared to using widgets.<br />
<br />
<br />
The result is that we can run many of the Quick2 examples and demos on small ARM targets at a decent speed and with a relatively small cpu usage. The performance can be compared to running Quick2 software rendered on a PC.<br />
<br />
This implementation will be , in case of release, pushed to gitorious.org probably with the LGPL license. If someone at <strike>Digia</strike> "The Qt Company" reads this and have any questions and or objections about the license, just contact me.<br />
<br />
If you are interested to get this project come out of our drawers, leave a comment here and I will contact you. We can help you to adopt this to your hardware and possibly also tune QPA backends for different GPU configurations and even to GPU less targets.<br />
<br />
Please note that this project has no connections with and was started long before anything was known about: <a href="http://blog.qt.io/blog/2015/01/22/introducing-the-qt-quick-2d-renderer/">http://blog.qt.io/blog/2015/01/22/introducing-the-qt-quick-2d-renderer/</a>Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com3tag:blogger.com,1999:blog-19933623.post-48105151733709792042014-07-21T02:38:00.001-07:002014-07-23T01:40:12.312-07:00 Qt for small systems Qt has gain a lot of features, but most of them are targeted for cpu/gpu's that are very powerful. I have been working on a small windowing system with Qt on linux framebuffer. I hope it will provide a way to fully us widgets again. The problem with the linuxfb plugin is that it doesn't work with popup windows etc. With a windowing system you can use it just like you could with the old QWS system.
The plan is to do something with a very low footprint, making it useful on ~200Mhz systems with limited amount of ram.
EDIT.. It seems like you can run Wayland on pure framebuffer , I have completely missed that progress.
I will try it out , and if it works well with QtWayland , I will go with that.
But the thing that I am writing is fun so I will continue it anyway ! :)Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com4tag:blogger.com,1999:blog-19933623.post-55837094160945975792014-02-17T09:09:00.001-08:002014-02-17T09:09:39.823-08:00My thoughts about Qt on the i.MX series<body>I have been tinkering with Qt on the i.MX6/53/51 platforms for some time now. It has been quite an adventure. I started up with a plain QWS on<br />
the i.MX51. I felt that the drawing was much faster than on X11 and I found a old application , Xqt. Xqt is a Xwindows server for running on Qt.<br />
It was designed for Qtopia running on Zaurus and friends. It was written for Qt2 so it needed some porting efforts to be able to run on Qt4.<br />
Xqt was for me a big win. Xwindows actually rendered faster on top on Qt.<br />
<iframe frameborder="0" height="333" src="https://www.flickr.com/photos/21022088@N07/4367860162/player/f943cf7f4b" width="500"></iframe><br />
<br />
On the photo above you can see Gnome running in QWS on a i.MX51 based computer made by Genesi (http://www.genesi-usa.com)<br />
The next step for me was to get GLES working on Qt, My first effort was to create a QWS plugin that rendered all its graphics with<br />
GLES. It also provided a QGlscreen , so the hello_es example worked. The problem with QWS and GLES is that you only can use<br />
GLES in fullscreen mode ,which means that there is no way to add widgets in a normal way. I did not like that fact .<br />
So I did a "hack" to be able to show "hello_es" as it should be displayed:<br />
<br />
<iframe frameborder="0" height="315" src="https://www.youtube.com/embed/bruUIjWBPrw" width="560"></iframe><br />
<br />
Some of you participated in a beta test of this. Unfortunately It had some problems and after some testing I decided not to release it.<br />
<br />
So all work done that far was on MX51/53. What about MX6?<br />
<br />
When I got my hand on a i.MX6 board , Qt4 was on its way out and Qt5 was stepping in. Qt5 comes with EGLFS QPA backend<br />
which makes it easy to display GL content on the framebuffer. The biggest issue I have with Qt5 is the lack of support for widgets<br />
on a embedded display. The only way I could control GL content on a framebuffer display was with QtQuick /Quick3d. <br />
<br />
So what's next?<br />
<br />
My current plan is to focus on getting widget/c++ back to framebuffer displays. If you have tried to use the LINUXFB backend<br />
in Qt5 you know what I mean. A alternative is to use the DirectFB backend , but it behaves almost as bad. I have customers <br />
using Qt on systems that don't use EGL and for the moment I can't recommend them to use Qt5 , which is very sad.<br />
</body>Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com6tag:blogger.com,1999:blog-19933623.post-65033939125471087462012-08-24T08:02:00.000-07:002015-08-14T00:24:42.685-07:00Qt5 build process for i.MX 5x -- important update!!<h3>
A short howto how to build Qt5 for Freescale i.MX 5x</h3>
<div>
<br /></div>
<h4>
The original post here is completely outdated!!</h4>
<div>
<br /></div>
<div>
Right now you only need a sys root with the GLES headers/libraries in it.</div>
<div>
Then configure/build for linux-arm-g++. That's it!</div>
<div>
Simple and fun!!</div>
<h4>
<br /></h4>
<h4>
<br /></h4>
<h4>
Prerequisites:</h4>
<div>
<br /></div>
<div>
A recent ltib envioronment , that you configured and built for your target. You are going to use the rootfs for the Qt5 dependencies. If you at a later stage want to build webkit you also need libicu for your target installed in your rootfs. If you want GLES functionality EGL and GLES2 needs to be in the rootfs. </div>
<div>
<br /></div>
<div>
1) Get the latest Qt5 from the official GIT repository:</div>
<div>
<span style="background-color: white; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 14px;">git clone git</span><span class="sy0" style="background-color: white; color: #363534; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 14px; margin: 0px; padding: 0px;">:</span><span class="co1" style="background-color: white; color: green; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 14px; margin: 0px; padding: 0px;">//gitorious.org/qt/qt5.git qt5</span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;">2) Create a build directory somewhere , for example :</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> /home/micken/qtbuild</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;">3) Go to the your newly cloned Qt5 tree and do the following command:</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> </span></span><span style="background-color: white; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 14px;">perl init</span><span class="sy0" style="background-color: white; color: #363534; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 14px; margin: 0px; padding: 0px;">-</span><span style="background-color: white; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 14px;">repository</span></div>
<div>
<span style="background-color: white; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 14px;"> This will download the sourcecode.</span></div>
<div>
<span style="background-color: white; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 14px;">3) Inside the sourcetree you can find a directory called qtbase. </span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> This directory looks like the root directory of a Qt4x source tree.</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;">4) Find the file mkspecs/devices/linux-imx6-g++/qmake.conf inside qtbase.</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;">5) Edit it to find your toolchain and rootfs. In order to build for i.MX</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> 5x you need to comment out EGLFS_PLATFORM_HOOKS_SOURCES.</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> Note the configure line at the top of the file and copy it to a textfile</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> and modify it to reflect your environment.</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;">6) Go to your created build directory and issue the configure script from the</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> with the textfile you created. ( sh /path/to/qt5/qtbase/yourtextfile )</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;">7) After this you should be able to just do make;make install</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;">8) The other libraries / examples can be built by using your installed Qt</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> make sure it uses the qmake from the installed Qt.</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;">9) To install Qt5 on target , make a directory named the same as your</span></span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"> installation </span></span><span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: x-small; line-height: 14px;">path (important) and copy the lib and plugins directories to it.</span></div>
<div>
<span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: x-small; line-height: 14px;">10) Try some examples ,you can start them like this:</span></div>
<div>
<span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: x-small; line-height: 14px;"> ./hellogl_es2 -platform eglfs.</span></div>
<div>
<span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: x-small; line-height: 14px;"><br /></span></div>
<div>
<span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: x-small; line-height: 14px;">Have fun with Qt5. I am working on a new graphics platform plugin that will integrate 2D and 3D on the i.MX. More about that later.</span></div>
<div>
<span style="font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace; font-size: x-small;"><span style="line-height: 14px;"><br /></span></span></div>
Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com5tag:blogger.com,1999:blog-19933623.post-65899293911961695102012-08-05T00:54:00.002-07:002012-08-05T00:54:19.647-07:00Qt on the i.MX revisitedI am working on bringing a good implementation of Qt5 to the i.MX series of processors. From the i.MX 51 to the new i.MX 6. This is a short video showing the nested demo of the qt3d api.<br />
<br />
<br />
<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/iVDKr18E6l4" width="560"></iframe>
<br />
<br />Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-43916340605822829222012-03-18T12:24:00.000-07:002012-03-18T12:24:59.732-07:00Time for some Amiga buisnessThis year will be a year full of Amiga coding. Some MorphOS specific tasks and a Amiga:ish Word Processor with odt capabilities.<br />
<br />
I am currently working on rendering the text from a odt file in a MUI (Magic User Interface) custom class.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://safir.amigaos.se/bildgalleri/users2/12127_odtview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://safir.amigaos.se/bildgalleri/users2/12127_odtview.png" width="136" /></a></div>Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-66845022843052384712010-09-08T13:40:00.000-07:002010-09-08T13:47:13.361-07:00Blog rebootSome projects I am working on now:<div><br /></div><div>Qt:</div><div><br /></div><div>Qt GL Driver for the Efika MX systems.</div><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/jGgNrrNctY8?fs=1&hl=sv_SE"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/jGgNrrNctY8?fs=1&hl=sv_SE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object><div><br /></div><div><br /></div><div><br /></div><div>Android:</div><div><br /></div><div>Android port for the Efika MX systems.</div><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/ErEjA7X8Fic?fs=1&hl=sv_SE"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/ErEjA7X8Fic?fs=1&hl=sv_SE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object><div><br /></div><div><br /></div><div><br /></div><div>Barcode scanning and printing @ nSpike:</div><div><br /></div><div>Ticket printing engine for Swebus (sweden) and a roadtoll barcode scanning service.</div><div>Sorry no pictures or videos.</div><div><br /></div>Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-26931592874585785232009-12-17T12:26:00.001-08:002009-12-17T12:26:49.612-08:00Gtalk Video on Linux /Arm<div style="float: right; margin-left: 10px; margin-bottom: 10px;"><a href="http://www.flickr.com/photos/21022088@N07/4192879708/" title="photo sharing"><img src="http://farm5.static.flickr.com/4041/4192879708_71eaa172ac_m.jpg" alt="" style="border: 2px solid rgb(0, 0, 0);" /></a><br /><span style="margin-top: 0px;font-size:0.9em;" ><a href="http://www.flickr.com/photos/21022088@N07/4192879708/">smallgtalkwin</a><br />Originally uploaded by <a href="http://www.flickr.com/people/21022088@N07/">micken1</a></span></div>This is one of many things I am working on now.Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-49298784609953907612009-06-14T23:22:00.000-07:002009-12-17T11:42:11.769-08:00ProgressDo not despair , I am still working on Anubis and I am making progress. However I have a lot of other projects that keeps me busy.Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-71989025003289814992009-04-26T04:45:00.000-07:002009-04-26T04:48:57.344-07:00SimpleMail for AROS updateUnfortunately I have some problems with AROSTCP, I cannot transfer more than 50M without a crash , and since my inbox is larger than 50M , SimpleMail can't fetch it. However if I restart AROSTCP it can continue to fetch mail. So SimpleMail seems to work just fine.<br /><br />I will not relase the new version until this problem is solved.Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-37462730225323902592009-03-20T10:44:00.000-07:002009-03-20T10:46:39.667-07:00Catch the logoToday I wrote a small demo that uses the touchscreen to move around a bitmap window.Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-40716095187530936652009-03-18T06:06:00.000-07:002009-03-18T12:01:59.871-07:00Anubis on ARM ?Not exactly but a beginning of a technology that might be used in Anubis, especially on small devices. I talk about graphics subsystem which displays on the fbdev device in linux.<br /><br /><a href="http://bbrv.blogspot.com">bbrv blog</a><br /><br />:)<br /><br /><br /><a href="http://www.flickr.com/photos/21022088@N07/3360073421/" title="anubispngarm by micken1, on Flickr"><img src="http://farm4.static.flickr.com/3283/3360073421_034a9000f5_m.jpg" alt="anubispngarm" width="240" height="180" /></a><br /><br />A photo on the first try on displaying a Anubis logo on the ARM board , gives a good look of the board itself.<br /><br /><a href="http://www.youtube.com/watch?v=puGidVn1kE0">Anubis logo movieclip</a><br /><br /><br />A very low quality movie on three Anubis logos scrolling on the tiny lcd (you can only see white rectangles , but they are logos I promise :))Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-1566719876217205812009-03-07T13:52:00.000-08:002009-03-07T14:21:57.404-08:00My take on the "A#?" futureWhen I look back I see a computer platform that was superior to every other. It had amazing hardware and a fast multitasking operating system. It could have been the standard for personal computers. But it failed , not only because commodore was doing bad things , but mainly because of IBM. IBM was the main factor in computer development , and when it launched the idea of the "pc" not even Apple had a chance.<br /><br />Anyway history moved on and after many turns we ended up with three "A" platforms plus emulators. We have the official AmigaOS , MorphOS and AROS.<br />I think that this actually is a good thing. It gives the users the possibility to pick whatever they like and gives the developers the opportunity focus on different areas. I think that the classic "A" platforms listed aboves still have a important role to fill together with emulators.<br /><br />I for myself is a happy MorphOS user and I have no intention to leave that platform.<br /><br />However as a developer I have decided to go in another direction.<br /><br />I still believe that the "A" way of doing things is something that users want. But I also believe that the OS base is very outdated and suffers from several weaknesses. So I have decided to go with the Anubis project.<br /><br />Anubis aims to be a "A" like system but with the Linux kernel as a foundation. I really don't want another Linux distribution , but a new OS. I hope that old "A" users will feel at home in the Anubis environment rather than Linux users. This is a requirement for me.<br /><br /><br />+++Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-17223330696092371332009-03-07T03:22:00.000-08:002009-03-07T03:36:45.823-08:00New versions of SimpleMail for AROSI will soon release a new version of SimpleMail for AROS , with various improvements.<br /><br />* Use of the "new" SimpleMail listclass<br />* Enabled the quick search functionality<br />* Updated to the latest version<br />* PPC version now available , currently only on hosted , I still have problems with<br />native<br /><br />* .. and .. more<br /><br />screenies , first from x86 , the transparency comes from 3d effects in linux the other is from ppc/hosted showing SimpleMail and AMosaic.<br /><br /><br /><a href="http://www.flickr.com/photos/21022088@N07/3233399359/" title="smnew by micken1, on Flickr"><img src="http://farm4.static.flickr.com/3384/3233399359_96000b0d6e_o.png" alt="smnew" width="800" height="600" /></a><br /><br /><a href="http://www.flickr.com/photos/21022088@N07/3249356897/" title="arosinterppc by micken1, on Flickr"><img src="http://farm4.static.flickr.com/3001/3249356897_2a1b2612b7_o.png" alt="arosinterppc" width="1252" height="987" /></a>Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-49020055503820158882009-03-07T02:49:00.000-08:002009-03-07T13:49:50.100-08:00Not officialMy posts here does not necessarily represent the official Anubis team, it is only my thoughts and experiments that may become a part of Anubis or not.Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-76206961512175184872009-03-07T02:29:00.000-08:002009-03-07T02:32:08.056-08:00Tests with xcbThis is a old screenie showing my test windowmanager built with xcb and cairo/xcb.<br /><br /><br /><a href="http://www.flickr.com/photos/21022088@N07/2982713844/" title="anubis red and black by micken1, on Flickr"><img src="http://farm4.static.flickr.com/3033/2982713844_a47547a2dc_o.png" alt="anubis red and black" width="1280" height="1024" /></a>Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0tag:blogger.com,1999:blog-19933623.post-36350910399622637172009-03-07T02:00:00.000-08:002009-03-08T10:55:21.602-07:00fbdev graphics subsystemI have started to write a graphics subsystem for fbdev the linux kernel framebuffer.<br />So far I got:<br /><br />* Bitmap abstraction<br />* Object oriented using ObjC<br />* Automatic expose handling<br />* Display server with client lib communicating over UNIX sockets<br />* PNG loading with libpng<br />* Font rendering with Freetype<br />* .. and some more stuff..<br />And of course a couple of screenies, stay tuned for videos showing animation and stuff :)<br /><br /><a href="http://www.flickr.com/photos/21022088@N07/3334308977/" title="fttest by micken1, on Flickr"><img src="http://farm4.static.flickr.com/3352/3334308977_597e583550_o.png" alt="fttest" width="1024" height="768" /></a><br /><br /><a href="http://www.flickr.com/photos/21022088@N07/3284595351/" title="fbout by micken1, on Flickr"><img src="http://farm4.static.flickr.com/3583/3284595351_c7cd0d9638_o.png" alt="fbout" width="1024" height="768" /></a>Michael Grunditzhttp://www.blogger.com/profile/01370375356914372783noreply@blogger.com0