Hatena::ブログ(Diary)

Android(アンドロイド)情報-ブリリアントサービス RSSフィード


2010-05-19

EMMA Mobile 1 HDK 上でAndroidを動かす

| 15:38 |

EMMA Mobileとは

EMMA Mobileとは旧NECエレクトロニクス社から発売された、携帯機器向けマルチメディアプロセッサです。

EMMA Mobileは以下の種類があります。

  • 高機能化と低消費電力化を追求した1シリーズ
    • 1-D:MobileDDR SDRAM(512Mbit)をパッケージに内蔵しセットの小型化、外部RAMとの高速インタフェースの設計が不要でユーザの基板設計を容易とする。
    • 1-S:Mobile DDR SDRAMとの外部I/Fを持ち、大容量メモリを利用することで大規模なソフトウェアを実行できる。
  • HDコンテンツ再生とグラフィックス処理機能の高機能化と低消費電力化を追求したEVシリーズ
    • EV1:HDコンテンツ再生機能を搭載する基本機能版。
    • EV2:マルチコアCPUと3Dグラフィックスを搭載する高性能版。

今回はこのEMMA Mobile 1のHDK上でAndroidを動かす方法について説明します。

ルネサスエレクトロニクスHPスタートアップガイドがありますので、そちらを見て頂ければ確実なのですが全て英語で書かれています。


実行環境:

Ubuntu(64ビット上の8.04)

VMware上のUbuntuでも可


下準備:

作業用ディレクトリとして<SDK_WORK>という名前のディレクトリを作成します。(任意の名前で結構です)

EMMA Mobile 1 HDK付属のCDやルネサスエレクトロニクスHPにあるEMMA Mobile 1用SDKファイルを<SDK_WORK>の下に作ったarchivesディレクトリにコピーして下さい。

/home/ユーザ/<SDK_WORK>/archives

f:id:bs-android:20100519144942j:image


1.ビルドの準備

Androidビルド手順

ビルドに必要なパッケージをインストールして下さい。

# sudo apt-get install sun-java5-jdk
# sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
# sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
# sudo apt-get install git-core gnupg

ソースファイル取得のためにrepoというgitマネージャツールをダウンロードし、実行権限を与えます。

# mkdir bin
# curl http://android.git.kernel.org/repo >~/bin/repo
# chmod a+x ~/bin/repo

ここで~/binにパスを通すため一度ログアウトします。


ソースファイル取得用のディレクトリ「mydroid」を作成し、mydroidに移動してrepo環境を初期化します。

 # mkdir mydroid
 # cd mydroid
 # repo init -u git://android.git.kernel.org/platform/manifest.git

名前やメールアドレスを聞かれますが、入力してもしなくても構いません。次に色分け表示するか聞かれるのでy/nお好きな方を選んで下さい。

初期化が終了すると次はソースファイルを取得し、makeコマンドを入力します。

# repo sync
# make

Android Open Sourceの取得

<SDK_WORK>ディレクトリに移動し、mydroid-1.6r1ディレクトリを作りそこへ移動します。

# cd <SDK_WORK>
# mkdir mydroid-1.6r1
# cd mydroid-1.6r1

Androidを取得します。

# repo init -u git://android.git.kernel.org/platform/manifest.git -b android-1.6_r1
# repo sync

ここまでの作業を終わらせた段階での<SDK_WORK>ディレクトリの中は以下のようになります。

f:id:bs-android:20100519144943j:image


alsa-libの取得

# git clone git://android.git.kernel.org/platform/external/alsa-lib.git
# cd alsa-lib
# git checkout -b origin/donut 7d7fc0e490064bd5

alsa_soundの取得

# git clone git://android.git.kernel.org/platform/hardware/alsa_sound.git
# cd alsa_sound
# git checkout -b origin/donut 64ff6838637d2285

上記で得たファイルをそれぞれ以下の場所へ移動して下さい。

  • alsa-lib :<SDK_WORK>/mydroid-1.6r1/external

f:id:bs-android:20100519144944j:image

  • alsa_sound :<SDK_WORK>/mydroid-1.6r1/hardware

f:id:bs-android:20100519144945j:image

*ALSAのファイルが無いとAndroid file systemをビルドする時エラーが発生します。


2.ビルド手順

ブートローダー、ファイルシステムカーネルビルドの方法を説明します。


ブートローダーのビルド手順

(1)ビルドのために必要な環境をセット

カレント・ディレクトリ構成を前もって採用するために「set.sh」を修正して下さい。

# cp <SDK_WORK>/archives/set.sh .
# . ./set.sh

(2)SDKの中にある“EM1_android_bootloader.tar.gz”を展開

# cd <SDK_WORK> 
# tar zxf archives/EM1_android_bootloader.tar.gz

“u-boot”ディレクトリの下にファイルが展開されます。


(3)“u-boot”ディレクトリに移動

# cd u-boot

(4)eMMCのためのbootloaderの構築

# make clobber
# make em1_emmc_config_dkit
# make

U-Bootの構築が完了すると、”u-boot”ディレクトリの中に”u-boot-emmc.bin”が出来ます。


Android File Systemのビルド手順

(1)Android File SystemをEMMA Mobile 1用に変更

SDKの中にある“change-1.6r1_YYMMDD.tar.gz”を展開します。(YYMMDDは日付情報)

# cd <SDK_WORK>
# tar zxf archives/change-1.6r1_YYMMDD.tar.gz

“change-YYMMDD”ディレクトリの下にファイルが展開されます。

“change-YYMMDD”ディレクトリの中身を<SDK_WORK>/mydroid-1.6r1にコピー・上書きします。

# tar cv -C ./change-YYMMDD . | tar xv -C ./mydroid-1.6r1

(2)EMMA Mobile 1 SDKのOMFライブラリを適用

“EM1_SDK_Android_OMF_Vxx_xx_xx_xx.tar.gz”を展開します。

# tar zxf archives/EM1_SDK_Android_OMF_Vxx_xx_xx_xx.tar.gz

“mydroid_omf”ディレクトリの下に展開されます。

“mydroid_omf”の中身を<SDK_WORK>/mydroid-1.6r1にコピー・上書きします。

# tar cv -C ./mydroid_omf . | tar xv -C ./mydroid-1.6r1

(3)ビルドを実行

”mydroid-1.6r1”ディレクトリに移動しAndroid File Systemを構築します。

# cd mydroid-1.6r1 
# make

構築されると、以下の場所にFile Systemが作られます。

Mydroid-1.6r1/out/target/product/em1/


(4) File Systemのファイルを圧縮

# cd out/target/product/em1/ 
# tar zcf ~/tmp-fs.tar.gz system data root

圧縮ファイルの転送先として任意のディレクトを指定して下さい。上記の例ではユーザーホームディレクトリを指定しています。


Androidカーネルの構築方法

(1)SDKの中の「mkimage」に実行属性を加える

# cp <SDK_WORK>/archives/mkimage <SDK_WORK>
# chmod +x <SDK_WORK>/mkimage
# export PATH=$PATH:<SDK_WORK>

(2)カーネルソースコードの展開

# cd <SDK_WORK> 
# tar zxf archives/kernel_2.6.29-tagnname.tar.gz

ファイルは”kernelディレクトリの下に展開されます。

kernelディレクトリの下のファイルを<SDK_WORK>/mydroid-1.6r1にコピー・上書きします。

# tar cv ./kernel | tar xv -C ./mydroid-1.6r1

(3)カーネルEMMA Mobile 1用に変更

SDKの中の”change-kernel-em1-YYMMDD.tar.gz”を展開します。(YYMMDDは日付データ)

# tar zxf archives/change-kernel-em1-YYMMDD.tar.gz

“change_linux_em1”の下にファイルは展開されます。

“change_linux_em1”ディレクトリの下にあるファイルを”mydroid-1.6r1/kernel”にコピー・上書きします。

# tar cv -C ./change_linux_em1 . | tar xv -C ./mydroid-1.6r1/kernel

(4)ビルドのために必要な環境をセット

カレント・ディレクトリ構成を前もって採用するために「set.sh」を修正して下さい。

# cp <SDK_WORK>/archives/set.sh .
# . ./set.sh

(5)カーネルコンフィギュレーションをコピー

カーネルソースディレクトリの下にある”dot.config_dkit”ファイルを”.config”にコピーします。

# cd <SDK_WORK>/mydroid-1.6r1/kernel
# cp dot.config-dkit .config

(6)ビルドを実行

“mydroid-1.6r1/kernel”に移動しカーネルを構築します。

# cd <SDK_WORK>/mydroid-1.6r1/kernel 
# make

成功すると以下の場所にカーネルイメージ(uImage)が作られます。(*)

mydroid-1.6r1/kernel/arch/arm/boot/uImage

また、モジュールファイルは次の場所に作られます。

mydroid-1.6r1/kernel/arch/arm/mach-mp200/inter_dsp.ko

mydroid-1.6r1/kernel/drivers/avc/mp200_avc.ko


(*) もしuImageファイルが作成されなければ、以下を実行してもう一度(6)をして下さい。

# export PATH=$PATH:/home/ユーザ/<SDK_WORK>/

Android File Systemの作成

(1)ファイルシステム「tmp-fs.tar.gz」を抽出して、下記のように構成を変更して下さい。

# mkdir <SDK_WORK>/android-fs
# cd <SDK_WORK>/android-fs
# tar zxf ~/tmp-fs.tar.gz
# mv data root
# mv system root
# mv root/* ./
# rmdir root

(2)モジュールファイルを追加します

カーネルカーネルなどの変更により再度構築されている場合は、ファイル以下にコピーしてください。また、モジュールを加える場合は、ファイルをコピーして下さい。

# cp ~/<SDK_WORK>/mydroid-1.6r1/kernel/arch/arm/mach-mp200/inter_dsp.ko lib/modules/
# cp ~/<SDK_WORK>/mydroid-1.6r1/kernel/drivers/avc/mp200_avc.ko lib/modules/

(3)属性変更

# chmod +r system/usr/keychars/*
# sudo chown -R 1000:1000 ./

(4)圧縮

# sudo tar zcf ../android-fs.tar.gz ./

3.実行方法

EMMA Mobile 1 HDKの中のeMMC-NANDへAndroidブートイメージユニット(ブートローダカーネルAndroid File System)を書き込む方法、そしてAndroidを起動する方法を説明します。


ホストPCにコンソール画面を表示するためにHDKの”CON”コネクタUSBケーブルを挿入し、ホストPCと接続して下さい。

ホストPCではターミナルソフトを使ってコンソール画面を見ます。TeraTerm等のソフトをインストールし、以下のように設定して下さい。

  • ボーレート:115200
  • Data:8bit
  • Parity:none
  • Stop Bit:1Bit
  • Flow Control:none

(1)eMMCを書き直すためのSDカードを作成

a)microSDカード(2Gバイト程度の容量)をFAT16でフォーマットします。

b)microSDカードへ「emmctools」ディレクトリーの下のファイルを格納します。(emmctoolsは付属CD等の中にあります)

f:id:bs-android:20100519144946j:image


(2)Androidブートイメージの格納

a)(1)によって作られた「emmc」に次のファイルを格納します。

(/home/ユーザ/<SDK_WORK>/u-boot/u-boot-emmc.bin)

  • uImage 以下の場所に作られたカーネルイメージ

(/home/ユーザ/<SDK_WORK>/mydroid-1.6r1/kernel/arch/arm/boot/uImage)

(/home/ユーザ/<SDK_WORK>)

SDカードの中は以下のような構成になります。

 SDカード

  |

  |cramfs

  |install.sh

  |param.bin

  |sdboot.bin

  |uboot-sd.bin

  |uImage

  |

  emmc

    uImage

    u-boot-emmc.bin

    android-fs.tar.gz


(3)書き直し

a)SDブートにセットするために、EMMA Mobile 1 HDKのディップスイッチ・DSW1(bootmode)をセットします。

"DSW1-1" : ON

"DSW1-2" : ON

"DSW1-3": OFF

"DSW1-4" : ON

b)HDKのスロットルにmicroSDカードを挿入し、HDKの電源を入れ、ホストPCにコンソール画面が表示されるようにします。

c)以下のようなメッセージが表示されればeMMCブート環境の構築が成功したことを意味します。

---------------------

- install complete! –

---------------------

Welcome to Wind River Linux

Please press Enter to activate this console.

d)HDKの電源を切り、microSDカードを取り出します。


(4)eMMCブートでAndroidをスタート

a)eMMCブートするために、EMMA Mobile 1 HDKのディップスイッチ・DSW1(bootmode)をセットします。

"DSW1-1" : ON

"DSW1-2" : ON

"DSW1-3" : ON

"DSW1-4" : OFF

b)HDKの電源を入れ、ホストPCにコンソール画面が表示されるようにします。

c)電源を入れて3秒以内にコンソール画面で何らかのキーを入力し、コンソールディスプレイからの入力を可能にして下さい。以下のコマンドを入力した後、HDKを再起動SDK再起動して下さい。

もし起動後3秒以内に何らかのキーを入力出来なければ、Linuxが起動しカーネルパニックを起こします。このような場合、HDKの”reset”スイッチを押しSDK再起動して下さい。再起動後、再び3秒以内に何らかのキーを入力して下さい。

EM1# setenv ext3cmd setenv bootargs root=/dev/mmcblk0p3 noinitrd init=/init console=ttyS0,115200n8n SELINUX_INIT=no mem=32M@0x30000000 mem=32M@0x34000000 mem=32M@0x36000000 rw video=qfb: ip=none rootfstype=ext3 rootwait\;bootm 30007fc0 
EM1# saveenv

このセッティングはAndroid File Systemをスタートさせるためです。このセッティングを一度行っていれば、このセッティングは毎回必要ではありません。初期設定に戻したい場合は、下記コマンドをタイプしてください。

EM1# setenv ext3cmd setenv bootargs root=/dev/mmcblk0p3 noinitrd init=/linuxrc console=ttyS0,115200n8n SELINUX_INIT=no mem=32M@0x30000000 mem=32M@0x34000000 mem=32M@0x36000000 rw video=qfb: ip=none rootfstype=ext3 rootwait\;bootm 30007fc0 
EM1# saveenv

d)HDKの再起動

数秒後Androidが起動します。


以上でEMMA Mobile 1 HDK上でのAndroid構築は終了です。主にmake時にエラーが発生して困ったのですが、原因はPATHがきちんと通っていなかったせいなので、その点に注意すれば難しくないと思います。


補足:

EMMA Mobile 1 HDK上のキーとAndroidのキーは以下と一致します。

SW2:Volume Down

SW3:Up

SW4:Volume Up

SW6:right

SW7:select

SW8:left

SW9:Screen Off

SW10:down

SW12:Back

SW13:menu

by:おおき

n85n85 2010/05/19 14:19 > TシャツにQRコード

N1で読んでみたらドロイド君の写真でした。
(真ん中のは読み取れず)

saysay 2013/03/13 19:07 ソースを見させて頂きましたが、Copyrightやソースの流用の際のライセンスを見つけられませんでした。
>ソースも同梱していますので、ログ出力を行うフィルタをカスタマイズしてみるなど、
>ご活用いただけますと幸いです。
との事で、流用するにしても、どのようなライセンスなのかわからないと取り扱いようがないので教えて頂けるとありがたいです。

2008-10-24

Armadillo-500上のAndroidでカメラプレビューする方法

| 13:27 |

Armadillo-500上のAndroidUSBカメラの画像をアプリで表示させる方法をまとめましたので公開します。

Androidソースコード公開前に作成したものの為、Androidから直接デバイスを使用しない方法を使っています。

今後、Androidから直接USBカメラを使用させる方法も探っていきます。

では、早速。


環境依存部分は便宜読み替えて下さい。

開発環境を整える

以前、このブログで紹介した方法でいけると思います。

※不明点があれば質問ください。

カーネルビルド

今回使用するカメラはUVCカメラなのでV4Lを有効化してビルドします。

atmark@atde:~/atmark-dist-20080617$ make menuconfig

  ~中略~

Device Drivers--->
    Multimedia devices--->
        <*> Video For Linux
        < > Enable Video For Linux API 1 (DEPRECATED)
        < > Enable Video For Linux API 1 compatible Layer
        < > Video capture adapters  --->

  ~中略~

atmark@atde:~/atmark-dist-20080617$ make

Video For Linuxだけにチェックをつけて他のチェックは外さないとコンパイルエラーが出ることがあるので注意してください。

UVCドライバビルド

Linux UVC driver and tools(http://linux-uvc.berlios.de/)にUVCドライバコードがあります。

コードはSubversionリポジトリにあるのでSubversionインストールしてからダウンロードします。

atmark@atde:~$ sudo apt-get install subversion
Password:

  ~中略~

atmark@atde:~$ svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk

  ~中略~

atmark@atde:~$ mv trunk uvcvideo
atmark@atde:~$ cd uvcvideo
atmark@atde:~/uvcvideo$ mv Makefile Makefile.org

  ~中略~

すんなりビルドできないかもしれないので以下のMakefileに入れ替えてビルドしてみて下さい。

/home/atmark/uvcvideo/Makefile

PWD := $(shell pwd)

ROOTDIR ?= ../atmark-dist-20080617

ROMFSDIR = $(ROOTDIR)/romfs

include $(ROOTDIR)/.config
include $(ROOTDIR)/config.arch

MAKEARCH = $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)

LINUXDIR = $(CONFIG_LINUXDIR)
KERNELRELEASE = ${shell make -sC $(ROOTDIR)/$(LINUXDIR) kernelrelease}

obj-m           := uvcvideo.o
uvcvideo-objs   := uvc_driver.o uvc_queue.o uvc_v4l2.o uvc_video.o uvc_ctrl.o uvc_status.o uvc_isight.o

all: uvcvideo

uvcvideo:
        @echo "Building USB Video Class driver..."
        @sh svn-version.sh > version.h 2>/dev/null
        @$(MAKEARCH) -C $(ROOTDIR)/$(LINUXDIR) M=$(PWD) modules

clean:
        -rm -f *.o *.ko .*.cmd .*.flags *.mod.c Module.symvers version.h
modules.order
        -rm -rf .tmp_versions

カーネルモジュールを作成します。

atmark@atde:~/uvcvideo$ make

  ~中略~

atmark@atde:~/uvcvideo$ ls -l

  ~中略~

-rw-r--r-- 1 atmark atmark 68024 XXXX-XX-XX XX:XX uvcvideo.ko

Sourcery G++ Lite 2007q3-51 for ARM GNU/Linuxインストール(ARMクロスコンパイラ

CodeSourceryからARMクロスコンパイラを取得します。

http://www.codesourcery.com/gnu_toolchains/arm/portal/release313

から IA32 GNU/Linux Tar を選択し、ダウンロード後に展開します。

atmark@atde:~$ tar xvfj arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

uvccaptureの展開

HPhttp://www.quickcamteam.net/software/linux/v4l2-software/uvccapture)から

uvccaptureを取得してホームで展開して下さい。

展開したフォルダ名を webcamd にして下さい。

添付のwebcamd化ファイルを webcamd にコピーして下さい。

v4l2uvc.hで定義している構造体vdInに下記定義を追加して下さい。

 int init;

uClibc-0.9.29ビルド

この時はまだAndroidC言語ライブラリ(bionic)が公開されてなかったので、uClibcで代用しました。

コンフィギュレーションは以下の通りです。

Linux kernel headerの場所ですが一度ビルドしたカーネルでないとヘッダが足りません。

atmark@atde:~$ wget http://www.uclibc.org/downloads/uClibc-0.9.29.tar.bz2

  ~中略~

atmark@atde:~$ tar xvfj uClibc-0.9.29.tar.bz2

  ~中略~

atmark@atde:~$ cd uClibc-0.9.29
atmark@atde:~/uClibc-0.9.29$ make menuconfig

  ~中略~

 Target Architecture
   => arm
  Target Architecture Features and Options
   => Target ABI
    => EABI
   
   => Target Processor Endianness
    => Little Endian
    
   => Linux kernel header Location
    => /home/atmark/linux-2.6.18-at8/include

  ~中略~

atmark@atde:~/uClibc-0.9.29$ export PATH=$PATH:/home/atmark/arm-2007q3/bin

コンパイルエラーが出る場合は Rules.mak を以下のように修正してみて下さい。

Rules.mak

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
366:#CFLAGS := -include $(top_builddir)include/libc-symbols.h \
367:#        $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
368:#        -fno-builtin -nostdinc -I$(top_builddir)include -I.
369:CFLAGS := -include $(top_builddir)include/libc-symbols.h \
370:        $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
371:        -fno-builtin -I$(top_builddir)include -I.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

コンパイルします。

atmark@atde:~/uClibc-0.9.29$ make CROSS=arm-none-linux-gnueabi-

  ~中略~

atmark@atde:~/uClibc-0.9.29$ cp ./lib/crt1.o ../webcamd/crt1.o
atmark@atde:~/uClibc-0.9.29$ cp ./lib/crti.o ../webcamd/crti.o
atmark@atde:~/uClibc-0.9.29$ cp ./lib/crtn.o ../webcamd/crtn.o
atmark@atde:~/uClibc-0.9.29$ tar cfz uclibc.tar.gz lib
atmark@atde:~/uClibc-0.9.29$ su
Password:
root@atde:/home/atmark/uClibc-0.9.29# mkdir /usr/arm-linux-uclibc
root@atde:/home/atmark/uClibc-0.9.29# cp uclibc.tar.gz /usr/arm-linux-uclibc/uclibc.tar.gz
root@atde:/home/atmark/uClibc-0.9.29# cd /usr/arm-linux-uclibc
root@atde:/usr/arm-linux-uclibc# tar xvfz uclibc.tar.gz
root@atde:/usr/arm-linux-uclibc# exit

gcc 4.2.1のソースからソフトウェア浮動小数点コードの取得

gnuから gcc 4.2.1のソースコードを取得し展開して下さい。

下記フォルダにあるコードを webcamd フォルダへコピーして下さい。

 gcc-4.2.1/gcc/config/asm/lib1funcs.asm
 gcc-4.2.1/gcc/config/asm/ieee754-df.S
 gcc-4.2.1/gcc/config/asm/ieee754-sf.S

uvccaptureをwebcamdとしてビルド

atmark@atde:/usr$ cd ~/webcamd
atmark@atde:~/webcamd$ ./buildwebcamd

cameraアプリの展開

Tom Gibara氏のLive Camera Previews in AndroidのSocketCameraを使用したアプリ"camera.apk"をAndroid側で使用します。

SocketCameraに与えるパラメータは以下の通り。

  • アドレス:127.0.0.1
  • ポート:8080
  • 画像の横幅:320
  • 画像の縦幅:240

ビルドしたアプリを実機に展開

ビルドした物をSDカード、httpサーバーからDLする等で下記の様に実機上で展開して下さい。

ファイル:uclibc.tar.gz

root@android:/# mkdir /usr/arm-linux-uclibc
root@android:/# /bin/cp /sdcard/uclibc.tar.gz /usr/arm-linux-uclibc/uclibc.tar.gz
root@android:/# tar xvfz uclibc.tar.gz

ファイル:uvcvideo.ko

root@android:/# mkdir /lib/modules
root@android:/# /bin/cp /sdcard/uvcvideo.ko /lib/modules/uvcvideo.ko

ファイル:webcamd

root@android:/# mkdir /usr/webcamd
root@android:/# cp /sdcard/webcamd /usr/webcamd/webcamd

ファイル:camera.apk

root@android:/# /bin/cp /sdcard/camera.apk /data/app/camera.apk

セットアップ

uvcvideo.koをロードしてwebcamdを起動すれば準備完了です。

root@android:/# cd /lib/modules
root@android:/# insmod uvcvideo.ko
root@android:/# cd /usr/webcamd
root@android:/# ./webcamd&

cameraアプリ起動

Androidのランチャにcameraアプリがあるので起動させます。

f:id:bs-android:20081025131904j:image

2008-07-28

Androidでサウンド再生を可能にするパッチ

| 02:30 |

お待たせしました。

大分時間がたってしまいましたが、以前アットマークテクノの人にいただいていたサウンドを再生させるためのパッチファイルの動作検証が終わり、ひとまず身の回りが落ち着いたので公開致します。

サウンドのパッチファイル

解凍するとファイルが2つ含まれているので、両方共当ててカーネルコンパイルしてください。

#menuconfigなどでOSSをオンにしておく必要があると思います。

そして、コンパイルしたカーネルを焼いた実機を起動させてから、

rm /dev/eac

としてAndroidが使用するサウンドデバイスを削除します。

そして

ls -al /dev/dsp
crw-------    1 root     root      14,   3 Dec 31 19:01 /dev/dsp

としてドライバのメジャー番号とマイナー番号を確認しておきます。

そして、確認したメジャー番号とマイナー番号を使って/dev/eacを作り直します。

mknod /dev/eac c 14 3

これだけで音が鳴るようになるはずです。

Ambientという音楽プレイヤーを使ってSDカードのmp3ファイルを再生させるのが楽だと思います。

これはArmadillo-500での方法ですが、他のボードやZaurusにも応用可能だと思います。

他のデバイスでも成功したらフィードバックを頂けるとありがたいです。

グッドラック!

nabenabe 2008/08/01 23:43 先日,直接お世話になったものですが・・・(^^;)
Armaddilo500にて,パッチを手動で当てて,音楽が鳴るようになりました.が・・・・なんか音が小さい・・・小さすぎる.
ジャックからPC用のアンプ内蔵スピーカに接続して最大にしても小さい・・・
ボリュームキーが+とーのはずなんですが,特に利いてる気もしません.
(エミュレータ上でも+とーキーって利かないよーな・・・?)
なんだか,ものすごく単純なミスをしているようなんですが,ご存じでしたらご教授下さい

bs-androidbs-android 2008/08/20 09:31 反応が遅くなって申し訳ありません。
ミスではなくAndroidからの音量のコントロールができないようです。
今実機で試せる状態でないのではっきりした回答が出来ず申し訳ないです。
ログインしてコンソールからボリュームをコントロールする方法があると思います。

nabenabe 2008/08/25 00:16 そのようです...とりあえず,まだボリュームいじれていません(^^;)
何かわかりましたら,またお願いいたします

mnamna 2008/08/27 19:06 「mixer」を使えば音量を変更することが可能ですよ。

# mixer pcm2 100

数値は0〜100です。

2008-04-28

Armadillo-500にAndroidをポーティングする方法について

| 15:31 |

このブログに今まで書いてきた方法で、基本的にはArmadillo-500にAndroidポーティングすることが可能ですが、上手くいっておられない方もいらっしゃるようです。

どこまで行っているかの状況と、どこでつまづいているかを教えていただければ、我々で力になれるかもしれませんので、差支えがなければ、情報共有の為にも当ブログのコメントに書き込みくださいませ。

また、公開に差支えがある場合は個別のメールをいただければ、対応を検討いたしますので、query@brilliantservice.co.jp(@半角にしてください)までご連絡ください。

メールの件名には

[ポーティング]

の文字を入れていただければ助かります。

kitashukitashu 2008/05/13 16:44 こんにちは。こちらを拝見してArmadillo-500遊びを始めました。「初心者はこんな風につまずいている」ということで、インストール過程を載せてみました。コメント頂ければ嬉しいです。
http://d.hatena.ne.jp/kitashu/20080513

bs-androidbs-android 2008/05/14 00:43 コメントいたしました。頑張ってみてください。

kitashukitashu 2008/05/15 11:48 待受画面の所までたどり着きましたので、取り急ぎご報告します。様々なアドバイスをいただき、どうもありがとうございました!

bs-androidbs-android 2008/05/16 09:00 おめでとうございます!

2008-04-03

Androidポーティング勉強会の開催日を変更します

| 18:08 |

Androidが俄かに忙しくなってまいりました。

先ほどGoogleデベロッパー交流会に参加を申し込みましたので、そこでの内容も勉強会に反映したいのと、デベロッパー交流会の前日では人が集まりにくいと思いますので、勉強会の日程を後ろにずらそうと思います。

既にご応募いただいた方は申し訳ありません。

日程が調整でき次第、当ブログにて連絡いたします。