Thursday 29 May 2014

Qt 5.3.0 and Cubieboard

Qt 5.3.0 came out a few days ago, so I set some time aside to test it out on Cubieboard, like I had done with previous versions.

The cross-compilation works just the same, I've only tested the framebuffer procedure on Cubieboard A20 but basically it all cross-compiled and installed fine.

From the beginning, I've been interested in being able to build the sdcard image system from scratch, using the sunxi-bsp, linaro rootfs, the mali libraries, and finally the cross-compiled Qt libraries on top of it all.

This time around I decided to cut some corners and simplify the base image generation process. Considering that there's an "official" distribution out there - Cubian, I decided to save myself some time and use that.

Going through Cubian's resources, I grabbed the Cubian-base-r5-a20.img.

Cubian images are still supporting Mali r3p0, so I headed over to ssvb's materials on github and cloned his most recent sunxi kernel branch

git clone -b 20140116-mali-r3p2-01rel2 https://github.com/ssvb/linux-sunxi.git

From these sources, I used git to extract the specific commit where ssvb introduced support for r3p2-01rel2

git format-patch -1 5bf12905ff1faa38af4c47ff0752d3f5f12f5644

This commit changes a few files and adds a new directory in the kernel sources, targeted at r3p2-01rel2.

I cleaned the resulting patch a little, taking out the changes to the files in that new directory - which isn't present in Cubian kernel sources at this time, so might as well take them out, and just copy the whole dir into the Cubian kernel sources.

I got the Cubian kernel sources, applied my modified patch and copied over the additional r3p2-01rel2 directory - and then set out to cross-compile it, including modules.

Once that was done, the next step was to copy the uImage and modules binaries over to the Cubian-base-r5-a20 SD Card.

Booting up the system, I confirmed I now had a Cubian CLI image, for cubieboard A20, supporting r3p2-01rel2.

I moved on to installing the r3p2-01rel2 Mali userspace libraries as usual and then cross-compiling Qt 5.3.0 as usual.

Note: while cross-compiling the kernel was done with the Cubian recommended toolchain (code sourcery), cross-compiling Qt was still done using the Linaro toolchain - it's possible that cubian's also works, however there's a relevant step before running Qt's configure - fixLibraryPaths - and this step seems to work best with the Linaro toolchain.

I've uploaded the patches to my box.com account, hopefully I'll have the time soon to publish an image on the cubieforums account.

No comments:

Post a Comment