Posts tagged: android-x86

COSCUP 2010 演講:Android-x86

By cwhuang, 2010 年 08 月 14 日

應好友 Pofeng 邀請,明天將在中研院人文科學館舉行的 COSCUP 2010 上,介紹 Android-x86 的發展近況。歡迎蒞臨指教。

簡報已經在 Google doc 上線:

給 vm 用的 froyo-x86 iso 檔

By cwhuang, 2010 年 08 月 12 日

距離上次 Android-x86 釋出測試版本已有大半年的時間。不斷有使用者希望我們能釋出新的版本,畢竟不是每個人都會從 source code 開始編出 iso 檔來。因此在 Ethernet 功能完成後,我決定先釋出給 virtual machine (virtual box, qemu 或 vmware)用的 froyo-x86 iso 檔,讓沒辦法自行編譯的使用者,也有機會了解 Android 2.2 的魅力。剛剛已上傳完畢,可從 google codeSourceForge 下載。細節可看這裡

這個版本採用 kernel 2.6.32.9,在 virtual box 上,音效卡可選擇 ICH AC97 或 SB16 都可以。Ethernet 和滑鼠都可以使用。不過滑鼠很不順暢,是已知問題。另外如果你還不知道的話,這個版本已經可以使用 uvesafb。也就是,開機時不需要再選擇 vesa mode,用預設的第一項就可以。

比較特別的是,為測試方便,我引入一種特別的運行模式,可以用 live CD 的方式開機,但把 /data 和 /sdcard 直接儲存到 vm 的虛擬硬碟上。要使用這種模式的話,只要建立虛擬硬碟,然後進 debug 模式,用 fdisk 將硬碟切成兩個分割區。一個是 Linux ext3 分割區,另一個是 fat 分割區。例如:

Device Boot      Start         End      Blocks  Id System
/dev/sda1            1         199     1604704  83 Linux
/dev/sda2          200         520     2588544   c Win95 FAT32 (LBA)

如此,在進入 Android 時,就會自動把 /dev/sda1 掛載到 /data,並把 /dev/sda2 當做 sdcard 掛載到 /mnt/sdcard 上。由於資料是儲存到虛擬硬碟,因此有別於普通的 live CD 模式,即使重新開機也不會消失。因此我將這個模式稱為 persistent 模式。

技術上來說,可以將它視為一種介於直接安裝的硬碟模式和純 live CD 模式之間的一種模式。但是它既像硬碟模式一樣可永久保存資料,又像 live CD 模式一樣可直接使用無需事先安裝。對經常在更新 iso 檔的開發者來說,是一種很方便的測試方法。特別是可以將 vm 的硬碟直接當成 sdcard 使用,如此就不用煩惱怎麼在 vm 掛載 sdcard 上去測試了。

SourceForge Froyo-x86 上線

By cwhuang, 2010 年 08 月 01 日

讓大家久等了! SourceForge 的 froyo-x86 branch mirror 終於上傳完畢。取得方法和以前一樣:

$ repo init -u git://android-x86.git.sf.net/gitroot/android-x86/manifest.git -b froyo-x86
$ repo sync

請注意目前只有 generic_x86 和 vm 兩個 target 可以編譯,eeepc 還不行。

新的 froyo-x86 target: vm

By cwhuang, 2010 年 07 月 12 日

如前所述,新的 target vm 已經弄好,放到 git.android-x86.org 了。取得方法同前:

$ repo init -u git://git.android-x86.org/manifest.git -b froyo-x86
$ repo sync

若已經 repo init 過,不必再做,只要 repo sync 即可。

編譯的方法也跟以前一樣,可以在 buildspec.mk 指定 TARGET_PRODUCT=vm。此外還我加上了 lunch 的選單支援,以方便切換不同的 target。使用方法(在 froyo-x86 源碼樹最上層):

$ . build/envsetup.sh
$ lunch

然後選擇 4. vm-eng 即可。也可以直接打 lunch 4 或 lunch vm-eng 都可以。再來編譯

$ m -jX iso_img

編出來的 iso 檔可在 virtual box 或 qemu 上使用。用 vmware 應該也可以,不過我沒試過。目前移植的情況大略如下:

  • 使用 kernel 2.6.32.9,用 auto-detect 載入大部分的模組,不過 sb16 會強制載入。
  • 滑鼠可以使用。不過在 virtual box 上,你必須關閉滑鼠整合功能。
  • 指定音效卡為 sb16 或 ich ac97 都可以運作(感謝 Haojun Bao 提供 ich ac97 音效的解決方法)。
  • 在 virtual box 可以使用 uvesafb(其實在 eclair-x86 就可以了)。
  • 乙太網路還無法使用。

注意從 froyo-x86 起我們會仿照 AOSP 的做法,將 targets 的定義都放到 device/ 目錄,而不是以前的 vendor/ 目錄。因此 vm 的定義是在 device/vm/vm 目錄裡。

Froyo-x86 源碼已上線

By cwhuang, 2010 年 07 月 07 日

我已經將 froyo-x86 branch 的大多數修正都放到 git.android-x86.org 上,包括 manifest.xml。取得方法:

$ repo init -u git://git.android-x86.org/manifest.git -b froyo-x86
$ repo sync

目前唯一可編譯的 target 是 generic_x86,而 eeepc 還有問題,使用 i915 framebuffer 無法開機。我也正在弄一個 vm 的 target,方便產生給 virtual machine 用的 iso 檔。

使用的 kernel 是 Google Android 的 2.6.32.9 版本。目前滑鼠可以使用,但速度很慢。而乙太網路和無線網路都還無法使用。

另外要注意的是由於 bionic 包含了 Intel 提供的 atom 最佳化程式碼,因此編出來的 image 僅能在 atom 的機器上使用。稍後我會嘗試修正此問題。

SourfeForge 的 mirror 尚未更新。

Froyo-x86 的第一個畫面

By cwhuang, 2010 年 06 月 28 日

經過兩天的努力,終於解決 Android 2.2 在 x86 上的所有編譯錯誤,編出了 iso 檔。在 virtual box 上開機,令人驚喜的,Froyo 的畫面出來了,看到小 Android 提示機器人跟我打招呼。

雖然大部分的功能(wifi、ethernet、mouse、…)都還不能用。不過至少是開得進去,算是踏出成功的第一步了。整理好 source code 後會儘快放到 git.android-x86.org 上。

The first screenshot of Android-x86 2.2 (Froyo-x86)

Froyo 源碼釋出

By cwhuang, 2010 年 06 月 24 日

Android 開發者 Deva 今天下午在 android-platform 討論區上,宣佈 Android 2.2 Froyo 的源碼已經釋出的好消息。

各位開發者,開始動工吧!

修正 Eclair 的藍牙音效支援

By cwhuang, 2010 年 06 月 21 日

先前在開發 eclair-x86 時,曾注意到藍牙支援的一個問題,就是藍牙耳機的聲音是出不來的。藍牙的連線正常,也沒有任何錯誤訊息,但聲音還是從原本的喇叭出來,而沒有送至藍牙耳機。

原本以為是 x86 的問題。但最近在做 arm 版本的移植,也發現這個現象。因此仔細研究了一下,特別和 Nexus One 的 logcat 訊息比對。發覺問題出在 hardware/alsa_sound。因為它沒有 enable WITH_A2DP 這個 flag。

review.source.android.com 提交了這個 patch。今天下午收到通知,已經被 approved 並加到 master branch 了。

值得一提的是,只有用 alsa 介面的 Android 系統才會受此 bug 的影響。很多 Android 手機都並非透過 alsa 介面來控制音效,因此沒這個問題。也難怪這個 bug 一直沒被注意?

如何在 Android-x86 使用 TTS?

By cwhuang, 2010 年 05 月 19 日

今天在 Android-x86 論壇上,看到有一位視障朋友說他在用 Android-x86 1.6-r2,讓我很驚訝也很高興。由於看不見,他很需要文字轉語音(Text To Speech, TTS)這樣的功能。

TTS 是 Android 內建的功能之一。不過我個人對這個領域並無研究,也從未測試過 Android 的 TTS 功能。不過我同辦公室的同事剛好就有做 TTS 和 ASR 的,他也測過我們 Android-x86 上的 TTS。向他詢問確認,TTS 的確可以在 Android-x86 上使用。只不過要先手動安裝 voice data。

首先,Android-x86 上必須掛載了 sdcard (在 1.6-r2 上,直接插入 sdcard 或 USB 碟就會自動掛載)。接著,到 eyes-free 這個計劃的下載頁面,點選並安裝 com.svox.langpack.installer_1.0.1.apk 這個 apk。它會安裝 Pico TTS data files 到 sdcard 上。只要安裝 apk 就好,它會自動下載 voice data 到 sdcard 上。不用開啟它,若開啟的話它會當掉。不過這不要緊,因為這個 apk 並沒有 activity。其實在 Android 手機上,它會自動從 Market 下載並安裝這個 apk。只不過 Android-x86 無法使用 Market,因此必須手動安裝。

安裝完成後,到 Settings -> Speech synthesis,可以看到 Listen to an example 項目已經可以使用(未安裝 voice data 前它是 disabled 的)。點下去就可以聽見語音合成的範例了。不過只有英文而已。此外,安裝完 voice data 後,也可以試試 Android SDK 的 ApiDemo 裡的 TextToSpeech 範例

OESF Android Steps Ahead 2010/Tokyo

By cwhuang, 2010 年 04 月 23 日

OESF 在日本東京舉行的 Android Steps Ahead 研討會已順利結束。Android-x86 在 technical track 分享了我們的開發經驗和成果,獲得不少回響。還意外見到了 Android-x86 在日本的一位開發者 Kinneko,他曾貢獻自動掃瞄硬體裝置並載入驅動程式的功能給 Android-x86 。能夠親眼見到各位業界先進,以及各種基於 Android 而開發的產品,更感到 Android 的潛力無限。這是此行的最大收獲。

在此特別感謝邀請 Android-x86 與會的 OESF 台灣辦公室 Tad 先生,以及在演講會場負責日文口譯的 Mika 川口美香小姐。藉由他們的幫助,使得 Android-x86 計劃能夠在國際發聲,並使當地聽眾更了解 Android-x86。

這裡有一個短片,是由 OESF future system working group 所製作,勾畫出將來 Android 系統可能深入我們的家庭和生活。

以下是一些照片的分享: Read more »

OfficeFolders theme by Themocracy