This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone. It is similar to the [[Qtopia on Neo1973]] page.

This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone. It is similar to the [[Qtopia on Neo1973]] page.

−

{|align=right

+

__TOC__

−

|__TOC__

+

−

|}

+

== Current status ==

== Current status ==

+

+

{{note| The most recent version is [[Qt Extended Improved]]. See [[Qt Extended Improved]] (named also QtEI or QTEi) page to get more information on this updated and improved version Distro based on Qtopia. }}

+

+

* On 3 March 2009 Qt software has discontinued Qt Extended. See http://www.qtsoftware.com/about/news/qt-software-discontinues-qt-extended for more details.

+

+

* Qt software announced that has discontinued QT Extended as a standalone product, integrating it into QT.

+

+

+

Check [http://wiki.openmoko.org/wiki/Qt_Extended_4.4.3 QtExtended 4.4.3] for more info on the latest (and final) release.

On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 & current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.

On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 & current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.

See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions. After you complete the "Formatting the SD Card" steps, return here and execute the following:

See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions. After you complete the "Formatting the SD Card" steps, return here and execute the following:

Line 57:

Line 70:

This will set you up properly for the installation of the root filesystem and the kernel in the steps below.

This will set you up properly for the installation of the root filesystem and the kernel in the steps below.

Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]]. However, in the mount command, substitute the image filename for "/dev/mtdblock0".

Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]]. However, in the mount command, substitute the image filename for "/dev/mtdblock0".

−

==== Creating a compressed tarball ====

+

==== Create a compressed tarball ====

Next, tar up the root filesystem:

Next, tar up the root filesystem:

Line 78:

Line 89:

Where ''<mountpoint>'' is the location where the jff2 filesystem was mounted. Note the space and the period after the mountpoint.

Where ''<mountpoint>'' is the location where the jff2 filesystem was mounted. Note the space and the period after the mountpoint.

−

==== Installing Root Filesystem ====

+

==== Install the root filesystem ====

Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:

Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:

Line 95:

Line 106:

'''''Note:''''' the last step removes the kernel image from the second partition. For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.

'''''Note:''''' the last step removes the kernel image from the second partition. For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.

−

==== Installing Kernel ====

+

==== Install the kernel ====

From your Linux box, rename <tt>uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin</tt> to <tt>uImage.bin</tt> and copy it to the boot directory on the first partition of the MicroSD card. Depending on the version of U-Boot you have installed, this may not work. To prevent any possible issues, copy it to the <tt>/media/card</tt> directory as well. There is plenty of room on the first partition to have <tt>uImage.bin</tt> in both locations.

From your Linux box, rename <tt>uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin</tt> to <tt>uImage.bin</tt> and copy it to the boot directory on the first partition of the MicroSD card. Depending on the version of U-Boot you have installed, this may not work. To prevent any possible issues, copy it to the <tt>/media/card</tt> directory as well. There is plenty of room on the first partition to have <tt>uImage.bin</tt> in both locations.

+

+

Some versions of u-boot look for <B>uImage</B> and not <b>uImage.bin</b> you may have to remove the .bin extension to get it to boot.

<pre>

<pre>

Line 105:

Line 118:

</pre>

</pre>

−

==== Pointing Qtopia to the SD Card ====

+

==== Tell Qtopia it is running from the SD Card ====

Lorn Potter on the mailing lists pointed this out:

Lorn Potter on the mailing lists pointed this out:

Line 115:

Line 128:

Another user's solution to this is the following:

Another user's solution to this is the following:

−

Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf

+

Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf (the file path seems to have changed to /opt/Trolltech in newer versions)

Create an 8 MB partition for the kernel and use the remaining space for the root file system.

+

The first step is to create an 8 MB partition for the kernel and use the remaining space for the root file system. Proceed as follows:

Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.

Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.

Line 163:

Line 177:

</pre>

</pre>

−

==== Get the latest version of Qtopia ====

+

==== Download the latest Qt Extended ====

Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:

Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:

Line 195:

Line 209:

<pre>

<pre>

sync

sync

−

sudo umount /dev/sdb2

+

sudo umount /dev/sdb1

</pre>

</pre>

==== Copy the jffs2 root file system to the microSD card ====

==== Copy the jffs2 root file system to the microSD card ====

−

First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:

+

That step is a bit complicated. First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:

<pre>

<pre>

Line 224:

Line 238:

</pre>

</pre>

−

Create a mount point, mount the fake MTD device, and check that the contents seem right:

+

Create a mount point, mount the fake MTD device, and check that the content seems right:

<pre>

<pre>

Line 243:

Line 257:

sudo tar -cf - . | (cd /media/rootfs && sudo tar -xpvf -)

sudo tar -cf - . | (cd /media/rootfs && sudo tar -xpvf -)

</pre>

</pre>

+

+

Warnings about "implausibly old time stamp" don't seem to cause any trouble.

Use "sync" to make sure that all data is written to the microSD card:

Use "sync" to make sure that all data is written to the microSD card:

Line 262:

Line 278:

<pre>

<pre>

sudo rm -f /media/rootfs/boot/*

sudo rm -f /media/rootfs/boot/*

−

<pre>

+

</pre>

Wait for data to be written to the microSD card and unmount the second partition:

Wait for data to be written to the microSD card and unmount the second partition:

Line 268:

Line 284:

<pre>

<pre>

sync

sync

−

umount /dev/sdb2

+

sudo umount /dev/sdb2

</pre>

</pre>

==== Test Qtopia ====

==== Test Qtopia ====

−

Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.

+

Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into U-Boot, and select the option to boot from microSD card.

−

== Option 3: updating from source ==

+

=== Installation option 4: updating from source ===

{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}

{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}

Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:

Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:

+

==== Download files ====

* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)

* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)

This forces building qt as well which resolved problems with the qbuild test using all the system ram.

This forces building qt as well which resolved problems with the qbuild test using all the system ram.

−

== Booting into Qtopia ==

+

==== Booting into Qtopia ====

Now shutdown the FreeRunner

Now shutdown the FreeRunner

Line 339:

Line 369:

This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.

This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.

−

== Internationalization ==

+

=== Internationalization ===

Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.

Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.

Line 345:

Line 375:

Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&forum=16 here].

Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&forum=16 here].

+

=== Software packages feeds ===

+

Installation of more software packages with the package manager tool found the Settings folder needs servers, which offer these packages, like

−

== Suspend /Resume ==

+

* http://qtextended.org/packages/feed/4.4.1/neo (default)

−

It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.

+

* ...

+

+

Install packages into Qt extended through the package manager, which only allows packages via web servers, seems to be the only way at the moment.

+

(No way to download a package seperately and install the file.)

== Bugs ==

== Bugs ==

Line 356:

Line 391:

Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.

Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.

−

== Bugs in 4.4.1 ==

+

=== Suspend /Resume [Now Solved] ===

+

It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.

+

+

=== Bugs in 4.4.1 ===

* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox

* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox

* Timezone & time on latest Qt 4.4.1

* Timezone & time on latest Qt 4.4.1

* The first item in a list is missing the top half

* The first item in a list is missing the top half

−

[[Category:Qtopia]]

+

=== Bugs in 4.4.2 ===

+

* Cannot connect to a WPA protected WLAN, because wpa_supplicant of the previous connection is left running. Try a [http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=241864 fixed /opt/Trolltech/Qtopia/bin/lan-network script].

This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image. It has multiple input methods that appear to be more mature. It does have a webkit based web browser and an GPS "Mapping Demo" application.

See the Preparing the SD Card section of the Booting from SD page for partitioning and formatting instructions. After you complete the "Formatting the SD Card" steps, return here and execute the following:

Note: the last step removes the kernel image from the second partition. For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.

From your Linux box, rename uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin to uImage.bin and copy it to the boot directory on the first partition of the MicroSD card. Depending on the version of U-Boot you have installed, this may not work. To prevent any possible issues, copy it to the /media/card directory as well. There is plenty of room on the first partition to have uImage.bin in both locations.

Some versions of u-boot look for uImage and not uImage.bin you may have to remove the .bin extension to get it to boot.

The first step is to create an 8 MB partition for the kernel and use the remaining space for the root file system. Proceed as follows:

Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.

CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!

sudo umount /dev/sdb1
sudo fdisk /dev/sdb

I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:

Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:

Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:

sudo rm -f /media/rootfs/boot/*

Wait for data to be written to the microSD card and unmount the second partition:

NOTE: This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest

Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in this thread of the community mailing list. Summing up:

Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.

Adding characters to the keyboard requires modifications to the source code, as described here.

Install packages into Qt extended through the package manager, which only allows packages via web servers, seems to be the only way at the moment.
(No way to download a package seperately and install the file.)

It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.

This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image. It has multiple input methods that appear to be more mature. It does have a webkit based web browser and an GPS "Mapping Demo" application.

Preparing the SD card

See the Preparing the SD Card section of the Booting from SD page for partitioning and formatting instructions. After you complete the "Formatting the SD Card" steps, return here and execute the following:

Note: the last step removes the kernel image from the second partition. For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.

Installing Kernel

From your Linux box, rename uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin to uImage.bin and copy it to the boot directory on the first partition of the MicroSD card. Depending on the version of U-Boot you have installed, this may not work. To prevent any possible issues, copy it to the /media/card directory as well. There is plenty of room on the first partition to have uImage.bin in both locations.

Prepare microSD card

Create an 8 MB partition for the kernel and use the remaining space for the root file system.

Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.

CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!

sudo umount /dev/sdb1
sudo fdisk /dev/sdb

I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:

Copy the kernel image to the microSD card

Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:

Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:

sudo rm -f /media/rootfs/boot/*
<pre>
Wait for data to be written to the microSD card and unmount the second partition:
<pre>
sync
umount /dev/sdb2

Test Qtopia

Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.

Option 3: updating from source

NOTE: This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest

Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in this thread of the community mailing list. Summing up:

Booting into Qtopia

Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.

A boot menu will appear.

Press the AUX button to select "Boot from MicroSD" and then press the Power button to execute.

Qtopia should now boot.

Note: you may get a kernel panic which says that "optional features not supported". If this is the case, boot back into 2007.2 and run

umount /dev/mmcblk0p2
fsck.ext3.e2fsprogs /dev/mmcblk0p2

This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.

Internationalization

Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.

Adding characters to the keyboard requires modifications to the source code, as described here.

Suspend /Resume

It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.