[[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 大塚聡史