bc9/bc9-android-sdk setup
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
]
開始行:
[[bc9/bc9-android-sdk]]
bc9-android-sdk
-version
--bc9-android-sdk--release20090801
#contents
* Vmware [#p80852e6]
bc9-android-sdk でのVmwareイメージの設定を記述します。~
-Version:6.5互換
-Disk 容量:仮想ディスク20G(2Gごとに分割の設定)
-CPU数:cpu 1
-memory:512M
--VMイメージの cpu、memory を増やしたい場合は、bc9-androi...
-Network:bridge network
-OS
--Ubuntu 8.04.3 LTS(8.04.2LTSでインストール後 update)
--アプリケーションは以下の設定以外はインストール後の defa...
--/bin/sh のシンボリックリンクがdashになっているので bash...
---sudo dpkg-reconfigure dash
--gnome-games ほか game 関連は削除します。(容量削減のた...
---sudo apt-get remove gnome-cards-data gnome-games gnome...
--ssh、ntp、vim、lv、nautilus-open-terminal、adobe falsh ...
--vmware-tools インストール済みです。
--default 解像度 1280x768に設定しています。
--network は dhcp でアドレスを取得する設定です。
--作業用に作成してある user は beat、beat の password は ...
* android (Android Open Source project) [#m93cc150]
repo のインストールなど android の build に必要な setup ...
-http://source.android.com/download ~
今回使用する branch は android-sdk-1.5_r3 です。~
** 初期化 [#waf2b56c]
/home/beat/ に android-sdk-1.5_r3 ディレクトリを作成しrep...
$ cd ~/
$ mkdir android-sdk-1.5_r3
$ repo init -u git://android.git.kernel.org/platform/man...
** 取得内容の追加(local_manifest) [#ad5c532d]
repo init 後、.repo に以下の内容で local_manifest.xml を...
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="kernel" name="kernel/common" revis...
<project path="external/alsa-lib" name="platform/...
<project path="hardware/alsa_sound" name="platfor...
</manifest>
** ソースの取得 [#ce572f01]
上記設定が終了したら、repo syncをしソースを取得します。~
$ repo sync
** ソースファイル修正 [#ed745241]
repo sync 後、取得したソースに以下の修正を追加します。~
- alsaの追加~
android-sdk-1.5_r3/external/alsa-lib/Android.mk を以下の...
--- Android.mk.orig 2009-07-09 07:05:41.000000000 -0...
+++ Android.mk 2009-07-09 07:05:48.000000000 -0700
@@ -55,7 +55,7 @@
-fPIC -DPIC -D_POSIX_SOURCE \
-DALSA_CONFIG_DIR=\"/system/usr/share/alsa\" \
-DALSA_PLUGIN_DIR=\"/system/usr/lib/alsa-lib\" \
- -DALSA_DEVICE_DIRECTORY=\"/dev/snd/\"
+ -DALSA_DEVICE_DIRECTORY=\"/dev/\"
LOCAL_SRC_FILES := $(sort $(call all-c-files-under, src))
-ALSA が audio hardware library として使用されるよう buil...
android-sdk-1.5r3/build/target/board/generic/BoardConfig....
# config.mk
#
# Product-specific compile-time definitions.
#
# The generic product target doesn't have any hardware-s...
TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
TARGET_NO_RADIOIMAGE := true
HAVE_HTC_AUDIO_DRIVER := true
BOARD_USES_ALSA_AUDIO := true
#BOARD_USES_GENERIC_AUDIO := true ※コメントアウト
- 電源
電源管理patch(dummy-battery.patch)を適用します。~
$ cd android-sdk-1.5_r3
$ patch -p1 < ../dummy-battery.patch
** ビルド [#ybc519c0]
ここまでの調整が終わったら build します。~
$ cd android-sdk-1.5_r3
$ make
***OpenWnn [#e55cd59f]
上記の build では OpenWnn は build されないので、source ...
COLOR(blue){2009/08/18追記}~
COLOR(blue){bc9 は landscape での動作が基本ですが、androi...
COLOR(blue){そのため、}android-sdk-1.5_r3/packages/inputm...
$ cd android-sdk-1.5_r3/packages/inputmethods/OpenWnn
$ git checkout korg/cupcake-release
branch 切り替え後、landscape 表示時の software keyboard ...
$ vim android-sdk-1.5_r3/packages/inputmethods/OpenWnn/s...
843行目 Create the keyboard for landscape mode 以下、~
createKeyboardsLandscape の中のコメントアウトされている k...
修正完了後、OpenWnnの追加 buildをします。~
%% $ cd android-sdk-1.5_r3 %%~
%% $ make OpenWnn %%~
COLOR(blue){2009/08/18追記}~
COLOR(blue){make OpenWnn では OpenWnn.apk しか build され...
COLOR(blue){以下が正しい手順です。}
$ cd android-sdk-1.5_r3/build/
$ source envsetup.sh
$ cd android-sdk-1.5_r3/packages/inputmethods/OpenWnn
$ mm
COLOR(blue){これで、OpenWnn.apk と、 android-sdk-1.5r3/ou...
COLOR(blue){OpenWnnのlibファイル群がビルドされます。}
** oggファイル [#ndaa1208]
android-sdk-1.5_r3/frameworks/base/data/sounds ~
にある AudioPackage2.mk を Android.mk にリネームし、以下...
$ cp AudioPackage2.mk Android.mk
$ cd android-sdk-1.5_r3/build/
$ source envsetup.sh
$ cd android-sdk-1.5_r3/frameworks/base/data/sounds
$ mm
これで android-sdk-1.5_r3/out/target/product/generic/syst...
* rootfilesystemの作成 [#tfbfc06b]
androidのビルドが正常に完了したら、android-rootというディ...
必要なファイルを配置します。~
$ cd ~/
$ mkdir android-root
$ cp -a ~/android-sdk-1.5_r3/out/target/product/generic/...
$ cp -a ~/android-sdk-1.5_r3/out/target/product/generic/...
** init.rcの編集 [#xa5a254a]
android-root/init.rc に以下を追加します。~
場所はon bootの直前です。~
chmod 0666 /dev/bc9_leds
setprop alsa.mixer.playback.master Master
setprop alsa.mixer.capture.master Capture
setprop alsa.mixer.playback.earpiece Master
setprop alsa.mixer.capture.earpiece Capture
setprop alsa.mixer.playback.headset Master
setprop alsa.mixer.playback.speaker Master
chmod 0777 /dev/pcmC0D0c
chmod 0777 /dev/pcmC0D0p
chmod 0777 /dev/controlC0
chmod 0777 /dev/timer
chown root audio /dev/controlC
chown root audio /dev/pcmC0D0c
chown root audio /dev/pcmC0D0p
chown root audio /dev/timer
on boot
# basic network init
また、yaffs2 でmountしている箇所をコメントアウトします。~
**default.propの編集 [#c55e519d]
android-root/default.prop の末尾に以下を追加します。~
net.eth0.dns1=208.66.222.222
net.dns1=208.67.222.222
次に、音を鳴らすための設定をします。~
** asound.stateの作成 [#sd213aff]
android-root/system/etc/ に asound.state と asound.conf ...
以下の asound.state は bc9 を OpenEmbedded で起動して als...
state.Gumstix {
control.1 {
comment.access 'read write'
comment.type INTEGER
comment.count 1
comment.range '0 - 4'
iface MIXER
name 'Tone Control - Bass'
value 0
}
control.2 {
comment.access 'read write'
comment.type INTEGER
comment.count 1
comment.range '0 - 2'
iface MIXER
name 'Tone Control - Treble'
value 0
}
control.3 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Headphone Playback Switch'
value true
}
control.4 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name De-emphasis
value false
}
control.5 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'DC Filter'
value true
}
control.6 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Hi-pass Filter'
value true
}
control.7 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'ADC Filter'
value true
}
control.8 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Master Playback Switch'
value true
}
control.9 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 63'
iface MIXER
name 'Master Playback Volume'
value.0 63
value.1 63
}
control.10 {
comment.access 'read write'
comment.type ENUMERATED
comment.count 2
comment.item.0 Mic
comment.item.1 CD
comment.item.2 Video
comment.item.3 Aux
comment.item.4 Line
comment.item.5 Mix
comment.item.6 'Mix Mono'
comment.item.7 Phone
iface MIXER
name 'Capture Source'
value.0 Mic
value.1 Mic
}
control.11 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Capture Switch'
value true
}
control.12 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 15'
iface MIXER
name 'Capture Volume'
value.0 15
value.1 15
}
control.13 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Loudness (bass boost)'
value false
}
}
** asound.confの作成 [#hb0044bb]
以下の asound.conf は asound.state を元に作成したものです...
ctl.AndroidPlayback {
type hw
card 0
}
ctl.AndroidRecord {
type hw
card 0
}
pcm.AndroidPlayback {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Speaker_normal {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Speaker {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Headset {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Speaker_incall {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Headset_incall {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Earpiece_incall {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Bluetooth {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidRecord_Microphone {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
** vold.confの作成 [#v8ad16ba]
sdcard の mount は vold がおこないます。~
vold は以下の場所の設定ファイルに従って動作するので、まず...
$ vi android-root/system/etc/vold.conf
書式は以下のようにします。~
## vold configuration file for bc9
volume_sdcard {
media_path /devices/platform/pxa2xx-mci.0/mmc_host...
media_type mmc
mount_point /sdcard
ums_path /devices/platform/usb_mass_storage/lun0
}
** キー割り当て [#b03ec7a6]
bc9にはボタンが3つあり、上からキーボードのF1,F2,F3が~
割り当てられています。~
Androidで必要なHome,Menu,Backをそれぞれ割り当てます。~
~
android-root/system/usr/keylayout ~
にqwerty.klがあります。~
以下のように編集してください。~
--- qwerty.kl-orig 2009-07-02 20:28:21.000000000 +0...
+++ qwerty.kl 2009-07-02 20:29:42.000000000 +0900
@@ -11,18 +11,18 @@ key 10 9
key 11 0
key 158 BACK WAKE_DROPPED
key 230 SOFT_RIGHT WAKE
-key 60 SOFT_RIGHT WAKE
+key 60 MENU WAKE
key 107 ENDCALL WAKE_DROPPED
key 62 ENDCALL WAKE_DROPPED
key 229 MENU WAKE_DROPPED
key 139 MENU WAKE_DROPPED
-key 59 MENU WAKE_DROPPED
+key 59 HOME WAKE
key 127 SEARCH WAKE_DROPPED
key 217 SEARCH WAKE_DROPPED
key 228 POUND
key 227 STAR
key 231 CALL WAKE_DROPPED
-key 61 CALL WAKE_DROPPED
+key 61 BACK WAKE
key 232 DPAD_CENTER WAKE_DROPPED
key 108 DPAD_DOWN WAKE_DROPPED
key 103 DPAD_UP WAKE_DROPPED
* android-SDK [#kd7a7e72]
Android 1.5 SDK, Release 3~
http://developer.android.com/sdk/1.5_r3/index.html~
をインストール(ADB、emulator などが使えるように)
* eclipse [#q7b6cb81]
[[Installing the Android SDK:http://developer.android.com...
Eclipse 3.4.2 と android 開発用 plugin をインストール
* linux kernel source [#i127f099]
android-sdk-1.5_r3 に local_manifest を追加して取得した a...
/home/beat/ に kernel_work ディレクトリを作成しそこへ ker...
これに bc9 用 patch を当てます。~
$ cd /home/beat/kernel_work/linux-android-2.6.29/
$ mv ../patch-kernel-2.6.29.4-bc9/patch-all.sh .
$ mv ../patch-kernel-2.6.29.4-bc9/*.patch .
$ ./patch-all.sh
17個 の patch がすべて当たったら、patch 済みとわかるよう...
$ mv linux-android-2.6.29 linux-android-2.6.29-bc9-r3
* cross toolchain [#j81bad54]
bc9-oe-sdk で build した gumstix-oe の cross toolchain を...
/home/beat/kernel_work/envsetup.sh で kernel の ARM cross...
終了行:
[[bc9/bc9-android-sdk]]
bc9-android-sdk
-version
--bc9-android-sdk--release20090801
#contents
* Vmware [#p80852e6]
bc9-android-sdk でのVmwareイメージの設定を記述します。~
-Version:6.5互換
-Disk 容量:仮想ディスク20G(2Gごとに分割の設定)
-CPU数:cpu 1
-memory:512M
--VMイメージの cpu、memory を増やしたい場合は、bc9-androi...
-Network:bridge network
-OS
--Ubuntu 8.04.3 LTS(8.04.2LTSでインストール後 update)
--アプリケーションは以下の設定以外はインストール後の defa...
--/bin/sh のシンボリックリンクがdashになっているので bash...
---sudo dpkg-reconfigure dash
--gnome-games ほか game 関連は削除します。(容量削減のた...
---sudo apt-get remove gnome-cards-data gnome-games gnome...
--ssh、ntp、vim、lv、nautilus-open-terminal、adobe falsh ...
--vmware-tools インストール済みです。
--default 解像度 1280x768に設定しています。
--network は dhcp でアドレスを取得する設定です。
--作業用に作成してある user は beat、beat の password は ...
* android (Android Open Source project) [#m93cc150]
repo のインストールなど android の build に必要な setup ...
-http://source.android.com/download ~
今回使用する branch は android-sdk-1.5_r3 です。~
** 初期化 [#waf2b56c]
/home/beat/ に android-sdk-1.5_r3 ディレクトリを作成しrep...
$ cd ~/
$ mkdir android-sdk-1.5_r3
$ repo init -u git://android.git.kernel.org/platform/man...
** 取得内容の追加(local_manifest) [#ad5c532d]
repo init 後、.repo に以下の内容で local_manifest.xml を...
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="kernel" name="kernel/common" revis...
<project path="external/alsa-lib" name="platform/...
<project path="hardware/alsa_sound" name="platfor...
</manifest>
** ソースの取得 [#ce572f01]
上記設定が終了したら、repo syncをしソースを取得します。~
$ repo sync
** ソースファイル修正 [#ed745241]
repo sync 後、取得したソースに以下の修正を追加します。~
- alsaの追加~
android-sdk-1.5_r3/external/alsa-lib/Android.mk を以下の...
--- Android.mk.orig 2009-07-09 07:05:41.000000000 -0...
+++ Android.mk 2009-07-09 07:05:48.000000000 -0700
@@ -55,7 +55,7 @@
-fPIC -DPIC -D_POSIX_SOURCE \
-DALSA_CONFIG_DIR=\"/system/usr/share/alsa\" \
-DALSA_PLUGIN_DIR=\"/system/usr/lib/alsa-lib\" \
- -DALSA_DEVICE_DIRECTORY=\"/dev/snd/\"
+ -DALSA_DEVICE_DIRECTORY=\"/dev/\"
LOCAL_SRC_FILES := $(sort $(call all-c-files-under, src))
-ALSA が audio hardware library として使用されるよう buil...
android-sdk-1.5r3/build/target/board/generic/BoardConfig....
# config.mk
#
# Product-specific compile-time definitions.
#
# The generic product target doesn't have any hardware-s...
TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
TARGET_NO_RADIOIMAGE := true
HAVE_HTC_AUDIO_DRIVER := true
BOARD_USES_ALSA_AUDIO := true
#BOARD_USES_GENERIC_AUDIO := true ※コメントアウト
- 電源
電源管理patch(dummy-battery.patch)を適用します。~
$ cd android-sdk-1.5_r3
$ patch -p1 < ../dummy-battery.patch
** ビルド [#ybc519c0]
ここまでの調整が終わったら build します。~
$ cd android-sdk-1.5_r3
$ make
***OpenWnn [#e55cd59f]
上記の build では OpenWnn は build されないので、source ...
COLOR(blue){2009/08/18追記}~
COLOR(blue){bc9 は landscape での動作が基本ですが、androi...
COLOR(blue){そのため、}android-sdk-1.5_r3/packages/inputm...
$ cd android-sdk-1.5_r3/packages/inputmethods/OpenWnn
$ git checkout korg/cupcake-release
branch 切り替え後、landscape 表示時の software keyboard ...
$ vim android-sdk-1.5_r3/packages/inputmethods/OpenWnn/s...
843行目 Create the keyboard for landscape mode 以下、~
createKeyboardsLandscape の中のコメントアウトされている k...
修正完了後、OpenWnnの追加 buildをします。~
%% $ cd android-sdk-1.5_r3 %%~
%% $ make OpenWnn %%~
COLOR(blue){2009/08/18追記}~
COLOR(blue){make OpenWnn では OpenWnn.apk しか build され...
COLOR(blue){以下が正しい手順です。}
$ cd android-sdk-1.5_r3/build/
$ source envsetup.sh
$ cd android-sdk-1.5_r3/packages/inputmethods/OpenWnn
$ mm
COLOR(blue){これで、OpenWnn.apk と、 android-sdk-1.5r3/ou...
COLOR(blue){OpenWnnのlibファイル群がビルドされます。}
** oggファイル [#ndaa1208]
android-sdk-1.5_r3/frameworks/base/data/sounds ~
にある AudioPackage2.mk を Android.mk にリネームし、以下...
$ cp AudioPackage2.mk Android.mk
$ cd android-sdk-1.5_r3/build/
$ source envsetup.sh
$ cd android-sdk-1.5_r3/frameworks/base/data/sounds
$ mm
これで android-sdk-1.5_r3/out/target/product/generic/syst...
* rootfilesystemの作成 [#tfbfc06b]
androidのビルドが正常に完了したら、android-rootというディ...
必要なファイルを配置します。~
$ cd ~/
$ mkdir android-root
$ cp -a ~/android-sdk-1.5_r3/out/target/product/generic/...
$ cp -a ~/android-sdk-1.5_r3/out/target/product/generic/...
** init.rcの編集 [#xa5a254a]
android-root/init.rc に以下を追加します。~
場所はon bootの直前です。~
chmod 0666 /dev/bc9_leds
setprop alsa.mixer.playback.master Master
setprop alsa.mixer.capture.master Capture
setprop alsa.mixer.playback.earpiece Master
setprop alsa.mixer.capture.earpiece Capture
setprop alsa.mixer.playback.headset Master
setprop alsa.mixer.playback.speaker Master
chmod 0777 /dev/pcmC0D0c
chmod 0777 /dev/pcmC0D0p
chmod 0777 /dev/controlC0
chmod 0777 /dev/timer
chown root audio /dev/controlC
chown root audio /dev/pcmC0D0c
chown root audio /dev/pcmC0D0p
chown root audio /dev/timer
on boot
# basic network init
また、yaffs2 でmountしている箇所をコメントアウトします。~
**default.propの編集 [#c55e519d]
android-root/default.prop の末尾に以下を追加します。~
net.eth0.dns1=208.66.222.222
net.dns1=208.67.222.222
次に、音を鳴らすための設定をします。~
** asound.stateの作成 [#sd213aff]
android-root/system/etc/ に asound.state と asound.conf ...
以下の asound.state は bc9 を OpenEmbedded で起動して als...
state.Gumstix {
control.1 {
comment.access 'read write'
comment.type INTEGER
comment.count 1
comment.range '0 - 4'
iface MIXER
name 'Tone Control - Bass'
value 0
}
control.2 {
comment.access 'read write'
comment.type INTEGER
comment.count 1
comment.range '0 - 2'
iface MIXER
name 'Tone Control - Treble'
value 0
}
control.3 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Headphone Playback Switch'
value true
}
control.4 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name De-emphasis
value false
}
control.5 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'DC Filter'
value true
}
control.6 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Hi-pass Filter'
value true
}
control.7 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'ADC Filter'
value true
}
control.8 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Master Playback Switch'
value true
}
control.9 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 63'
iface MIXER
name 'Master Playback Volume'
value.0 63
value.1 63
}
control.10 {
comment.access 'read write'
comment.type ENUMERATED
comment.count 2
comment.item.0 Mic
comment.item.1 CD
comment.item.2 Video
comment.item.3 Aux
comment.item.4 Line
comment.item.5 Mix
comment.item.6 'Mix Mono'
comment.item.7 Phone
iface MIXER
name 'Capture Source'
value.0 Mic
value.1 Mic
}
control.11 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Capture Switch'
value true
}
control.12 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 15'
iface MIXER
name 'Capture Volume'
value.0 15
value.1 15
}
control.13 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Loudness (bass boost)'
value false
}
}
** asound.confの作成 [#hb0044bb]
以下の asound.conf は asound.state を元に作成したものです...
ctl.AndroidPlayback {
type hw
card 0
}
ctl.AndroidRecord {
type hw
card 0
}
pcm.AndroidPlayback {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Speaker_normal {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Speaker {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Headset {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Speaker_incall {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Headset_incall {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Earpiece_incall {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidPlayback_Bluetooth {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
pcm.AndroidRecord_Microphone {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Tone Control - Bass' value 0 }
{ name 'Tone Control - Treble' value 0 }
{ name 'Headphone Playback Switch' value true }
{ name 'De-emphasis' value false }
{ name 'DC Filter' value true }
{ name 'Hi-pass Filter' value true }
{ name 'ADC Filter' value true }
{ name 'Master Playback Switch' value true }
{ name 'Master Playback Volume' value [ 55 55 ] }
{ name 'Capture Source' value [ Mic Mic ] }
{ name 'Capture Switch' value true }
{ name 'Capture Volume' value [ 15 15 ] }
{ name 'Loudness (bass boost)' value false }
]
}
}
** vold.confの作成 [#v8ad16ba]
sdcard の mount は vold がおこないます。~
vold は以下の場所の設定ファイルに従って動作するので、まず...
$ vi android-root/system/etc/vold.conf
書式は以下のようにします。~
## vold configuration file for bc9
volume_sdcard {
media_path /devices/platform/pxa2xx-mci.0/mmc_host...
media_type mmc
mount_point /sdcard
ums_path /devices/platform/usb_mass_storage/lun0
}
** キー割り当て [#b03ec7a6]
bc9にはボタンが3つあり、上からキーボードのF1,F2,F3が~
割り当てられています。~
Androidで必要なHome,Menu,Backをそれぞれ割り当てます。~
~
android-root/system/usr/keylayout ~
にqwerty.klがあります。~
以下のように編集してください。~
--- qwerty.kl-orig 2009-07-02 20:28:21.000000000 +0...
+++ qwerty.kl 2009-07-02 20:29:42.000000000 +0900
@@ -11,18 +11,18 @@ key 10 9
key 11 0
key 158 BACK WAKE_DROPPED
key 230 SOFT_RIGHT WAKE
-key 60 SOFT_RIGHT WAKE
+key 60 MENU WAKE
key 107 ENDCALL WAKE_DROPPED
key 62 ENDCALL WAKE_DROPPED
key 229 MENU WAKE_DROPPED
key 139 MENU WAKE_DROPPED
-key 59 MENU WAKE_DROPPED
+key 59 HOME WAKE
key 127 SEARCH WAKE_DROPPED
key 217 SEARCH WAKE_DROPPED
key 228 POUND
key 227 STAR
key 231 CALL WAKE_DROPPED
-key 61 CALL WAKE_DROPPED
+key 61 BACK WAKE
key 232 DPAD_CENTER WAKE_DROPPED
key 108 DPAD_DOWN WAKE_DROPPED
key 103 DPAD_UP WAKE_DROPPED
* android-SDK [#kd7a7e72]
Android 1.5 SDK, Release 3~
http://developer.android.com/sdk/1.5_r3/index.html~
をインストール(ADB、emulator などが使えるように)
* eclipse [#q7b6cb81]
[[Installing the Android SDK:http://developer.android.com...
Eclipse 3.4.2 と android 開発用 plugin をインストール
* linux kernel source [#i127f099]
android-sdk-1.5_r3 に local_manifest を追加して取得した a...
/home/beat/ に kernel_work ディレクトリを作成しそこへ ker...
これに bc9 用 patch を当てます。~
$ cd /home/beat/kernel_work/linux-android-2.6.29/
$ mv ../patch-kernel-2.6.29.4-bc9/patch-all.sh .
$ mv ../patch-kernel-2.6.29.4-bc9/*.patch .
$ ./patch-all.sh
17個 の patch がすべて当たったら、patch 済みとわかるよう...
$ mv linux-android-2.6.29 linux-android-2.6.29-bc9-r3
* cross toolchain [#j81bad54]
bc9-oe-sdk で build した gumstix-oe の cross toolchain を...
/home/beat/kernel_work/envsetup.sh で kernel の ARM cross...
ページ名:
BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。