在PC上執行Android系統?Android-x86
話說,看到現代汽車的部分車款都搭載了Android平台的影音系統,實在是很羨慕。再看看我們家 Mazda CX-5 車上很陽春的操作介面與非常兩光的導航系統,實在是很想把它換掉。這類跟不上時代的封閉的汽車影音平台,勢必將步上之前Feature Phone的後塵,漸漸的消失在未來的競爭與市場當中。目前針對這類的汽車平台,較具前景的有:
- Apple的CarPlay
- Google的OAA(Open Automotive Alliance) – 2014.01成立
- MirrorLink
- Microsoft的Automotive – 聽說就是Ford上SYNC系統的底層
↑ 2014.05.21時的平台與合作廠商關係圖。上面的圖示中,越內圈就是越早期出現在合作廠商名單中的車廠。
↑ 2014.07.04時的平台與合作廠商關係圖。可以看出Google已經加速在車用市場的腳步,與其合作的車用廠商數量已經超越了Apple。而大部分的車廠,看來都不壓寶於某一特定平台,而是與各開發者保持一定程度的接觸,希望能於最大的市場利基下,選擇最後的整合車用平台。
關於CarPlay、OAA、MirrorLink的競逐,可以參考一下這篇文章 《2014’s battle for dashboard supremacy: Apple’s CarPlay vs. Google’s OAA vs. MirrorLink》。看到上面我從Apple、Google、Microsoft等網站上整理出的平台與車商的合作關係圖,真是太讓人心寒了,完全找不到Mazda的蹤跡。看來我如果要官方釋出開放性平台的影音主機,應該可以「慢慢」等了。(2014.07.01 mazda已經新增至Apple Carplay的合作廠商名單之中,此時也已經列名於Google OAA的合作名單之中了)
隔行如隔山,要想辦法把車上怡利主機中的系統換成Android,實在是太麻煩了。還不如先來試試九年前的車上的小CarPC,試著用用家中的老電腦(eeeBox B202),這樣來得簡單的多。在網路上找了一下,原來有個優秀的台灣人,已經將Android早已經有了porting到x86平台上的版本了。大家可以到網站《Android-x86 – Porting Android to x86》
一般車用的2-Din音響主機耗電量大約12A、10~12V直流電,所以如果請人接電,或是接在一般車用點煙器應該還OK。Atom N270的時脈約1.6Ghz,跑起來基本上還OK,就是它極糟的網卡收訊造成在使用無線時蠻多的困擾。
安裝的步驟:
- 於《Android-x86 – Porting Android to x86》下載所要安裝的Android版本iso檔
- 下載 unetbootin,將iso檔燒入usb隨身碟
- 透過usb隨身碟開機並安裝Android
↑ 下載unetbootin後,開啟可以看到上面這個畫面。依照上面的1、2、3點選,將image燒到usb大姆哥中。
↑ 燒錄進行中
↑ 燒錄完成
↑ 安裝時選擇「Installation – Install Android-x86 to harddisk」。如果不想要安裝,只想要在x86的平台上執行Android OS,可以選擇「Live CD – Run Android-x86 without installation」。
↑ 在安裝的過程中,可以選擇要不要使用GRUB開機管理程式。安裝成功後,重開機時就會進入上面這個開機選單。
↑ 超好安裝,比灌Windows還快 @@
↑
↑ 開機完成後,就跟手機上看到的差不多囉。
系統安裝完成後,其實還有許多陸續的問題要處理。例如有些軟體的資料就是要安裝在SD的空間上,在一般市售的手機,就算沒有SD插槽,也會mount一個虛擬的SD路徑,但在這台上面就要自己來建立了。還有觸控螢幕的驅動程式也需要再另外掛載,這個之後再來慢慢實驗囉!
【遇到的問題】
Touch Screen:參考1
- Alt+F1進入terminal mode
- 輸入「stop zygote」
- 在 /data/system 下建立目錄「tslib」
- 於路徑 /data/system 下,輸入「ts_calibrate」,啟動螢幕校正工具
- 校正完畢後,進入目錄「tslib」,檢查是否有檔案「pointercal」(由螢幕校正工具產生)
- 輸入「start zygote」
- 修改設定檔「system/core/rootdir/etc/vold.fstab」
mount device
SDCARD=<device node>, device node=/dev/block/sdc1mount file – 連結到一個vfat image# dd if=/dev/zero of=/data/sdcard.img bs=1024 count=65536 (64MB image)
# losetup /dev/block/loop7 /data/sdcard.img
# newfs_msdos /dev/block/loop7mount ramdisk
SDCARD=ramdiskalready mount
vold will bind $SRC/sdcard or /data/sdcard to /mnt/sdcard if one of them exists.
SDCARD=premount