bc9/Software/Android/ALSA_integrated_userland
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
]
開始行:
[[labs.beatcraft.com]]~
#contents
* bc9 向け ALSA 統合 android-1.5r2 ビルド手順 [#qb3f9ac8]
Android の開発環境の構築手順などは以下のサイトを参照して...
http://source.android.com/download ~
bc9 では2009年6月末時点での最新安定版と考えられる android...
Android の起動には Android 用 driver の追加された kernel ...
~
まず android-1.5r2 branch を指定して repo の初期化を実行...
$ mkdir android-1.5r2
$ cd android-1.5r2
$ repo init -u git://android.git.kernel.org/platform/man...
local_manifest.xml を以下の内容で android1.5r2/.repo/ の...
(kernel version の更新は別途行っていますので必須ではあり...
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remove-project name="kernel/common"/>
<project path="kernel" name="kernel/common" revision="...
<project path="external/alsa-lib" name="platform/exter...
<project path="hardware/alsa_sound" name="platform/har...
</manifest>
android-1.5r2 ディレクトリに戻って以下のコマンドでファイ...
$ repo sync
※alsamixer、applay などを含む alsa-utils は master branch...
もし必要な場合は以下のコマンドで取得し、ディレクトリごと ...
$ git clone git://android.git.kernel.org/platform/extern...
$ cp -a alsa-utils android-1.5r2/externel/
**build 内容の調整 [#q371a63b]
*** ALSA の調整 [#z5aab19e]
ALSA が audio hardware library として使用されるよう、andr...
# 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 ※コメントアウト
alsa-utils も build する場合は、上記に以下の一行を追加し...
BUILD_WITH_ALSA_UTILS := true
また、android-1.5r2/external/alsa-lib/Android.mk を以下の...
(chroot で android が起動した時 /dev/snd/ ができず /dev/...
--- 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))
***電源状態 patch [#v3c39483]
このまま build すると起動時にローバッテリーと判断して起動...
(参考 http://androidzaurus.seesaa.net/article/116995835....
以下のファイルにpatchを当て、常にフルバッテリーに見せかけ...
android-1.5r2/framework/base/services/java/com/android/s...
android-1.5r2/framework/base/services/java/com/android/s...
android-1.5r2/framework/base/services/java/com/android/s...
android-1.5r2/framework/base/phone/com/android/internal/...
この &ref(dummy-battery.patch);をダウンロードして android...
$ cd android-1.5r2/
$ patch -p1 < ../dummy-battery.patch
** build [#td9a9723]
android-1.5r2 ディレクトリで以下のコマンドを実行し、build...
$ make
build が完了したら android-1.5r2/out/target/product/gener...
sound リソースファイルは必要な位置にコピーされません。~
そこで以下の要領で sound リソースファイルを out/target/pr...
** ogg sound リソースファイル [#ebe8831d]
android-1.5r2/frameworks/base/data/sounds/ ~
にある AudioPackage2.mk を Android.mk にリネームし、 ~
$ cp AudioPackage2.mk Android.mk
~
$ cd android-1.5r2/build/
$ source envsetup.sh
$ cd android-1.5r2/frameworks/base/data/sounds/
$ mm
これで out/target/product/generic/system/media/audio/ 以...
**android-root 作成 [#e3d23780]
上記の作業が完了しましたら、以下のコマンドで android の u...
$ cd ~/
$ mkdir android-root
$ cp -a ~/android-1.5r2/out/target/product/generic/root/...
$ cp -a ~/android-1.5r2/out/target/product/generic/syste...
**init.rcの編集 [#d6ee6c91]
***ALSAの設定 [#dbe71121]
android-root/init.rc の on boot の項目の前に以下の ALSA ...
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
***その他 [#w4b78fea]
yaffs2でマウントされている箇所をコメントアウトします。~
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 c...
- 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 ru...
- 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
chown system cache /cache
chmod 0770 /cache
**asound.conf asound.state [#ic6a2a36]
android-root/system/etc/ に ALSA の設定ファイル asound.co...
***asound.state [#p995eaa6]
以下の &ref(asound.state); は bc9 用に gumstix-oe で Open...
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 [#jd7ab206]
以下の &ref(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 [#cfe88d90]
Android での sdcard の mount は vold がおこないます。~
voldは 以下の設定ファイルに従って動作するので、まず設定フ...
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
}
これを設定することで microSD の第1パーティションがメディ...
** ボタン配置 [#t151b9e9]
bc9 のボタン配置以下のように設定しています。~
(上から)~
--HOME (ENDCALL)
--MENU
--BACK
bc9には3つのボタンがあり、上からキーボードの F1, F2, F3 ...
それぞれを ENDCALL, MENU, BACK に割り当てます。~
Android を起動した際 Spare Parts アプリケーションに ENDCA...
そこで ENDCALL ボタンの動作を「Go to Home」にすることで H...
~
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 ENDCALL 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
** Screen Timeout [#na5cac04]
Power Management機能に無効化パッチを当てた状態では、Scree...
これを回避するために、Screen Timeout を無効にしておく必要...
android 起動時に、以下の設定をおこないます。~
- [Menu] - [Settings] - [Sound & display] - [Screen timeo...
** device_provisioned [#v004c1a5]
アクティベート関連の処理が OpenSource 版にも影響を与えて...
以下のコマンドを実行することで、アクティベートされた状態...
# cd /data/data/com.android.providers.settings/databases
# sqlite3 settings.db
sqlite> insert into "secure" values(NULL,"device_provisi...
sqlite> .exit
アクティベートされると、android 起動時 の home 画面に キ...
END_CALL キー長押しによる電源断処理確認画面に silent mode...
アクティベートされていない場合は、以下のような問題が確認...
- HOMEキーが無効になっている。
- 起動時のキーロックダイアログが表示されない。
以上で ALSA を統合した bc9 用 android-1.5r2 の build は終...
**参考 URL [#j8dc33c0]
-http://code.google.com/p/patch-hosting-for-android-x86-s...
-http://d.hatena.ne.jp/bs-android/20090603/1244043649
-http://labs.embinux.org/index.php/Android_Porting_Guide_...
-http://nemustech.blogspot.com/2009/04/android-on-s3c6410...
終了行:
[[labs.beatcraft.com]]~
#contents
* bc9 向け ALSA 統合 android-1.5r2 ビルド手順 [#qb3f9ac8]
Android の開発環境の構築手順などは以下のサイトを参照して...
http://source.android.com/download ~
bc9 では2009年6月末時点での最新安定版と考えられる android...
Android の起動には Android 用 driver の追加された kernel ...
~
まず android-1.5r2 branch を指定して repo の初期化を実行...
$ mkdir android-1.5r2
$ cd android-1.5r2
$ repo init -u git://android.git.kernel.org/platform/man...
local_manifest.xml を以下の内容で android1.5r2/.repo/ の...
(kernel version の更新は別途行っていますので必須ではあり...
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remove-project name="kernel/common"/>
<project path="kernel" name="kernel/common" revision="...
<project path="external/alsa-lib" name="platform/exter...
<project path="hardware/alsa_sound" name="platform/har...
</manifest>
android-1.5r2 ディレクトリに戻って以下のコマンドでファイ...
$ repo sync
※alsamixer、applay などを含む alsa-utils は master branch...
もし必要な場合は以下のコマンドで取得し、ディレクトリごと ...
$ git clone git://android.git.kernel.org/platform/extern...
$ cp -a alsa-utils android-1.5r2/externel/
**build 内容の調整 [#q371a63b]
*** ALSA の調整 [#z5aab19e]
ALSA が audio hardware library として使用されるよう、andr...
# 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 ※コメントアウト
alsa-utils も build する場合は、上記に以下の一行を追加し...
BUILD_WITH_ALSA_UTILS := true
また、android-1.5r2/external/alsa-lib/Android.mk を以下の...
(chroot で android が起動した時 /dev/snd/ ができず /dev/...
--- 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))
***電源状態 patch [#v3c39483]
このまま build すると起動時にローバッテリーと判断して起動...
(参考 http://androidzaurus.seesaa.net/article/116995835....
以下のファイルにpatchを当て、常にフルバッテリーに見せかけ...
android-1.5r2/framework/base/services/java/com/android/s...
android-1.5r2/framework/base/services/java/com/android/s...
android-1.5r2/framework/base/services/java/com/android/s...
android-1.5r2/framework/base/phone/com/android/internal/...
この &ref(dummy-battery.patch);をダウンロードして android...
$ cd android-1.5r2/
$ patch -p1 < ../dummy-battery.patch
** build [#td9a9723]
android-1.5r2 ディレクトリで以下のコマンドを実行し、build...
$ make
build が完了したら android-1.5r2/out/target/product/gener...
sound リソースファイルは必要な位置にコピーされません。~
そこで以下の要領で sound リソースファイルを out/target/pr...
** ogg sound リソースファイル [#ebe8831d]
android-1.5r2/frameworks/base/data/sounds/ ~
にある AudioPackage2.mk を Android.mk にリネームし、 ~
$ cp AudioPackage2.mk Android.mk
~
$ cd android-1.5r2/build/
$ source envsetup.sh
$ cd android-1.5r2/frameworks/base/data/sounds/
$ mm
これで out/target/product/generic/system/media/audio/ 以...
**android-root 作成 [#e3d23780]
上記の作業が完了しましたら、以下のコマンドで android の u...
$ cd ~/
$ mkdir android-root
$ cp -a ~/android-1.5r2/out/target/product/generic/root/...
$ cp -a ~/android-1.5r2/out/target/product/generic/syste...
**init.rcの編集 [#d6ee6c91]
***ALSAの設定 [#dbe71121]
android-root/init.rc の on boot の項目の前に以下の ALSA ...
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
***その他 [#w4b78fea]
yaffs2でマウントされている箇所をコメントアウトします。~
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 c...
- 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 ru...
- 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
chown system cache /cache
chmod 0770 /cache
**asound.conf asound.state [#ic6a2a36]
android-root/system/etc/ に ALSA の設定ファイル asound.co...
***asound.state [#p995eaa6]
以下の &ref(asound.state); は bc9 用に gumstix-oe で Open...
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 [#jd7ab206]
以下の &ref(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 [#cfe88d90]
Android での sdcard の mount は vold がおこないます。~
voldは 以下の設定ファイルに従って動作するので、まず設定フ...
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
}
これを設定することで microSD の第1パーティションがメディ...
** ボタン配置 [#t151b9e9]
bc9 のボタン配置以下のように設定しています。~
(上から)~
--HOME (ENDCALL)
--MENU
--BACK
bc9には3つのボタンがあり、上からキーボードの F1, F2, F3 ...
それぞれを ENDCALL, MENU, BACK に割り当てます。~
Android を起動した際 Spare Parts アプリケーションに ENDCA...
そこで ENDCALL ボタンの動作を「Go to Home」にすることで H...
~
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 ENDCALL 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
** Screen Timeout [#na5cac04]
Power Management機能に無効化パッチを当てた状態では、Scree...
これを回避するために、Screen Timeout を無効にしておく必要...
android 起動時に、以下の設定をおこないます。~
- [Menu] - [Settings] - [Sound & display] - [Screen timeo...
** device_provisioned [#v004c1a5]
アクティベート関連の処理が OpenSource 版にも影響を与えて...
以下のコマンドを実行することで、アクティベートされた状態...
# cd /data/data/com.android.providers.settings/databases
# sqlite3 settings.db
sqlite> insert into "secure" values(NULL,"device_provisi...
sqlite> .exit
アクティベートされると、android 起動時 の home 画面に キ...
END_CALL キー長押しによる電源断処理確認画面に silent mode...
アクティベートされていない場合は、以下のような問題が確認...
- HOMEキーが無効になっている。
- 起動時のキーロックダイアログが表示されない。
以上で ALSA を統合した bc9 用 android-1.5r2 の build は終...
**参考 URL [#j8dc33c0]
-http://code.google.com/p/patch-hosting-for-android-x86-s...
-http://d.hatena.ne.jp/bs-android/20090603/1244043649
-http://labs.embinux.org/index.php/Android_Porting_Guide_...
-http://nemustech.blogspot.com/2009/04/android-on-s3c6410...
ページ名:
BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。