xxx.s500

トップ | 最近の更新 | このサイトについて | rss2.0

[linux/unix] [android-x86] 解像度を設定する

android-x86 デフォルト解像度の画像 実機を持ってないのでVirtualbox上にandroid-x86(4.4r1)をインストールしているわけだけど、デフォルトのままの画面ではスマホっぽく見えない。なので解像度を調節することにした。

解像度のモードを追加する

vboxmanageコマンドを使えば解像度設定を追加できるそうな。linuxの場合はすでにコマンドが登録されているからそのまま打てばいいけど、windowsの場合、コマンドがあるデレクトリを探さなければいけないので面倒かも。

$ vboxmanage setextradata <仮想マシン名> "CustomVideoMode1" "320x568x16"

解像度は320x568にしておく。マシンパワーが著しく貧弱なので色数は16ビットでいいや。
こうしておけば起動時のGRUB画面で a を押したあと、 vga=ask を追記してエンターを押すと解像度の一覧が表示されるので、その中から今回登録した縦長解像度を選択して起動させればよい。……のだけど、いつまで経っても起動しやがらない。なんで?

GRUBの起動画面に新規解像度モードを登録する

ここで数10分ハマっていたのだけど、 vga=ask からモードを選択するのではなく、GRUBの起動画面に解像度モードを登録してみたら解決した。以下、方法を書いておく。

  1. 起動直後のGRUB画面で a キーを押す。
  2. vga=ask を追記してエンターを2度押すと解像度の一覧が表示される。
  3. デフォで起動させたい解像度の番号をメモする(今回の場合、360だった)。
  4. 再起動。GRUB画面からデバッグモードを選択。ルート権限でログインした状態になる。このままでは設定ファイルを更新できないので、書き込み可能な状態へとリマウントしなければいけないそうな。コマンドはこんな感じ。
    # cd /
    # mount -o remount  -rw /mnt
    # vi /mnt/grub/menu.lst
    
    このとき、面倒くさいことにUSキーボード配列になるので注意。
  5. 先頭のtitle 〜 の3行をコピーして新しいメニューを追加。そのときタイトルを適当に変更しておく。
  6. 2行目の後ろに "vga=864" と追記する。この「864」というのは、さっきメモした数値(16進数)を10進数に変換した数値になる。
    title Android-x86 4.4-r1 mobile
              kernel /android-4.4-r1/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android-4.4-r1 vga=864
              initrd /android-4.4-r1/initrd.img
    
  7. 設定ファイルを保存して再起動。
  8. GRUBの起動メニューに今回追加した項目が追加されているはず。

完成

android-x86 解像度320x568の画像
こんな感じになった。スマホっぽいですな。

解像度とUserAgent

android-x86のデフォルトの解像度(800x600?)で起動した場合、ブラウザのUserAgentの中に"Mobile"という文字列が含まれていなかった。
今回のように縦長画面に設定すると"Mobile"という文字列が挿入される模様。横の解像度を狭くすると切り替わるのかな?