Acer Aspire One with Android-x86 (4.4-RC2)
Aspire One (AOA 150-Bw / ZG5) と Android-x86 (4.4-RC2) に関する記事です。Android のバージョンに依存しない記事 が別にありますので、そちらも参照してください。
Android-x86 4.4-RC21 (Kitkat)
Android-x86 4.4-RC2 のインストール
インストール方法は 4.0-r1 同様ですが、4.4-RC2 には eeepc 版はありません。インストール DVD はユニバーサル版となっているようです。以下にインストール手順を示します。
USB 光学ドライブを Aspire One に接続します。
Aspire One の電源を入れます。
起動画面で〔F12〕キーを押し、ブートセレクタを表示します。
Android-x86 のインストール DVD を光学ドライブにセットします。
USB 光学ドライブから起動させます。
インストールメニューで "Installation" を選択します。
インストールするパーティションを選択します。まず、"Create/Modify partition" ですべてのパーティションを削除した方が悩まずに済みます。画像はすべてのパーティションを削除した状態のものです。
先程の画面から "Create/Modify partitions" を選びます。パーティションが存在しないので [New] を選択し (カーソルキーで移動)、〔Enter〕キーを押します。
[Primary] を選択し〔Enter〕キーを押します。
パーティションの容量を尋ねられますのでそのまま〔Enter〕キーを押します。
[Bootable] を選択し〔Enter〕キーを押します。Flgs 欄が "Boot" に変わります。
[Write] を選択し〔Enter〕キーを押します。
"Are you sure you want to write the partition table to disk? (yes or no):" と尋ねられますので "yes" とタイプして〔Enter〕キーを押します。
[Quit] を選択し〔Enter〕キーを押します。
パーティションが作成されました。この Linux パーティションを選択して [OK] を押します。
パーティションのフォーマットを行います。"ext3" を選択して [OK] を押します。
本当にフォーマットしていいのか尋ねられますので [Yes] を押します。
フォーマットが実行されます。
ブートローダ (GRUB) をインストールするか尋ねられますので [Yes] を押します。
システムを読み書き可能な状態でマウントするか尋ねられますので [Yes] を押します。
Android OS のインストールが始まります。
すべてのインストール作業が完了しました。"Reboot" を選んで再起動を行ってください。
4.0-r1 とのマルチブート
4.0-r1 と同居させるには…
インストール時に HDD をフォーマットしない
インストール時に GRUB をインストールしない
インストール時にアップグレードを行わない
インストール後に GRUB メニューを編集する
このようにします。GRUB メニューの編集は、デバッグモードで起動し、/mnt/grub/menu.lst を書き換えます (水色の部分を追記します)。
default=0
timeout=6
splashimage=/grub/android-x86.xpm.gz
root (hd0,0)
title Android-x86 4.4-RC2
kernel /android-4.4-RC2/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 video=-16 SRC=/android-4.4-RC2
initrd /android-4.4-RC2/initrd.img
title Android-x86 4.4-RC2 (Debug mode)
kernel /android-4.4-RC2/kernel root=/dev/ram0 androidboot.hardware=android_x86 video=-16 DEBUG=2 SRC=/android-4.4-RC2
initrd /android-4.4-RC2/initrd.img
title Android-x86 4.4-RC2 (Debug nomodeset)
kernel /android-4.4-RC2/kernel nomodeset root=/dev/ram0 androidboot.hardware=android_x86 video=-16 DEBUG=2 SRC=/android-4.4-RC2
initrd /android-4.4-RC2/initrd.img
title Android-x86 4.4-RC2 (Debug video=LVDS-1:d)
kernel /android-4.4-RC2/kernel video=LVDS-1:d root=/dev/ram0 androidboot.hardware=android_x86 video=-16 DEBUG=2 SRC=/android-4.4-RC2
initrd /android-4.4-RC2/initrd.img
title Android-x86 4.0-r1
kernel /android-4.0-r1/kernel quiet root=/dev/ram0 androidboot.hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-4.0-r1
initrd /android-4.0-r1/initrd.img
title Android-x86 4.0-r1 (Debug mode)
kernel /android-4.0-r1/kernel root=/dev/ram0 androidboot.hardware=eeepc acpi_sleep=s3_bios,s3_mode DEBUG=2 SRC=/android-4.0-r1
initrd /android-4.0-r1/initrd.img
これでマルチブートが可能となります。
初期設定
初回起動時にある程度の設定をやってしまいましょう
Android を起動します。ブートセレクタで〔Enter〕キーを押すと即 Android が起動します。
Android 起動中です。初回起動時は特に時間が掛かるかもしれませんが気長にお待ちください。
ようこそ画面になりました。
表示言語を日本語に切り替え (カーソルキーの↓を押すと簡単です)、三角形のボタンを押してセットアップを行います。
セットアップの内容は人によって異なると思いますので省略します。[OK] ボタンを何度か押します。
ホーム画面が表示されました。
まず、中央下にある "アプリケーションアイコン (丸に 6 つの四角形) " をクリックします。
アプリケーションメニューになりました。[設定] アイコンをクリックします。ホーム画面で〔Ctrl〕+〔P〕を押しても設定画面へ移動できます。
左のリストから "日付と時刻" を選び、任意に設定します。時刻がおかしいようであれば、タイムゾーン等をいじってください。
左のリストから "タブレット情報" を選びます。
"ビルド番号" を連続でタップ (クリック) すると、[開発者向けオプション] がアンロックされます。
ちなみに "Android バージョン" を連続でタップ (クリック) すると、イースターエッグが表示されます。
"開発者向けオプション" で、"擬似ロケーションを許可" や "GPU レンダリングを使用" にチェックを入れておくといいでしょう。
電源ボタンをダブルクリックし、再起動を行ってください。
これで初期設定が完了しました。後はお好みでカスタマイズしてください。
動くものと動かないもの
思う所はヒトそれぞれだと思いますが、個人的には大きな問題点はないように思えます。
[4.4-RC2 の場合 (4.0-r1 との違い)]
フォントは中華フォントではありません。
マップアプリはちゃんと動作します。
SD カードスロット / マルチカードスロットに SD カードを挿入すると、USB ストレージ (/storage/usb0) として認識します。
メモリは 1.5GB まで認識します。
USB Bluetooth アダプタが使えます。
音声認識も使えます。
(現在の所) スクリーンショットを撮る方法がありません。 ([Print Screen] -> エラー / DDMS -> 真っ黒 / adb shell screencap -> 真っ黒 / adb shell screenrecord -> サイズ 0 動画)
"できない事" は独自ビルドするしか解決方法はないかもしれません。しかし、"独自ビルドするとできない事も増える" ため、オススメはできません (ある意味時間の無駄ですし)。
ハードウェア
これと言って特に追加しなきゃいけないようなものはないんですよね...。
USB マウス
手持ちの USB マウスを試してみましたが、普通に使えます。
USB フラッシュメモリ
手持ちの USB フラッシュメモリを試してみましたが、普通に使えます。一般的な USB タイプの SD カードリーダ/ライタも大抵使えると思います。例えば、ダイソーの MicroSD カードリーダー/ライター (E001: パソコン Personal Computer: 121 / JAN: 4549131115628) はちゃんと動作します。
USB フラッシュメモリの取り外しの際は [設定 | 端末 | ストレージ] にある "SD カードのマウント解除" を行ってください。
USB Bluetooth アダプタ
手持ちの PLANEX BT-MicroEDR2X を試してみましたが、ちゃんと使えるようです。
USB ジョイスティック
手持ちの USB ジョイスティックを幾つか試してみました。
ちゃんと検出されたものでも、メーカーによってキーアサインがバラバラなので、個別に USB ジョイスティック用のキーマップファイルを書いてやる 必要があります。
それにしてもジョイパッドで Android を操作するのは面白いですね。ゲーム機を触っているような感覚になりました。
USB GPS ドングル
手持ちの GPS USB Dongle GT-730F を試してみました。Android-x86 に Prolific PL2303 USB-UART をインストールすれば NMEA データを表示できるので認識はしています。
「いや、そうじゃなくてセンサーとして GPS を認識させたいんだよ!」 ...残念ながらそれにはカーネルのコンパイル が必要となってしまうのです。ちなみに Prolific PL2303 USB-UART は PL2303 チップを使った USB <-> シリアル変換 (ケーブル) 用のターミナルです。FTDI のチップを使ったものには FTDI UART Terminal が使えます。つまり、USB <-> シリアル変換ケーブルがあれば Android-x86 をシリアルコンソールにする事が可能 という事です。
See Also:
メモリ増設
AOA 150-B シリーズの最大メモリ容量は 1.5GB です。標準では表面実装で 512MB、メモリスロット (SO-DIMM) 512MB の 1GB です...つまり、1.5GB にするためには、メモリスロットの 512MB を抜いて 1GB を挿す事になります。
私は手持ちの BUFFALO D2/N667-S1GX2/E (1GB 2 枚組) の片方 を挿して 1GB にしましたが、このメモリの 1 枚物は D2/N667-S1G となります。法人向けの同等品は MV-D2/N667-S1G です。
分解の手順は "AOA150 分解" でググるといっぱい出てきますのでここでは記載しません。分解の注意点ですが、精密ドライバーの #1 (プラス) で分解する事になります。精密ドライバーを持っていなければショボイものでもいいので購入する事をオススメします (#1 でないとネジ山をナメやすいです。100円均一の店で買えます)。それとペンチの類も一つあるといいかもしれません。ネジ緩み止め剤が使ってあるので場合によっては精密ドライバーをペンチで掴んで回さないと、これまたネジ山をナメてしまう可能性があるのです…なので "どうなってもいい" 100均で買える精密ドライバをオススメします。
4.4-RC2 ではメモリをちゃんと 1.5GB 認識します。
shell@x86:/ $ free
total used free shared buffers
Mem: 1538648 869532 669116 0 11532
-/+ buffers: 858000 680648
Swap: 0 0 0
Amazon.co.jp ウィジェット
ソフトウェア
入れておくと便利なアプリが幾つかあります。好みもあるでしょうから、ちょっとだけご紹介。
日本語106/109キーボードレイアウト
キーマップの問題を解決するにはこれをインストールします。[設定 | キーボード] で物理キーボードをこれに変更しておくといいでしょう。但し、コンソールや端末エミュレータでの入力ではどうしようもありませんが...。
Google 日本語入力
日本語入力をできるようにするはインストール必須という事になるでしょう。
ES ファイルエクスプローラー
Windows の Explorer のようなファイラーです。SMB / FTP 接続もできる ため、例えば LAN 上にあるサーバのファイルを持ってきたりする事も可能です。但し [ネットワーク | LAN] 等のネットワーク関連を利用する場合には、Wi-fi を使っていなくても (有線 LAN 接続でも) インタフェース wlan0 が起動 (UP) していなければならないようです。
また、テキストエディタも内蔵しており、コンソールや端末エミュレータで vi を使わなくともファイルの編集が可能 になります。左側のメニューに [Root エクスプローラ] というのがありますので、これをオンにしておけば root 権限でファイルを書き換えたりする事ができます。
「折角の Android なのに vi なんぞ使えるか!」 と仰る方は是非。(外部に何やら送信しているようですが、それが気になる方はインストールしない方がいいでしょう)
MX 動画プレーヤー
メディアプレーヤです。別途コーデックのインストールが必要となります。
コーデックはこの 2 つを入れておけばいいと思います (多分)。ES ファイルエクスプローラー がインストールされていれば、NAS にある動画を直接再生したりもできます。環境設定でハードウェア支援機能をオンにしておくといいと思います。
Firefox
Firefox がオフラインモードになって困る場合には、以下の手順でオフラインモードを無効にする事ができます。
アドレス欄に about:config と入力して〔Enter〕キーを押す
検索ボックスに offline-status と入力して〔Enter〕キーを押す
network.manage-offline-status の値が true になっていればオフラインモードが有効なので、[切り替え]ボタンを押して false にする
あまり遭遇する問題だとは思えませんが念のために。
Quickoffice
(今は) Google の Office 互換アプリ。Word / Excel / PowerPoint のファイルの作成と編集ができます。これは他のOffice 互換アプリにも言える事ですが、ドキュメントはローカルにコピーして使ったほうがいいと思います。
Quick System Info PRO
Android 端末のシステム情報を表示します。DHCP から取得した IP アドレスを調べたりする事ができます。IP アドレスは Wi-Fi なら簡易的には [設定 | Wi-Fi] で見れるのですが、ちょっと詳しい事を調べたい場合にはコレがあると便利です。
Rotation Locker
画面の回転を抑止します。元はクラムシェルのノートなのですから、ランドスケープ (横画面) 固定で使う事が殆どでしょう。アプリによって画面を勝手に回転させられるのを防止する事ができます。
AUTO でない場合、キーボードの画面回転キー も無効となります。また、ロングタップで選択するとバックグラウンドモードで実行されます。
2X Client RDP/Remote Desktop (リモートデスクトップ: RDP)
「Windows が使いたくなったらリモートデスクトップを使えばいいじゃない?」 ...という事でリモートデスクトップ (RDP) クライアントです。リモートデスクトップ (RDP) クライアントは他にもイロイロありますが、とりあえずコレを紹介しておきます。
Microsoft Remote Desktop (リモートデスクトップ: RDP)
Microsoft 純正のリモートデスクトップ (RDP) クライアントです。ちゃんと Android-x86 でも動作します。
Android VNC Viewer (リモートデスクトップ: VNC)
「OS X が使いたくなったらリモートデスクトップを使えばいいじゃない?」 ...という事でリモートデスクトップ (VNC) クライアントです。リモートデスクトップ (VNC) クライアントは他にもイロイロありますが、とりあえずコレを紹介しておきます。
Team Viewer (リモートデスクトップ: Team Viewer)
Team Viewer も Android-x86 でちゃんと動作します。
Rooted SSH/SFTP Daemon
adb shell ではパスの TAB 補完が利かず、vi が使い物になりません。ADB enhanced Putty を使う方法 もありますが、PC で腰を据えて環境構築を行いたいのであればインストールしておくべきでしょう。初期状態だと root / abc123 でログインできます。また、SFTP も使えるので、ファイル転送も楽になります。SFTP クライアントとしては FileZilla 等が使えます。
Aspire One には物理キーボードがあるので、コンソールや端末エミュレータでやった方が早い事が多いかもしれませんが...。
ConnectBot (SSH クライアント)
[ダウンロード ]
SSH クライアントです。スマホやタブレット向けの操作方法が追加されています。
クリック
〔Ctrl〕
ダブルクリック
〔ESC〕
〔左Shift〕
〔Shift〕
〔Shift〕を二度押すとシフトロックになります。
〔右Shift〕
〔TAB〕
〔Alt〕
〔Alt〕キーに続けてキーを押すとシンボル文字を入力できます。〔Alt〕を二度押すとシフトロックになります。
〔Fn〕+↑
コンソールの文字を大きくします。
〔Fn〕+↓
コンソールの文字を小さくします。
ストア (Google Play) からダウンロード したものは上記キー操作になって面倒です。加えて言えばキー配列が英語 になってしまいます。Google Code にある APK はちゃんと日本語配列になりますし、〔TAB〕キー等も普通に使えます。
Android SDK [開発者用]
[ダウンロード ]
Android 用のアプリではないですが、開発者向けの SDK です。
ADB が使えるだけでよいのなら、"SDK Tools Only" を選択してください ("DOWNLOAD FOR OTHER PLATFORMS" をクリックするとリストが出てきます)。
Intel C++ Compiler for Android OS [開発者用]
[ダウンロード ]
Android 用のアプリではないですが、Intel CPU 向け (つまり、Android-x86 向け) の C++ コンパイラが期間限定で無償提供されています。
使わないかもしれませんが、貰えるものは貰っておきましょう。
AIDE [開発者用]
Android 用アプリをセルフ開発できるアプリケーションです。Aspire One 位の画面サイズだと充分実用的ですね。
Tips
知っておくと便利な小技やカスタマイズ方法など。Linux を触った事のない方にはちょっと難易度が高いものもあるかもしれません。
タッチパッドが効かなくなった
間違って〔Fn〕+〔F7〕を押してしまったのではないですか?もう一度〔Fn〕+〔F7〕を押してみてください。
〔ホーム〕キーは?
〔Windows〕キーを〔ホーム〕キーにするには 日本語106/109キーボードレイアウト をインストールし、[設定 | 言語と入力 | 物理キーボード] で "日本語+HOME - 日本語106/109キーボード (byta9mar)" を選択してください。
Wi-Fi と有線 LAN を切り替えるとネットワークがおかしくなる
一旦有線 LAN が有効になってしまうと、Wi-Fi (無線 LAN) へ切り替えられないような感じです。以下の手順を試してみてください。
[Wi-Fi -> 有線 LAN への切り替え]
LAN ケーブルを接続
〔Alt〕+〔F1〕でコンソールを開く
以下を実行する。
# netcfg wlan0 down
# netcfg eth0 up
〔Alt〕+〔F7〕で Android のGUI 画面に戻る
[有線 LAN -> Wi-Fi への切り替え]
(LAN ケーブルを接続したままでかまわない)
〔Alt〕+〔F1〕でコンソールを開く
以下を実行する。
# netcfg eth0 down
# netcfg wlan0 up
〔Alt〕+〔F7〕で Android のGUI 画面に戻る
LAN ケーブルを抜く
単に netcfg と叩けば現在の状況が表示されます。wlan0 が Wi-Fi で eth0 が有線 LAN です。
# netcfg
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
ifb0 DOWN 0.0.0.0/0 0x00000082 xx:xx:xx:xx:xx:xx
ifb1 DOWN 0.0.0.0/0 0x00001082 xx:xx:xx:xx:xx:xx
sit0 DOWN 0.0.0.0/0 0x00001080 00:00:00:00:00:00
rmnet2 DOWN 0.0.0.0/0 0x00001080 00:00:00:00:00:00
ip6tnl0 DOWN 0.0.0.0/0 0x00001002 00:00:00:00:00:00
eth0 DOWN 192.168.1.10/24 0x00001002 xx:xx:xx:xx:xx:xx
wlan0 UP 192.168.1.20/24 0x00001043 xx:xx:xx:xx:xx:xx
電源管理のウィジェットで Wi-fi のオンオフを操作した場合には以下のような動作になります。
Wi-fi オフ: wlan0 のインターフェイスが消える。eth0 の状態は変化しない。
Wi-fi オン: wlan0 のインターフェイスが現れ UP になる。eth0 の状態は変化しない。
切り替えが面倒であれば Android-x86 の再起動を行ってください。
有線 LAN の IP アドレスを指定したい
android-x86.org の公式ビルドでは [設定 | 無線とネットワーク | その他] に "Ethernet" がありませんので、そのままでは有線 LAN の IP を指定できません。しかしながら以下の方法で有線 LAN (Ethernet) の IP アドレスを変更する事ができます。
[DHCP による自動取得の場合]
〔Alt〕+〔F1〕でコンソールを開く
以下を実行する。
# netcfg eth0 up
# netcfg eth0 dhcp
# setprop net.dns1 <プライマリ DNS (8.8.8.8)>
# setprop net.dns2 <セカンダリ DNS (4.4.4.4)>
〔Alt〕+〔F7〕で Android のGUI 画面に戻る
[手動設定の場合]
〔Alt〕+〔F1〕でコンソールを開く
以下を実行する。
# ifconfig eth0 <IP アドレス> up
# route add default gw <デフォルトゲートウェイ> dev eth0
# setprop net.dns1 <プライマリ DNS (8.8.8.8)>
# setprop net.dns2 <セカンダリ DNS (4.4.4.4)>
〔Alt〕+〔F7〕で Android のGUI 画面に戻る
設定した内容は Android を再起動すると消えてしまいますので再設定しなくてはなりません。再設定が面倒なのであれば /system/etc/init.sh に設定を追記してください。
PATH=/system/bin:/system/xbin
DMIPATH=/sys/class/dmi/id
board=`cat $DMIPATH/product_name`
case "$board" in
*)
;;
esac
alsa_ctl init
alsa_amixer set Master on
alsa_amixer set Master 100
alsa_amixer set Headphone on
alsa_amixer set Headphone 100
alsa_amixer set Speaker 100
alsa_amixer set Capture 100
alsa_amixer set Capture cap
alsa_amixer set PCM 100 unmute
alsa_amixer set 'Mic Boost' 2
# import cmdline variables
for c in `cat /proc/cmdline`; do
case $c in
*=*)
eval $c
;;
esac
done
[ -z "$SDCARD" -o "$SDCARD" = "internal" ] && start sdcard
# Start Fixing Ethernet
ifconfig eth0 192.168.1.10 up
route add default gw 192.168.1.1 dev eth0
setprop net.dns1 8.8.8.8
setprop net.dns2 4.4.4.4
# Start Wireless LAN
netcfg eth0 down
netcfg wlan0 down
netcfg wlan0 up
# change brightness file permission for liblights
brfile=$(getprop backlight.brightness_file)
chown 1000.1000 ${brfile:-/sys/class/backlight/acpi_video0/brightness}
# disable cursor blinking
[ "$(getprop system_init.startsurfaceflinger)" = "0" ] && echo -e '\033[?17;0;0c' > /dev/tty0
# enable automatic frequency scaling
for cpu in /sys/devices/system/cpu/cpu*; do
echo ondemand > $cpu/cpufreq/scaling_governor
done
# a hack for USB modem
lsusb | grep 1a8d:1000 && eject
hardware=$(getprop ro.hardware)
hw_sh=/system/etc/init.$hardware.sh
[ -e $hw_sh ] && exec sh $hw_sh
上記例では有線 LAN の IP アドレスを 192.168.1.10、デフォルトゲートウェイを 192.168.1.1 に設定し、起動時は無線 LAN を優先するようにしてあります。8.8.8.8 と 4.4.4.4 は Google のパブリック DNS です。
Android-x86 へ Telnet / SSH 接続したい
目的が "Android-x86 を PC からいじりたい" というだけであれば、簡易的には Android SDK Tools でシェルを起動できます ("SDK Tools Only" で OK)。
コマンドプロンプト (CMD.EXE) を起動する。
"adb connect <Android-x86 の IP アドレス>" と入力する。Android-x86 の IP アドレスが 192.168.1.10 の場合には以下のようになります。
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Owner>adb connect 192.168.1.10
connected to 192.168.1.10:5555
接続されたら、続けて "adb shell" と入力する。
C:\Users\Owner>adb shell
shell@eeepc:/ $
...ですが、adb の shell だとエスケープシーケンスを処理しないため vi がマトモに使えなかったり、TAB によるパス補完ができなかったりします。
ADB enhanced Putty を使えばこの問題を回避できます。
ADB connect: transport:<Android-x86 の IP アドレス>:5555
ポート: 5037
接続タイプ: ADB
左ペインの [接続 | Adb] で、"adb kill-server" のチェックを外してください 。他の設定/操作は通常の PuTTY と変わりません。接続の前に adb connect <Android-x86 の IP アドレス> しておく必要があります。
Android SDK Tools をインストールしていない場合や、本格的にリモートで触りたい (Telnet / SSH 接続したい) 場合には Rooted SSH/SFTP Daemon をインストールしましょう。
カーネルオプションを渡したい (GRUB)
起動時の GRUB メニューでデバッグモードを選択して起動し、/mnt/grub/menu.lst を編集してください。必然的に vi と英語配列キーボード で編集する事になりますので注意が必要です。
/mnt/grub/menu.lst の編集が終わったら、コンソールで exit を二回叩いて下さい。Android の GUI が起動します。そのまま終了して再起動してください。
外部ディスプレイを使いたい
起動時に GRUB メニューの
Android-x86 4.4-RC2 (Debug video=LVDS-1:d)
を選択してください。デバッグモードが不要なのであれば /mnt/grub/menu.lst を編集し、カーネルオプションから DEBUG=2 を削除してください。
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。