BeagleBoard-xM rev.C+Android

655 views
Skip to first unread message

abcro

unread,
Apr 27, 2011, 6:33:04 AM4/27/11
to Android-Embedded-Japan
はじめまして。あばくろと申します。
LinuxとAndroidの勉強のため、
今月BeagleBoard-xM rev.Cを購入しました。

TI Android FroYo DevKit V2のAndroidプレビルドイメージを
SDカードにインストールしたところ、Androidの起動画面までは
確認できたのですが、USBマウスが使用できずAndroidが操作できません。

どこを確認すればよいかも分からない状況なので、
解決方法をご存知の方がいれば教えてもらえないでしょうか。


起動メッセージ
http://pastebin.com/a9GApdER

Satoshi OTSUKA

unread,
Apr 27, 2011, 2:10:24 PM4/27/11
to android-emb...@googlegroups.com
あばくろさん

起動ログを拝見しますと、13行目のマシン判定が
Beagle unknown 0x02
となっています。

u-boot-omap3 のソースコードの board/ti/beagle/beagle.c の中を御覧いただくと、

switch (beagle_revision) {
case REVISION_AXBX:
printf("Beagle Rev Ax/Bx\n");
setenv("mpurate", "600");
break;
case REVISION_CX:
printf("Beagle Rev C1/C2/C3\n");
MUX_BEAGLE_C();
setenv("mpurate", "600");
break;
case REVISION_C4:
printf("Beagle Rev C4\n");
MUX_BEAGLE_C();
/* Set VAUX2 to 1.8V for EHCI PHY */
twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
TWL4030_PM_RECEIVER_DEV_GRP_P1);
setenv("mpurate", "720");
break;
case REVISION_XM:
printf("Beagle xM Rev A\n");
MUX_BEAGLE_XM();
/* Set VAUX2 to 1.8V for EHCI PHY */
twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
TWL4030_PM_RECEIVER_DEV_GRP_P1);
setenv("mpurate", "1000");
break;
default:
printf("Beagle unknown 0x%02x\n", beagle_revision);
}

てなことをやっている箇所があります。
あばくろさんの BeagleBoard-xM rev.C はまだ対応がされていないようなので
最後の default 行に行ってしまい、u-boot での EHCI の初期化が
正しく行われず USB が使えない状態になってしまっているのではないでしょうか。

また、
49行目
Kernel command line: console=ttyS2,115200n8 androidboot.console=ttyS2
mem=256M root=/dev/mmcblk0p2 rw y
となっていますが、
TI-Android-FroYo-DevKit-V2 や TI-Android-FroYo-DevKit-V2.2 の boot.scr を見ると、
setenv bootargs で設定している kernel command line は
'console=ttyS2,115200n8 androidboot.console=ttyS2 mem=256M
root=/dev/mmcblk0p2 rw rootfstype=ext3 rootdelay=1 init=/init ip=off
mpurate=1000 omap_vout.vid1_static_vrfb_alloc=y'
となっています。

rev.C はまだソフトウェアが対応修正中で足りないのはこれだけではないかも知れませんが、
kernel の起動オプションに mpurate=1000 も足して設定したら何か状況が変化しないでしょうか。


Satoshi OTSUKA
satoshi...@gmail.com

2011年4月27日19:33 abcro <abcro_...@yahoo.co.jp>:

> --

abcro

unread,
Apr 27, 2011, 10:09:35 PM4/27/11
to Android-Embedded-Japan
board/ti/beagle/beagle.c を確認しました。
確かにEHCIがらみの処理を行ってなさそうですね。
勉強になります。

付属SDカードの方を確認したところ、
同じように「Beagle unknown 0x02」が出力されていました。
こちらではAngstrom起動後USBマウスが効くので、
その他にも原因がありそうです。

付属SDカードでのAngstrom起動メッセージ
http://pastebin.com/wmcxGvex

273-280行目あたりがマウス認識でしょうか。
こんな感じのメッセージがAndroid起動時にも出てくれれば・・・。
これからLinuxカーネルのソースを追ってみます。

#AngstromのカーネルとAndroidのカーネルを比較したら
 何か分かるのかな??

> rev.C はまだソフトウェアが対応修正中で足りないのはこれだけではないかも知れませんが、
> kernel の起動オプションに mpurate=1000 も足して設定したら何か状況が変化しないでしょうか。

コンソールを最大表示にし全文を確認したところ、
大塚さんの言われたKermel command lineと同じ内容でした。
mpurate=1000はすでに設定されていたようです。
途中で切れてしまっていて申し訳ありません。

[起動メッセージ抜粋]
Kernel command line: console=ttyS2,115200n8 androidboot.console=ttyS2
mem=256M root=/dev/mmcblk0p2 rw rootfstype=ext3 rootdelay=1 init=/init
ip=off mpurate=1000 omap_vout.vid1_static_vrfb_alloc=y

あとkernel の起動オプションに mpurate=1000 も足してというのは、
boot.scrを再作成するということだったでしょうか?

TI-Android-FroYo-DevKit-V2 UserGuideや
TI-Android-FroYo-DevKit-V2 ReleaseNotes、
u-bootのREADMEを確認したのですが、
boot.scrのTI-Android-FroYo-DevKit-V2の設定内容が
分からず作成できませんでした。

どこに情報が乗っているのか教えていただけないでしょうか。
> satoshi.ots...@gmail.com
>
> 2011年4月27日19:33 abcro <abcro_10c...@yahoo.co.jp>:

Satoshi OTSUKA

unread,
Apr 27, 2011, 10:58:41 PM4/27/11
to android-emb...@googlegroups.com
rev.C はまだ出回りはじめたばかりのようで、
beagleboard google groups でも
beagleboard.org の Jason Kridner さんが rev.C 対応のための patch を投稿していたり
Ubuntu が rev.B では動いていたのに rev.C で動かなくなったという報告があったり
しました。
ごらんになってみると参考になる情報があるかも知れません。


2011年4月28日11:09 abcro <abcro_...@yahoo.co.jp>:


>
> あとkernel の起動オプションに mpurate=1000 も足してというのは、
> boot.scrを再作成するということだったでしょうか?

はい、そういうつもりでした。

>
> TI-Android-FroYo-DevKit-V2 UserGuideや
> TI-Android-FroYo-DevKit-V2 ReleaseNotes、
> u-bootのREADMEを確認したのですが、
> boot.scrのTI-Android-FroYo-DevKit-V2の設定内容が
> 分からず作成できませんでした。
>
> どこに情報が乗っているのか教えていただけないでしょうか。

ここらへんにありますです。
http://elinux.org/BeagleBoardUbuntu#U-Boot_Boot_Scripts


Satoshi OTSUKA
satoshi...@gmail.com

Satoshi OTSUKA

unread,
Apr 27, 2011, 11:17:50 PM4/27/11
to android-emb...@googlegroups.com
たびたびすみません。

2011年4月28日11:58 Satoshi OTSUKA <satoshi...@gmail.com>:
>>
>> どこに情報が乗っているのか教えていただけないでしょうか。
>
> ここらへんにありますです。
> http://elinux.org/BeagleBoardUbuntu#U-Boot_Boot_Scripts

mkimage コマンドで boot.scr を作成する手順がこの URL で、
bootargs の内容に関しては

http://processors.wiki.ti.com/index.php/TI-Android-FroYo-DevKit-V2_UserGuide#Using_DVI_Monitor

こちらあたりに書いてあります。

大塚聡史
Satoshi OTSUKA
satoshi...@gmail.com

Kazuhisa Ichikawa

unread,
May 9, 2011, 5:01:24 AM5/9/11
to Android-Embedded-Japan
あばくろさん

いちかわと申します

とりあえず BeagleBoard-xM rev.C で USB マウス/キーボードが使えれば良いのであれば、以下の 1), 2) でビルドし
た u-boot.bin, uImage を使うことで解決すると思います(少なくとも私の手持ちの rev.C では USB マウス/キーボード
は使えるようになりました)。

おそらくこの修正だと rev.A, rev.B で USB が使えなくなる気がするので、どの rev でも大丈夫な対応をするには、以下で
Jason Kridner さんが言及されているパッチをきちんと調べてみるのが良いと思います。

http://groups.google.com/group/beagleboard/browse_thread/thread/db1869513da3ccb1?hl=ja

u-boot用パッチのリンクがデッドリンクになっているようですが、おそらく

http://git.denx.de/?p=u-boot.git;a=commit;h=f6e593bb1255d1e15201cb5dec8c95264489e729

のことだと思います。

=== 以下、BeagleBoard-xM rev.C で USB を使えるようにする方法です ==

1) TI Android Froyo DevKit V2 付属の u-boot-0.3.00.02.07 のソースを修正して u-
boot.bin をビルド

--- a/board/ti/beagle/beagle.c 2010-06-25 18:31:31.000000000 +0900
+++ b/board/ti/beagle/beagle.c 2011-05-09 15:50:06.000000000 +0900
@@ -140,6 +140,13 @@
break;
default:
printf("Beagle unknown 0x%02x\n", beagle_revision);
+ MUX_BEAGLE_XM();
+ /* Set VAUX2 to 1.8V for EHCI PHY */
+
twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
+
TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
+
TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
+
TWL4030_PM_RECEIVER_DEV_GRP_P1);
+ setenv("mpurate", "1000");
}

/* Configure GPIOs to output */

2) BeagleBoard-XM Android用の Linux Kernel 2.6.32 のソースを修正して uImage をビルド
(私は、git://gitoris.org/rowboat/ から取得したものを使っていますが、おそらく DevKit V2 に付属の
Kernel ソースでも同様と思います)

--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -434,7 +434,7 @@ static int beagle_twl_gpio_setup(struct device
*dev,

/* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR
(out, active l
gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");
- gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1);
+ gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0);
}
else {
gpio_request(gpio + 1, "EHCI_nOC");

abcro

unread,
May 17, 2011, 8:24:22 PM5/17/11
to Android-Embedded-Japan
いちかわさん

返答遅くなってしまい申し訳ありません。
ご回答ありがとうございました。

昨日ようやくKernelとu-bootのビルドを通すことができまして、
パッチをあてたAndroidの起動を確認したところ、
無事USBが動作し、Androidの動く様を拝むことができました。
感無量です。

いちかわさん、大塚さん、本当にありがとうございました。

今後もまた何かお聞きする機会があると思いますが、
そのときは何卒よろしくお願い致します。

On 5月9日, 午後6:01, Kazuhisa Ichikawa <kah...@gmail.com> wrote:
> あばくろさん
>
> いちかわと申します
>
> とりあえず BeagleBoard-xM rev.C で USB マウス/キーボードが使えれば良いのであれば、以下の 1), 2) でビルドし
> た u-boot.bin, uImage を使うことで解決すると思います(少なくとも私の手持ちの rev.C では USB マウス/キーボード
> は使えるようになりました)。
>
> おそらくこの修正だと rev.A, rev.B で USB が使えなくなる気がするので、どの rev でも大丈夫な対応をするには、以下で
> Jason Kridner さんが言及されているパッチをきちんと調べてみるのが良いと思います。
>
> http://groups.google.com/group/beagleboard/browse_thread/thread/db186...
>
> u-boot用パッチのリンクがデッドリンクになっているようですが、おそらく
>
> http://git.denx.de/?p=u-boot.git;a=commit;h=f6e593bb1255d1e15201cb5de...
Reply all
Reply to author
Forward
0 new messages