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 はユニバーサル版となっているようです。以下にインストール手順を示します。

  1. USB 光学ドライブを Aspire One に接続します。
  2. Aspire One の電源を入れます。
  3. 起動画面で〔F12〕キーを押し、ブートセレクタを表示します。
  4. Android-x86 のインストール DVD を光学ドライブにセットします。
  5. USB 光学ドライブから起動させます。
  6. インストールメニューで "Installation" を選択します。

  7. インストールするパーティションを選択します。まず、"Create/Modify partition" ですべてのパーティションを削除した方が悩まずに済みます。画像はすべてのパーティションを削除した状態のものです。

  8. 先程の画面から "Create/Modify partitions" を選びます。パーティションが存在しないので [New] を選択し (カーソルキーで移動)、〔Enter〕キーを押します。

  9. [Primary] を選択し〔Enter〕キーを押します。

  10. パーティションの容量を尋ねられますのでそのまま〔Enter〕キーを押します。

  11. [Bootable] を選択し〔Enter〕キーを押します。Flgs 欄が "Boot" に変わります。

      
  12. [Write] を選択し〔Enter〕キーを押します。

  13. "Are you sure you want to write the partition table to disk? (yes or no):" と尋ねられますので "yes" とタイプして〔Enter〕キーを押します。

  14. [Quit] を選択し〔Enter〕キーを押します。

  15. パーティションが作成されました。この Linux パーティションを選択して [OK] を押します。

  16. パーティションのフォーマットを行います。"ext3" を選択して [OK] を押します。

  17. 本当にフォーマットしていいのか尋ねられますので [Yes] を押します。

  18. フォーマットが実行されます。

  19. ブートローダ (GRUB) をインストールするか尋ねられますので [Yes] を押します。

  20. システムを読み書き可能な状態でマウントするか尋ねられますので [Yes] を押します。

  21. Android OS のインストールが始まります。

  22. すべてのインストール作業が完了しました。"Reboot" を選んで再起動を行ってください。


4.0-r1 とのマルチブート

4.0-r1 と同居させるには…

このようにします。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

これでマルチブートが可能となります。


初期設定

初回起動時にある程度の設定をやってしまいましょう

  1. Android を起動します。ブートセレクタで〔Enter〕キーを押すと即 Android が起動します。

  2. Android 起動中です。初回起動時は特に時間が掛かるかもしれませんが気長にお待ちください。

  3. ようこそ画面になりました。

  4. 表示言語を日本語に切り替え (カーソルキーの↓を押すと簡単です)、三角形のボタンを押してセットアップを行います。

  5. セットアップの内容は人によって異なると思いますので省略します。[OK] ボタンを何度か押します。

  6. ホーム画面が表示されました。



    まず、中央下にある "アプリケーションアイコン (丸に 6 つの四角形) " をクリックします。
  7. アプリケーションメニューになりました。[設定] アイコンをクリックします。ホーム画面で〔Ctrl〕+〔P〕を押しても設定画面へ移動できます。

  8. 左のリストから "日付と時刻" を選び、任意に設定します。時刻がおかしいようであれば、タイムゾーン等をいじってください。

      
  9. 左のリストから "タブレット情報" を選びます。

      
  10. "ビルド番号" を連続でタップ (クリック) すると、[開発者向けオプション] がアンロックされます。

      
  11. ちなみに "Android バージョン" を連続でタップ (クリック) すると、イースターエッグが表示されます。

      
  12. "開発者向けオプション" で、"擬似ロケーションを許可" や "GPU レンダリングを使用" にチェックを入れておくといいでしょう。

      
  13. 電源ボタンをダブルクリックし、再起動を行ってください。

  14. これで初期設定が完了しました。後はお好みでカスタマイズしてください。

動くものと動かないもの

思う所はヒトそれぞれだと思いますが、個人的には大きな問題点はないように思えます。

[4.4-RC2 の場合 (4.0-r1 との違い)]

"できない事" は独自ビルドするしか解決方法はないかもしれません。しかし、"独自ビルドするとできない事も増える" ため、オススメはできません (ある意味時間の無駄ですし)。



ハードウェア

これと言って特に追加しなきゃいけないようなものはないんですよね...。


USB マウス

手持ちの USB マウスを試してみましたが、普通に使えます。


USB フラッシュメモリ

手持ちの USB フラッシュメモリを試してみましたが、普通に使えます。一般的な USB タイプの SD カードリーダ/ライタも大抵使えると思います。例えば、ダイソーの MicroSD カードリーダー/ライター (E001: パソコン Personal Computer: 121 / JAN: 4549131115628) はちゃんと動作します。

USB フラッシュメモリの取り外しの際は [設定 | 端末 | ストレージ] にある "SD カードのマウント解除" を行ってください。


USB Bluetooth アダプタ

手持ちの PLANEX BT-MicroEDR2X を試してみましたが、ちゃんと使えるようです。


USB ジョイスティック

手持ちの USB ジョイスティックを幾つか試してみました。

製品名 デバイス名 ベンダー ID プロダクト ID
SKnet SMART JOYPAD 3 PSX-USB PSX-USB Adapter 0x0b43 0x0001
Genius NAVIGATOR 365 LASER KYE SYSTEMS CORP. Navigator 365 Laser 0x0458 0x007b
ELECOM JC-U2410TBK (検出されず) - -

ちゃんと検出されたものでも、メーカーによってキーアサインがバラバラなので、個別に USB ジョイスティック用のキーマップファイルを書いてやる必要があります。

それにしてもジョイパッドで Android を操作するのは面白いですね。ゲーム機を触っているような感覚になりました。


USB GPS ドングル

手持ちの GPS USB Dongle GT-730F を試してみました。Android-x86Prolific 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


ソフトウェア

入れておくと便利なアプリが幾つかあります。好みもあるでしょうから、ちょっとだけご紹介。


日本語106/109キーボードレイアウト

Android app on Google Play

キーマップの問題を解決するにはこれをインストールします。[設定 | キーボード] で物理キーボードをこれに変更しておくといいでしょう。但し、コンソールや端末エミュレータでの入力ではどうしようもありませんが...。


Google 日本語入力

Android app on Google Play

日本語入力をできるようにするはインストール必須という事になるでしょう。


ES ファイルエクスプローラー

Android app on Google Play

Windows の Explorer のようなファイラーです。SMB / FTP 接続もできるため、例えば LAN 上にあるサーバのファイルを持ってきたりする事も可能です。但し [ネットワーク | LAN] 等のネットワーク関連を利用する場合には、Wi-fi を使っていなくても (有線 LAN 接続でも) インタフェース wlan0 が起動 (UP) していなければならないようです。

また、テキストエディタも内蔵しており、コンソールや端末エミュレータで vi を使わなくともファイルの編集が可能になります。左側のメニューに [Root エクスプローラ] というのがありますので、これをオンにしておけば root 権限でファイルを書き換えたりする事ができます。

「折角の Android なのに vi なんぞ使えるか!」 と仰る方は是非。(外部に何やら送信しているようですが、それが気になる方はインストールしない方がいいでしょう)


MX 動画プレーヤー

Android app on Google Play

メディアプレーヤです。別途コーデックのインストールが必要となります。

コーデックはこの 2 つを入れておけばいいと思います (多分)。ES ファイルエクスプローラーがインストールされていれば、NAS にある動画を直接再生したりもできます。環境設定でハードウェア支援機能をオンにしておくといいと思います。


Firefox

Android app on Google Play

Firefox がオフラインモードになって困る場合には、以下の手順でオフラインモードを無効にする事ができます。

  1. アドレス欄に about:config と入力して〔Enter〕キーを押す
  2. 検索ボックスに offline-status と入力して〔Enter〕キーを押す
  3. network.manage-offline-status の値が true になっていればオフラインモードが有効なので、[切り替え]ボタンを押して false にする

あまり遭遇する問題だとは思えませんが念のために。


Quickoffice

Android app on Google Play

(今は) Google の Office 互換アプリ。Word / Excel / PowerPoint のファイルの作成と編集ができます。これは他のOffice 互換アプリにも言える事ですが、ドキュメントはローカルにコピーして使ったほうがいいと思います。


Quick System Info PRO

Android app on Google Play

Android 端末のシステム情報を表示します。DHCP から取得した IP アドレスを調べたりする事ができます。IP アドレスは Wi-Fi なら簡易的には [設定 | Wi-Fi] で見れるのですが、ちょっと詳しい事を調べたい場合にはコレがあると便利です。


Rotation Locker

Android app on Google Play

画面の回転を抑止します。元はクラムシェルのノートなのですから、ランドスケープ (横画面) 固定で使う事が殆どでしょう。アプリによって画面を勝手に回転させられるのを防止する事ができます。

AUTO でない場合、キーボードの画面回転キーも無効となります。また、ロングタップで選択するとバックグラウンドモードで実行されます。


2X Client RDP/Remote Desktop (リモートデスクトップ: RDP)

Android app on Google Play

「Windows が使いたくなったらリモートデスクトップを使えばいいじゃない?」...という事でリモートデスクトップ (RDP) クライアントです。リモートデスクトップ (RDP) クライアントは他にもイロイロありますが、とりあえずコレを紹介しておきます。


Microsoft Remote Desktop (リモートデスクトップ: RDP)

Android app on Google Play

 Microsoft 純正のリモートデスクトップ (RDP) クライアントです。ちゃんと Android-x86 でも動作します。


Android VNC Viewer (リモートデスクトップ: VNC)

Android app on Google Play

「OS X が使いたくなったらリモートデスクトップを使えばいいじゃない?」...という事でリモートデスクトップ (VNC) クライアントです。リモートデスクトップ (VNC) クライアントは他にもイロイロありますが、とりあえずコレを紹介しておきます。


Team Viewer (リモートデスクトップ: Team Viewer)

Android app on Google Play

Team Viewer も Android-x86 でちゃんと動作します。


Rooted SSH/SFTP Daemon

Android app on Google Play

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 app on Google Play

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 への切り替え]

  1. LAN ケーブルを接続
  2. 〔Alt〕+〔F1〕でコンソールを開く
  3. 以下を実行する。

    # netcfg wlan0 down
    # netcfg eth0 up
  4. 〔Alt〕+〔F7〕で Android のGUI 画面に戻る

[有線 LAN -> Wi-Fi への切り替え]

  1. (LAN ケーブルを接続したままでかまわない)
  2. 〔Alt〕+〔F1〕でコンソールを開く
  3. 以下を実行する。

    # netcfg eth0 down
    # netcfg wlan0 up
  4. 〔Alt〕+〔F7〕で Android のGUI 画面に戻る
  5. LAN ケーブルを抜く

単に netcfg と叩けば現在の状況が表示されます。wlan0 が Wi-Fi で eth0 が有線 LAN です。

電源管理のウィジェットで Wi-fi のオンオフを操作した場合には以下のような動作になります。

切り替えが面倒であれば Android-x86 の再起動を行ってください。


有線 LAN の IP アドレスを指定したい

android-x86.org の公式ビルドでは [設定 | 無線とネットワーク | その他] に "Ethernet" がありませんので、そのままでは有線 LAN の IP を指定できません。しかしながら以下の方法で有線 LAN (Ethernet) の IP アドレスを変更する事ができます。

[DHCP による自動取得の場合]

  1. 〔Alt〕+〔F1〕でコンソールを開く
  2. 以下を実行する。

    # netcfg eth0 up
    # netcfg eth0 dhcp
    # setprop net.dns1 <プライマリ DNS (8.8.8.8)>
    # setprop net.dns2 <セカンダリ DNS (4.4.4.4)>
    
  3. 〔Alt〕+〔F7〕で Android のGUI 画面に戻る

[手動設定の場合]

  1. 〔Alt〕+〔F1〕でコンソールを開く
  2. 以下を実行する。

    # 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)>
  3. 〔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)。

  1. コマンドプロンプト (CMD.EXE) を起動する。
  2. "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
  3. 接続されたら、続けて "adb shell" と入力する。

    C:\Users\Owner>adb shell
    shell@eeepc:/ $
    

...ですが、adb の shell だとエスケープシーケンスを処理しないため vi がマトモに使えなかったり、TAB によるパス補完ができなかったりします。

ADB enhanced Putty を使えばこの問題を回避できます。

左ペインの [接続 | 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 メニューの

を選択してください。デバッグモードが不要なのであれば /mnt/grub/menu.lst を編集し、カーネルオプションから DEBUG=2 を削除してください。



ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: