<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>阿偉的個人天地 &#187; cwhuang</title>
	<atom:link href="http://cwhuang.info/author/cwhuang/feed" rel="self" type="application/rss+xml" />
	<link>http://cwhuang.info</link>
	<description>阿偉的研究記錄：Eee PC、Android、Linux、Open Source 和其它</description>
	<lastBuildDate>Thu, 09 Sep 2010 06:52:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Froyo-x86 wifi 可以用了</title>
		<link>http://cwhuang.info/2010/09/wifi-is-ok-on-froyo-x86</link>
		<comments>http://cwhuang.info/2010/09/wifi-is-ok-on-froyo-x86#comments</comments>
		<pubDate>Mon, 06 Sep 2010 11:59:07 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1156</guid>
		<description><![CDATA[經過幾天努力，已經將 froyo-x86 的 wifi 功能弄好了。相關修改都已經 push 進 git server。編譯 target eeepc 就可以使用 wifi 了。
和前面幾個版本(donut-x86、eclair-x86)比較，這次的 wifi 修改有比較大的不同。主要是參考 Nicu Pavel 部落格上的文章，加入他的 awext driver，用標準的 linux wireless extensions ioctls 來模擬 Android 的 wifi driver 指令，如此可正確的顯示 wifi 信號的強度。另外儘量減少使用 dirty hack，放棄先前利用 script 偵測網路介面再修改 init.rc 的做法。由於 froyo 的允許傳送參數給 services，因此我們可以把網路介面名稱傳送過去，而不必根據不同的名稱，建立不同的 services。
目前有一些已知的問題：

必須先 disable Ethernet 之後才能開啟 wifi，否則可能無法透過 dhcpcd 正確的抓到 IP。我還在思考更佳的解決辦法。
有時候在 logcat 會看到 failed to scan [...]]]></description>
			<content:encoded><![CDATA[<p>經過幾天努力，已經將 froyo-x86 的 wifi 功能弄好了。相關修改都已經 push 進 git server。編譯 target eeepc 就可以使用 wifi 了。</p>
<p>和前面幾個版本(donut-x86、eclair-x86)比較，這次的 wifi 修改有比較大的不同。主要是參考 <a href="http://blog.linuxconsulting.ro">Nicu Pavel</a> 部落格上的<a href="http://blog.linuxconsulting.ro/2010/04/porting-wifi-drivers-to-android.html">文章</a>，加入他的 awext driver，用標準的 linux wireless extensions ioctls 來模擬 Android 的 wifi driver 指令，如此可正確的顯示 wifi 信號的強度。另外儘量減少使用 dirty hack，放棄先前利用 script 偵測網路介面再修改 init.rc 的做法。由於 froyo 的允許傳送參數給 services，因此我們可以把網路介面名稱傳送過去，而不必根據不同的名稱，建立不同的 services。</p>
<p>目前有一些已知的問題：</p>
<ul>
<li>必須先 disable Ethernet 之後才能開啟 wifi，否則可能無法透過 dhcpcd 正確的抓到 IP。我還在思考更佳的解決辦法。</li>
<li>有時候在 logcat 會看到 failed to scan AP 或 associate AP timed out 之類的訊息，而造成連線失敗。通常重新開機或重開 AP 就可解決。還不確定是 wifi driver 或 Android framework 還是 AP 端的問題。</li>
</ul>
<p><span id="more-1156"></span>如果想為你的 target 加上 wifi 支援，步驟大概是：</p>
<ul>
<li>在你的 BoardConfig.mk 中加上 BOARD_WPA_SUPPLICANT_DRIVER := AWEXT。</li>
<li>記得將你的 wifi driver 編成模組，並且在開機的偵測 script (函數 detect_hardware)中載入 wifi driver，或是將模組名稱設定在 wlan.modname。</li>
<li>如果你的 wifi driver 需要 firmware，必須設定好 LOCAL_FIRMWARES 和 LOCAL_FIRMWARES_DIR。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/09/wifi-is-ok-on-froyo-x86/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>好消息：mksh merged</title>
		<link>http://cwhuang.info/2010/08/mksh-merged</link>
		<comments>http://cwhuang.info/2010/08/mksh-merged#comments</comments>
		<pubDate>Mon, 30 Aug 2010 08:20:42 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1132</guid>
		<description><![CDATA[最近沒有一直盯著 AOSP 看。剛剛才注意到，由 mksh patch 已經被合併(merged)到 AOSP 的 master branch 當中。Android 終於有一個功能完整好用的 shell 了。這真是一個好消息!
接觸過 Android 系統開發的 developer 想必都對 Android 內建的 shell 頭痛不已。因為它的功能相當於三、四十年前的 BSD shell，陽春到不行。當然很多人也自己改用其它更好的 shell，例如 busybox 內建的 ash。但 busybox 由於採用 GPL 授權的關係，難被 Google Android 開發團隊所接受。而 mksh 採用 BSD 型態的授權，正是 Google 所喜愛的方式，因此沒有這方面的問題。
先前介紹過，mksh 是 MirBSD 計劃所發展的 shell，具有現代 shell 的許多特色，包括了指令歷史記錄、搜尋、Tab 補齊等。而 Android-x86 計劃也是第一個將 mksh 導入系統成為預設 shell 的 Android [...]]]></description>
			<content:encoded><![CDATA[<p>最近沒有一直盯著 AOSP 看。剛剛才注意到，由 <a href="https://review.source.android.com/14171">mksh patch</a> 已經被合併(merged)到 AOSP 的 master branch 當中。Android 終於有一個功能完整好用的 shell 了。這真是一個好消息!</p>
<p>接觸過 Android 系統開發的 developer 想必都對 Android 內建的 shell 頭痛不已。因為它的功能相當於三、四十年前的 BSD shell，陽春到不行。當然很多人也自己改用其它更好的 shell，例如 busybox 內建的 ash。但 <a href="http://groups.google.com/group/android-coretech/browse_thread/thread/da447f37b2f7c7b8">busybox 由於採用 GPL 授權的關係，難被 Google Android 開發團隊所接受</a>。而 mksh 採用 BSD 型態的授權，正是 Google 所喜愛的方式，因此沒有這方面的問題。</p>
<p><a href="/?p=875">先前介紹過</a>，mksh 是 <a href="https://www.mirbsd.org">MirBSD</a> 計劃所發展的 shell，具有現代 shell 的許多特色，包括了指令歷史記錄、搜尋、Tab 補齊等。而 Android-x86 計劃也是第一個將 mksh 導入系統成為預設 shell 的 Android 類型計劃。在導入過程中也發現一些缺失，一一跟 mksh 作者 Thorsten Glaser 討論並做出修正。</p>
<p>將 mksh 合併到 AOSP 的過程也是一波三折。起先 Thorsten Glaser 提交的是一系列的 patches，大約有二十個。但 Google 無人理會。我建議他將所有 mksh 的修改合成一個 patch。因為要 Google 接受一個 patch 已經很難了，更何況是一次接受二十個 patches? 他接受我的建議，重新提交一個 patch。</p>
<p>Google 一開始也是持排拒的態度。有人擔心改 shell 會有副作用，有人擔心 mksh 太大了，更有人覺得現有的 shell 就夠了。經過我們努力爭辯下，Google 建議讓 mksh 和現有的 shell 並存，由 target 自行決定要採用哪個 shell。作者也從善如流的更新了 patch。而 Google 的態度也轉為正面，一些重要的 Android 開發人員開始支持加入 mksh。終於在經過大半年的努力後，這個 patch 以及相關的所有修正已在近日被合併到 AOSP 裡。這個過程具體呈現了數個開放源碼計劃(AOSP、MirBSD、Android-x86)的合作典範。</p>
<p>請注意目前原始的 Android shell 和 mksh 是並存的形式，但只有 TARGET_SHELL 變數指定的 shell 會被安裝。而在 Android-x86 的源碼當中，預設的 shell 就是 mksh。只要繼承 generic_x86 target，便會繼承這樣的設定：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
TARGET_SHELL := mksh
</pre>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/08/mksh-merged/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>加入 froyo-x86 target eeepc</title>
		<link>http://cwhuang.info/2010/08/froyo-x86-target-eeepc-added</link>
		<comments>http://cwhuang.info/2010/08/froyo-x86-target-eeepc-added#comments</comments>
		<pubDate>Mon, 23 Aug 2010 09:17:02 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1129</guid>
		<description><![CDATA[經過幾天的努力，終於解決 Eee PC 系列的 i915 driver 在 froyo-x86 上的問題。相關的修改，已經將都 push 到 git server。
取得和編譯的方法，跟往常一樣：





$ repo sync
$ . build/envsetup.sh
$ lunch eeepc-eng
$ m -jX iso_img






注意依據 AOSP 最新的政策，vendor/asus/eeepc 目錄已經改名為 device/asus/eeepc。
主要的修改是加入新的目錄 hardware/intel/i915，以解決 i915 driver 的幾個問題：

修正 system_server 當掉的問題。這或許是 i915 driver 的 bug，因為它回報的 pixclock = 0。
同時支援 16bpp 和 32bpp。由於 i915 driver 預設使用 32bpp，速度較慢。若要改用 16bpp，可以在 cmdline 中加上 video=-16。
不使用 page flipping。因 i915 driver 回報說它支援 [...]]]></description>
			<content:encoded><![CDATA[<p>經過幾天的努力，終於解決 Eee PC 系列的 i915 driver 在 froyo-x86 上的問題。相關的修改，已經將都 push 到 git server。</p>
<p>取得和編譯的方法，跟往常一樣：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
$ <span class="term_command">repo sync</span>
$ <span class="term_command">. build/envsetup.sh</span>
$ <span class="term_command">lunch eeepc-eng</span>
$ <span class="term_command">m -jX iso_img</span>
</pre>
</td>
</tr>
</tbody>
</table>
<p><span id="more-1129"></span></p>
<p>注意依據 AOSP 最新的政策，vendor/asus/eeepc 目錄已經改名為 device/asus/eeepc。</p>
<p>主要的修改是加入新的目錄 hardware/intel/i915，以解決 i915 driver 的幾個問題：</p>
<ul>
<li>修正 system_server 當掉的問題。這或許是 i915 driver 的 bug，因為它回報的 pixclock = 0。</li>
<li>同時支援 16bpp 和 32bpp。由於 i915 driver 預設使用 32bpp，速度較慢。若要改用 16bpp，可以在 cmdline 中加上 video=-16。</li>
<li>不使用 <a href="http://en.wikipedia.org/wiki/Multiple_buffering#Page_Flipping">page flipping</a>。因 i915 driver 回報說它支援 page flipping，但在 nmap double buffers 時會失敗。或許是 i915 driver 的另一個 bug。</li>
</ul>
<p>編譯結果會產生一個新的 HAL shared library gralloc.eeepc.so，放在 /system/lib/hw/ 下面。如果你的 target 也是使用 i915 driver，你也必須使用這個 HAL library。請在你的 BoardConfig.mk 加上：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
BOARD_USES_I915 := true
</pre>
</td>
</tr>
</tbody>
</table>
<p>此外，kernel 也更新到 2.6.35 的版本。</p>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/08/froyo-x86-target-eeepc-added/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自動啟用 3G 連線</title>
		<link>http://cwhuang.info/2010/08/auto-connect-3g</link>
		<comments>http://cwhuang.info/2010/08/auto-connect-3g#comments</comments>
		<pubDate>Wed, 18 Aug 2010 12:54:31 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1125</guid>
		<description><![CDATA[在 COSCUP 2010 的演講中，我表演了插入 3G USB 網卡後，Android-x86 會自動連接 3G 上網，同時右上角出現 3G 連線訊號的橋段。有人問這是怎麼做到的呢? 這是個好問題。雖然在 1.6-r2 中已加入 3G 上網的支援，但無法自動連線。還得開 Terminal 下 &#8220;start ppp&#8221; 的指令才行。怎麼做到自動建立 3G 的連線呢?
這是最近的研究發現。有兩個關鍵：首先要設定 APN。插入 3G 網卡後，進入 Settings -> Wireless controls -> Mobile networks -> Access Point Names 中，按 menu 鍵選 New APN。我用的是中華電信 mPro 方案，因此設定 Name 為 CHT，APN 為 emome。再按一次 menu，選 Save。(如圖所示）


再來修改 init.rc，加入這一段：





on property:gsm.sim.state=READY
  [...]]]></description>
			<content:encoded><![CDATA[<p>在 <a href="/?p=1108">COSCUP 2010 的演講</a>中，我表演了插入 3G USB 網卡後，Android-x86 會自動連接 3G 上網，同時右上角出現 3G 連線訊號的橋段。有人問這是怎麼做到的呢? 這是個好問題。雖然<a href="/?p=900">在 1.6-r2 中已加入 3G 上網的支援</a>，但無法自動連線。還得開 Terminal 下 &#8220;start ppp&#8221; 的指令才行。怎麼做到自動建立 3G 的連線呢?</p>
<p>這是最近的研究發現。有兩個關鍵：首先要設定 APN。插入 3G 網卡後，進入 Settings -> Wireless controls -> Mobile networks -> Access Point Names 中，按 menu 鍵選 New APN。我用的是中華電信 mPro 方案，因此設定 Name 為 CHT，APN 為 emome。再按一次 menu，選 Save。(如圖所示）</p>
<div class="wpg2tag-image"><a href="http://cwhuang.info/wpg2?g2_itemId=615" title="設定 APN"><img src="http://cwhuang.info/gallery2/main.php?g2_view=core.DownloadItem&amp;g2_itemId=615&amp;g2_serialNumber=1&amp;g2_GALLERYSID=a3276ed4724847dcd1414927b9553def" width="640" height="480" id="IFid3" class="ImageFrame_none" alt="設定 APN"/></a></div>
<p><span id="more-1125"></span><br />
再來修改 init.rc，加入這一段：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
on property:gsm.sim.state=READY
    start ppp

on property:gsm.sim.state=UNKNOWN
    stop ppp
</pre>
</td>
</tr>
</tbody>
</table>
<p>意思是說，若 gsm.sim.state 為 READY，就啟動 ppp service；反之若是 UNKNOWN，就停止 ppp service。</p>
<p>如此，插入 3G 網卡後，就會自動連上 3G 網路，同時右上角還會出現 G 的圖示，表現正在使用 3G 網路。若有資料傳輸時，還會有箭頭表示資料的流向。</p>
<div class="wpg2tag-image"><a href="http://cwhuang.info/wpg2?g2_itemId=618" title="3G 上網"><img src="http://cwhuang.info/gallery2/main.php?g2_view=core.DownloadItem&amp;g2_itemId=618&amp;g2_serialNumber=1&amp;g2_GALLERYSID=a3276ed4724847dcd1414927b9553def" width="640" height="480" id="IFid4" class="ImageFrame_none" alt="3G 上網"/></a></div>
<p>這樣是否方便許多呢?</p>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/08/auto-connect-3g/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>COSCUP 2010 演講：Android-x86</title>
		<link>http://cwhuang.info/2010/08/android-x86-talk-coscup-2010</link>
		<comments>http://cwhuang.info/2010/08/android-x86-talk-coscup-2010#comments</comments>
		<pubDate>Fri, 13 Aug 2010 17:23:58 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[COSCUP]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1108</guid>
		<description><![CDATA[應好友 Pofeng 邀請，明天將在中研院人文科學館舉行的 COSCUP 2010 上，介紹 Android-x86 的發展近況。歡迎蒞臨指教。
簡報已經在 Google doc 上線：

]]></description>
			<content:encoded><![CDATA[<p>應好友 <a href="http://pofeng.org">Pofeng</a> 邀請，明天將在中研院人文科學館舉行的 <a href="http://coscup.org">COSCUP 2010</a> 上，介紹 Android-x86 的發展近況。歡迎蒞臨指教。</p>
<p>簡報已經在 Google doc 上線：<br />
<iframe src="https://docs.google.com/present/embed?id=dd7z9dh6_11fmdtdpf4" frameborder="0" width="410" height="342"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/08/android-x86-talk-coscup-2010/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>給 vm 用的 froyo-x86 iso 檔</title>
		<link>http://cwhuang.info/2010/08/froyo-vm-iso</link>
		<comments>http://cwhuang.info/2010/08/froyo-vm-iso#comments</comments>
		<pubDate>Thu, 12 Aug 2010 15:26:40 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1106</guid>
		<description><![CDATA[距離上次 Android-x86 釋出測試版本已有大半年的時間。不斷有使用者希望我們能釋出新的版本，畢竟不是每個人都會從 source code 開始編出 iso 檔來。因此在 Ethernet 功能完成後，我決定先釋出給 virtual machine (virtual box, qemu 或 vmware)用的 froyo-x86 iso 檔，讓沒辦法自行編譯的使用者，也有機會了解 Android 2.2 的魅力。剛剛已上傳完畢，可從 google code 或 SourceForge 下載。細節可看這裡。
這個版本採用 kernel 2.6.32.9，在 virtual box 上，音效卡可選擇 ICH AC97 或 SB16 都可以。Ethernet 和滑鼠都可以使用。不過滑鼠很不順暢，是已知問題。另外如果你還不知道的話，這個版本已經可以使用 uvesafb。也就是，開機時不需要再選擇 vesa mode，用預設的第一項就可以。
比較特別的是，為測試方便，我引入一種特別的運行模式，可以用 live CD 的方式開機，但把 /data 和 /sdcard 直接儲存到 vm 的虛擬硬碟上。要使用這種模式的話，只要建立虛擬硬碟，然後進 debug 模式，用 fdisk 將硬碟切成兩個分割區。一個是 [...]]]></description>
			<content:encoded><![CDATA[<p>距離上次 Android-x86 釋出測試版本已有大半年的時間。不斷有使用者希望我們能釋出新的版本，畢竟不是每個人都會從 source code 開始編出 iso 檔來。因此在 Ethernet 功能完成後，我決定先釋出給 virtual machine (virtual box, qemu 或 vmware)用的 froyo-x86 iso 檔，讓沒辦法自行編譯的使用者，也有機會了解 Android 2.2 的魅力。剛剛已上傳完畢，可從 <a href="http://code.google.com/p/android-x86/downloads/list">google code</a> 或 <a href="http://sourceforge.net/projects/android-x86/files/">SourceForge </a>下載。細節可看<a href="http://www.android-x86.org/releases/build-20100812">這裡</a>。</p>
<p>這個版本採用 kernel 2.6.32.9，在 virtual box 上，音效卡可選擇 ICH AC97 或 SB16 都可以。Ethernet 和滑鼠都可以使用。不過滑鼠很不順暢，是已知問題。另外如果你還不知道的話，這個版本已經可以使用 uvesafb。也就是，開機時不需要再選擇 vesa mode，用預設的第一項就可以。</p>
<p>比較特別的是，為測試方便，我引入一種特別的運行模式，可以用 live CD 的方式開機，但把 /data 和 /sdcard 直接儲存到 vm 的虛擬硬碟上。要使用這種模式的話，只要建立虛擬硬碟，然後進 debug 模式，用 fdisk 將硬碟切成兩個分割區。一個是 Linux ext3 分割區，另一個是 fat 分割區。例如：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
Device Boot      Start         End      Blocks  Id System
/dev/sda1            1         199     1604704  83 Linux
/dev/sda2          200         520     2588544   c Win95 FAT32 (LBA)
</pre>
</td>
</tr>
</tbody>
</table>
<p>如此，在進入 Android 時，就會自動把 /dev/sda1 掛載到 /data，並把 /dev/sda2 當做 sdcard 掛載到 /mnt/sdcard 上。由於資料是儲存到虛擬硬碟，因此有別於普通的 live CD 模式，即使重新開機也不會消失。因此我將這個模式稱為 persistent 模式。</p>
<p>技術上來說，可以將它視為一種介於直接安裝的硬碟模式和純 live CD 模式之間的一種模式。但是它既像硬碟模式一樣可永久保存資料，又像 live CD 模式一樣可直接使用無需事先安裝。對經常在更新 iso 檔的開發者來說，是一種很方便的測試方法。特別是可以將 vm 的硬碟直接當成 sdcard 使用，如此就不用煩惱怎麼在 vm 掛載 sdcard 上去測試了。</p>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/08/froyo-vm-iso/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SourceForge Froyo-x86 上線</title>
		<link>http://cwhuang.info/2010/08/sourceforge-froyo-x86-is-read</link>
		<comments>http://cwhuang.info/2010/08/sourceforge-froyo-x86-is-read#comments</comments>
		<pubDate>Sun, 01 Aug 2010 07:39:02 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1103</guid>
		<description><![CDATA[讓大家久等了! 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 還不行。
]]></description>
			<content:encoded><![CDATA[<p>讓大家久等了! SourceForge 的 froyo-x86 branch mirror 終於上傳完畢。取得方法和以前一樣：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
$ <span class="term_command">repo init -u git://android-x86.git.sf.net/gitroot/android-x86/manifest.git -b froyo-x86</span>
$ <span class="term_command">repo sync</span>
</pre>
</td>
</tr>
</tbody>
</table>
<p>請注意目前只有 generic_x86 和 vm 兩個 target 可以編譯，eeepc 還不行。</p>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/08/sourceforge-froyo-x86-is-read/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新的 froyo-x86 target: vm</title>
		<link>http://cwhuang.info/2010/07/a-new-target-vm-added</link>
		<comments>http://cwhuang.info/2010/07/a-new-target-vm-added#comments</comments>
		<pubDate>Mon, 12 Jul 2010 11:25:04 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1090</guid>
		<description><![CDATA[如前所述，新的 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 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/?p=1083">如前所述</a>，新的 target vm 已經弄好，放到 git.android-x86.org 了。取得方法同前：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
$ <span class="term_command">repo init -u git://git.android-x86.org/manifest.git -b froyo-x86</span>
$ <span class="term_command">repo sync</span>
</pre>
</td>
</tr>
</tbody>
</table>
<p>若已經 repo init 過，不必再做，只要 repo sync 即可。</p>
<p>編譯的方法也跟以前一樣，可以在 buildspec.mk 指定 TARGET_PRODUCT=vm。此外還我加上了 lunch 的選單支援，以方便切換不同的 target。使用方法(在 froyo-x86 源碼樹最上層)：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
$ <span class="term_command">. build/envsetup.sh</span>
$ <span class="term_command">lunch</span>
</pre>
</td>
</tr>
</tbody>
</table>
<p>然後選擇 4. vm-eng 即可。也可以直接打 lunch 4 或 lunch vm-eng 都可以。再來編譯</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
$ <span class="term_command">m -jX iso_img</span>
</pre>
</td>
</tr>
</tbody>
</table>
<p>編出來的 iso 檔可在 virtual box 或 qemu 上使用。用 vmware 應該也可以，不過我沒試過。目前移植的情況大略如下：</p>
<ul>
<li>使用 kernel 2.6.32.9，用 auto-detect 載入大部分的模組，不過 sb16 會強制載入。</li>
<li>滑鼠可以使用。不過在 virtual box 上，你必須關閉滑鼠整合功能。</li>
<li>指定音效卡為 sb16 或 ich ac97 都可以運作(感謝 Haojun Bao 提供 ich ac97 音效的解決方法)。</li>
<li>在 virtual box 可以使用 uvesafb(其實在 eclair-x86 就可以了)。</li>
<li>乙太網路還無法使用。</li>
</ul>
<p>注意從 froyo-x86 起我們會仿照 AOSP 的做法，將 targets 的定義都放到 device/ 目錄，而不是以前的 vendor/ 目錄。因此 vm 的定義是在 device/vm/vm 目錄裡。</p>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/07/a-new-target-vm-added/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Froyo-x86 源碼已上線</title>
		<link>http://cwhuang.info/2010/07/froyo-x86-branch-is-ready</link>
		<comments>http://cwhuang.info/2010/07/froyo-x86-branch-is-ready#comments</comments>
		<pubDate>Wed, 07 Jul 2010 14:20:15 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1083</guid>
		<description><![CDATA[我已經將 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 尚未更新。
]]></description>
			<content:encoded><![CDATA[<p>我已經將 froyo-x86 branch 的大多數修正都放到 <a href="http://git.android-x86.org">git.android-x86.org</a> 上，包括 manifest.xml。取得方法：</p>
<table class="term">
<tbody>
<tr>
<td class="term">
<pre class="term_text">
$ <span class="term_command">repo init -u git://git.android-x86.org/manifest.git -b froyo-x86</span>
$ <span class="term_command">repo sync</span>
</pre>
</td>
</tr>
</tbody>
</table>
<p>目前唯一可編譯的 target 是 generic_x86，而 eeepc 還有問題，使用 i915 framebuffer 無法開機。我也正在弄一個 vm 的 target，方便產生給 virtual machine 用的 iso 檔。</p>
<p>使用的 kernel 是 Google Android 的 2.6.32.9 版本。目前滑鼠可以使用，但速度很慢。而乙太網路和無線網路都還無法使用。</p>
<p>另外要注意的是由於 bionic 包含了 Intel 提供的 atom 最佳化程式碼，因此編出來的 image 僅能在 atom 的機器上使用。稍後我會嘗試修正此問題。</p>
<p>SourfeForge 的 mirror 尚未更新。</p>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/07/froyo-x86-branch-is-ready/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Froyo-x86 的第一個畫面</title>
		<link>http://cwhuang.info/2010/06/first-screenshot-of-froyo-x86</link>
		<comments>http://cwhuang.info/2010/06/first-screenshot-of-froyo-x86#comments</comments>
		<pubDate>Mon, 28 Jun 2010 14:38:50 +0000</pubDate>
		<dc:creator>cwhuang</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android-x86]]></category>

		<guid isPermaLink="false">http://cwhuang.info/?p=1072</guid>
		<description><![CDATA[經過兩天的努力，終於解決 Android 2.2 在 x86 上的所有編譯錯誤，編出了 iso 檔。在 virtual box 上開機，令人驚喜的，Froyo 的畫面出來了，看到小 Android 提示機器人跟我打招呼。
雖然大部分的功能(wifi、ethernet、mouse、&#8230;)都還不能用。不過至少是開得進去，算是踏出成功的第一步了。整理好 source code 後會儘快放到 git.android-x86.org 上。

]]></description>
			<content:encoded><![CDATA[<p>經過兩天的努力，終於解決 Android 2.2 在 x86 上的所有編譯錯誤，編出了 iso 檔。在 virtual box 上開機，令人驚喜的，Froyo 的畫面出來了，看到小 Android 提示機器人跟我打招呼。</p>
<p>雖然大部分的功能(wifi、ethernet、mouse、&#8230;)都還不能用。不過至少是開得進去，算是踏出成功的第一步了。整理好 source code 後會儘快放到 <a href="http://git.android-x86.org">git.android-x86.org</a> 上。</p>
<div class="wpg2tag-image"><a href="http://cwhuang.info/wpg2?g2_itemId=576" title="The first screenshot of Android-x86 2.2 (Froyo-x86)"><img src="http://cwhuang.info/gallery2/main.php?g2_view=core.DownloadItem&amp;g2_itemId=576&amp;g2_serialNumber=1&amp;g2_GALLERYSID=a3276ed4724847dcd1414927b9553def" width="640" height="535" id="IFid6" class="ImageFrame_none" alt="The first screenshot of Android-x86 2.2 (Froyo-x86)"/></a></div>
]]></content:encoded>
			<wfw:commentRss>http://cwhuang.info/2010/06/first-screenshot-of-froyo-x86/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
