Qtopia on FreeRunner/zh tw

From Openmoko

Jump to: navigation, search


本頁的內容將提供您關於在 GTA02 (FreeRunner) 上如何安裝 Qtopia/Qt Extended (proper, not the ASU or QtopiaOnX11 efforts),它與Qtopia on Neo1973中的內容相當類似。

Contents

目前狀態

2008年的十月三日,Trolltech公司釋出了針對Openmoko Neo FreeRunner使用的,包含Qtopia 4.4.1版本的 Qtopia ROM flash image containing the rootfs。這個版本可以為 mwebster 含了kernel的ROM flash image

這個映像檔可以成功的發送及接收通話及文字訊息。它可以讀取sim卡上的所有通訊錄(它更新了2007.2 無法顯示通訊錄的功能)。 它包含了較2007.2 映像檔中更為穩定的映應用程式。它擁有更為成熟的多重輸入的方法。但它並沒有web瀏覽器或者是GPS 應用程式。 但你可以使用協力廠商的 GPS 應用程式:

在2008年的9月2日,Trolltech也釋出了4.3.3-snapshot,它修正了一些問題 (sms 訊息無法在重新開始後接收訊息,Qtopia 會在接收二通電話間處生問題、預設的通話音量及麥克風輸出;迴音修正)。You can find all the Qtopia images here (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)

最後一版中有什麼內容?(Qtopia 4.4)

Qtopia 4.4 以 QtExtended 4.4的名稱釋出。

Option 1: 將 Qtopia 燒錄到 FreeRunner

下載之前提到的映像檔,並且依照下面的操作方法進行: Flashing the Neo FreeRunner

Option 2: 介於Qtopia 與2007.2之間的雙啟動系統 (自SD卡中啟動Qtopia)

安裝需求:

  1. SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.
  2. A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)


準備好你的SD卡

請查看自SD卡中啟動中的 準備SD卡一節暸解如何進行磁碟分割及格式化等工作。在你完成"格式化SD Card"的操作步驟後,請回到這個步驟,並執行下面的操作內容:

mount /dev/mmcblk0p1 /media/card mkdir /media/card/boot

mkdir /media/mmcblk0p2 mount /dev/mmcblk0p2 /media/mmcblk0p2

這些指令將會幫助你適當的安裝接下來會使用到的檔案系統及核心系統。

安裝Qtopia

解開Qtopia Root Filesystem 映像檔

Latest Images#Qtopia images 下載Qtopia FLASH image到你的 Linux系統下,並解壓縮它的內容:

tar xzf qtopia-4.3.2-gta02-flash-*.tgz

你會有二個檔案:

  1. uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin
  2. qtopia-4.3.2-gta02-rootfs-07172049.jffs2

現在使用這個連結從jffs2下掛載(mount)root file system。然而,在mount指令中,從"/dev/mtdblock0"下取代映像檔名。

建立壓縮的tarball

接下來,壓縮 root filesystem:

  1. tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C <mountpoint> .

在這個指令中 <mountpoint> 指的是掛載上的 jff2 filesystem。請注意,在掛載點後的.號。

安裝 Root Filesystem

轉換這個壓縮的 tarball到sd卡上,已經掛載到FreeRunner的第二個分割區。

scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/

登入你的 FreeRunner並且解開(unpack)root filesystem:

cd /media/mmcblk0p2 tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz rm -f /media/mmcblk0p2/boot/*

Note: 最後一個步驟是將 kernel image自第二個分割區中移除。基於某些理由,若kernel映像檔被放置在第二個分割區中的boot/ 目錄下,U-Boot並無法在第一個分割區中找到uImage.bin 檔案。

安裝Kernel

從你的LINUX系統上,將 uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin重新命名為 uImage.bin ,並將它複製到SD卡中的第一個分割區中的boot目錄下。 依照你所安裝使用的U-boot版本,它可能無法運作,要防止任何可能問題,將它複製到 /media/card 目錄下。 There is plenty of room on the first partition to have uImage.bin in both locations.

mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin scp uImage.bin root@192.168.0.202:/media/card/boot/ scp uImage.bin root@192.168.0.202:/media/card/

將 Qtopia 指向 SD Card

Lorn Potter 在寄件清單中提出以下的意見:

Qtopia 被設定為從flash chip中執行的root分割區,而不是從可移除的sd記憶卡中執行。

你可能己經編輯過 etc/default/Trolltech/Storage.conf 檔案,讓它會忘記關於 sd /dev 節點。

其它的使用者所使用的方法下如下:

編輯這個檔案: " /opt/Qtopia/etc/default/Trolltech/Storage.conf 將[MountPoint0] 本節進行重組: -[ [MountPoint0] Name[] = SD Card Path=/dev/mmcblk0p1 Removable = 0 Applications = 0 Documents = 0 ContentDatabase = 0

Option 3: 自源碼中更新

NOTE: 此動作將更新 opt/Qtopia 目錄,你應該使用 opkg update/upgrade 進行其餘的工作


原始的 Qtopia 映像檔 (Trolltech所釋出的套件,而不是ASU) 顯少被以rootfs映像檔釋出,但它的源碼則是經常性的被更新。若你希望重新將你的OM更新為最近的 Qtopia 版本,你可以利用源碼來建立映像檔。你可以參考 explained in [1]社群的郵件清單。並得到以下的結論:

  • 你可以自http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 取得Trolltech 所釋出的toolchain ,並且將它解壓縮到你的個人電腦(解壓縮到root)

cd / wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz tar xvzf arm920t-eabi-ficgta01-toolchain.tgz

tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz

  • 建立 "build" 目錄

mkdir build cd build

  • 設定並製作映像檔:

../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01 make This will take some time (couple hours). Note that the option "-device ficgta01" should work for both neo and freerunner. Then:

make install

這將會在build目錄下建立一個root目錄,在那個目錄下,你可以找到一個映像檔,並且你可以使用SCP將它複製到手機上的/opt/Qtopia 。完成後,重新啟動 qpe 或整支手機。

自Qtopia下啟動

現在請關閉FreeRunner

shutdown -h now

自NAND FLASH中的U-Boot登入,選擇自MicroSD card中啟動: (參考Booting the Neo FreeRunner取得操作說明)

  • 按下電源按鈕
  • 在按下電源按鈕的同時,按下AUX按鈕約5 - 8 秒。
  • 啟動選單會出現在螢幕上。
  • 按下AUX按鈕選擇 "Boot from MicroSD" ,再按下電源按鈕執行。

Qtopia 現在應該被啟動了。

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.

語系

Qtopia 支援德語,美語及英語等語系,因此使用者會發現要使用鍵盤撰寫其它國的語言幾乎是不可能。要停用鍵盤的方法是將 /opt/Qtopia/etc/dict/en_US/common.dawg 替換為空白的檔案 (在備份之後)。 Qtopia 一般會使用這些檔案尋找建議使用的文字,若是找不到的話,則會顯示你們撰寫的內容。

將文字加入鍵盤需要修改源碼,你可以參考 此處取得資訊。

中斷 /重新開啟

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

請參考 Trolltech's tracker (Qtopia Tracker).

Bug reports 可以傳送到 qt-bugs@trolltech.com 或者是從 http://trolltech.com/bugreport-form中存取。

Bugs in 4.4.1

  • Boot and Shutdown Splash無法運作,因為splash-write並沒有被編譯到Busybox
  • Timezone & time on latest Qt 4.4.1
  • The first item in a list is missing the top half
Personal tools