[[Software/Android]]~
[[Software/Android/bc9]]~
[[Software/Android/bc9/userland(1/2)]]~

#contents

*Android userland の作成2 [#g5020811]

**userlandの整備 [#f6e4e6fb]
build が終わると
 ~/mydroid/out/target/product/generic/
に Android の userland 一式が build されています。~
gumstix の jffs2 が mmap に対応していないこと、内蔵 FlashROM の容量が足りないことから、~
build して出来た userland ファイルは gumstix の ファイルシステム上には置かず、 ~
ext2 にフォーマットした USBフラッシュメモリにコピーします。~
実際の作業は以下のようになります。~

-USBフラッシュメモリを ext2 に。~
USBフラッシュメモリを build マシンに挿します。(ubuntu なので自動的に /media/disk へ mount されます。)
 # umount /media/disk
 # fdisk /dev/sdb1   (この作業は gparted などから行っても OK です。)
 # mkfs.ext2 /dev/sdb1 (この作業は gparted などから行っても OK です。)

-build された Android userland ファイルをコピー。~
フォーマットとファイルシステムの作成が終わったら一度USBフラッシュメモリを抜いて再度 build マシンに挿します。
 # cd /media/disk
 # mkdir android-root
 # cp -a /home/beat/mydroid/out/target/product/generic/root/* .
 # cp -a /home/beat/mydroid/out/target/product/generic/data/* data/  data フォルダ内は空ですが、念のため
 # cp -a /home/beat/mydroid/out/target/product/generic/system/* system/
 # chown -R root.root *
 # chmod -R 777 data/ system/
 # ls
 data          dev   init.goldfish.rc  proc  sys
 default.prop  init  init.rc           sbin  system

-init 設定ファイルと keyレイアウト設定ファイルの調整~
--Android の起動時に init が実行する処理の内容を設定する init.rc の記述内容のうち、~
G1 phone を前提にした yaffs2 の mount の箇所を以下のようにコメントアウトして無効にします。~
 diff -u init.rc.orig init.rc
 --- init.rc.orig	2009-03-31 12:50:16.000000000 +0900
 +++ init.rc	2009-03-31 12:57:19.000000000 +0900
 @@ -36,16 +36,16 @@
   
  # mount mtd partitions
      # Mount /system rw first to give the filesystem a chance to save a checkpoint
 -    mount yaffs2 mtd@system /system 
 -    mount yaffs2 mtd@system /system ro remount
 +//    mount yaffs2 mtd@system /system 
 +//    mount yaffs2 mtd@system /system ro remount
 +#    mount yaffs2 mtd@system /system 
 +#    mount yaffs2 mtd@system /system ro remount
  
      # We chown/chmod /data again so because mount is run as root + defaults
 -    mount yaffs2 mtd@userdata /data nosuid nodev
 +//    mount yaffs2 mtd@userdata /data nosuid nodev
 +#    mount yaffs2 mtd@userdata /data nosuid nodev
      chown system system /data
      chmod 0771 /data
 
      # Same reason as /data above
 -    mount yaffs2 mtd@cache /cache nosuid nodev
 +//    mount yaffs2 mtd@cache /cache nosuid nodev
 +#    mount yaffs2 mtd@cache /cache nosuid nodev
      chown system cache /cache
      chmod 0770 /cache

--Android 起動後のハードウェアキーの動作割り当てを決めるファイル
 system/usr/keylayout/qwerty.kl
を以下のように編集し、「ホーム画面へ戻る」などのキー操作が有効になるようにします。
 diff -u qwerty.kl.orig qwerty.kl.new 
 --- qwerty.kl.orig	2009-03-31 13:20:22.000000000 +0900
 +++ qwerty.kl.new	2009-03-31 13:36:09.000000000 +0900
 @@ -12,8 +12,8 @@
  key 158   BACK              WAKE_DROPPED
  key 230   SOFT_RIGHT        WAKE
  key 60    SOFT_RIGHT        WAKE
 -key 107   ENDCALL           WAKE_DROPPED
 -key 62    ENDCALL           WAKE_DROPPED
 +key 107   ENDCALL           WAKE
 +key 88    ENDCALL           WAKE
  key 229   MENU              WAKE_DROPPED
  key 139   MENU              WAKE_DROPPED
  key 59    MENU              WAKE_DROPPED
 @@ -26,12 +26,14 @@
  key 232   DPAD_CENTER       WAKE_DROPPED
  key 108   DPAD_DOWN         WAKE_DROPPED
  key 103   DPAD_UP           WAKE_DROPPED
 -key 102   HOME              WAKE 
  key 105   DPAD_LEFT         WAKE_DROPPED
  key 106   DPAD_RIGHT        WAKE_DROPPED
  key 115   VOLUME_UP
  key 114   VOLUME_DOWN
  key 116   POWER             WAKE
 +key 63	  MENU	            WAKE
 +key 63    MENU	      WAKE
 +key 66    HOME              WAKE
 +key 67	  BACK	            WAKE
 +key 67    BACK	      WAKE
  key 212   CAMERA
  
  key 16    Q
key の番号がキーボードのどのキーにあたるかは
 ~/gumstix/gumstix-oe/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/gumstix-kernel-2.6.24-r1/linux-2.6.24/include/linux/input.h
を参照して下さい。

-----------------
RIGHT:by 大塚聡史

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS