スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

組み込みAndroidポータブル #13

第13章 Bluetooth接続

ビーグル君とお散歩を目指すプロジェクト。
今まで操作するのに、有線マウスを使用していましたが、スマートに無線化したい!

120618_BeagleBoard_Bluetooth.png


しかし、通常のスマホのように設定画面でONしようとしても、BlueTooth ONにはなりません
120625_BT.jpg

という訳で、今回はBluetoothを接続できるように設定します。
ちょびっと手間がかかります。
主な手順は以下4つ。

・BT-USBドングル準備(BTハードの準備)
・KernelのConfig設定(BTドライバ組み込み)
・AndroidのConfig編集(Android OSでBT有効化)
・init.rc修正(起動スクリプト修正)



BT-USBドングル準備(BTハードの準備)
そもそもBeagleBoardにはBluetoothのハードは内蔵されていません。
そこでUSBで挿入できるBT-USBドングルを準備します。家電量販店に行けば安く売ってます。
120625_BT-dongle.jpg
数年前に購入したcoregaのCG-BT2USB02CW(Bluetooth Ver2.1+EDR)
もちろん、これ以外でも大丈夫です。


KernelのConfig設定(BTドライバ組み込み)
Linuxでの作業です。
"kernel"フォルダへ移動し、MENU CONFIGを立ち上げる

cd ~/myGingerBread/TI_Android_GingerBread_2_3_4Sources/kernel/
make ARCH=arm CROSS_COMPILE=arm-eabi- menuconfig


すると次のような画面が現れる
120620_BTconfig_0.png
操作は、上下キーで項目移動、Yキーで組み込み、左右キーでSelect/Exit選択、Enterキーで決定

"Networking suppport"を選択し、Enterキーを押してサブメニューへ進む
120620_BTconfig_1.png

さらに"Bluetooth subsystem support"を選択し、サブメニューへ進む
出てきた項目全てをYキーを押して組み込む
120620_BTconfig_2.png

"Bluetooth device drivers"の中も全て組み込んだ
120620_BTconfig_3.png

Exitで戻って"RF switch subsystem support"の中も全て組み込む
120620_BTconfig_4.png

pathを通してから

export PATH=~/myGingerBread/TI_Android_GingerBread_2_3_4Sources/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH


makeする

make ARCH=arm CROSS_COMPILE=arm-eabi- -j5 uImage


AndroidのConfig編集(Android OSでBT有効化)
BoardConfig.mkを編集する

cd ~/myGingerBread/TI_Android_GingerBread_2_3_4Sources/
emacs device/ti/beagleboard/BoardConfig.mk


開いたファイルの一番下に以下の文を追記

BOARD_HAVE_BLUETOOTH := true


Androidをビルド。5分くらいかかった。

$ make TARGET_PRODUCT=beagleboard OMAPES=5.x -j5


out/target/product/beagleboard の中のファイルについて
以前作ったandroid_rootfs フォルダの中身を消すか、フォルダ名を変えて退避
android_rootfsフォルダを新規作成
rootフォルダ以下の中身全てをandroid_rootfsフォルダにコピー
systemフォルダをandroid_rootfsフォルダにコピーする


init.rc修正(起動スクリプト修正)
TIのPorting Guidesを参照すると分かりますが、UARTドライバーのポート名?を変更する必要があります。
"Starting 2.6.37 kernel, UART driver is changed to use ttyO* instead of ttyS*"

init.rcというファイルがandroid_rootfsフォルダにあるので編集する
右クリックgeditで開いて編集可能
4箇所、 /dev/ttyS1 という所があるので、/dev/ttyO1に変える


後は、前回と同様の作業を行うだけ!

Android File Systemが作られた位置へ移動

cd out/target/product/beagleboard


android_rootfsをimageへコピーする
Toolの中にある mktarballシェルスクリプトを使って、今作ったフォルダ android_rootfs を rootfs.tar.bz2 に圧縮してimageフォルダへコピーする

sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2
cp rootfs.tar.bz2 ../../../../../images/


microSDカードに書き込み

cd ../../../images
LANG=C sudo ./mkmmc-android.sh /dev/sdc MLO u-boot.bin uImage boot.scr rootfs.tar.bz2



結果
microSDカードをBeagleBoardに入れ立ち上げると、BTマークが表示されました。
120625_BT2.jpg
成功!!


ポイント
KernelのConfig設定で、"RF switch subsystem support"の中をincludeし忘れていて、かなりハマりました。
つまずいた場合は、シリアルで繋いでAndroid起動後に、"hciconfig"や"hcitool scan"コマンドが効くか試してみるべし


参考にしたサイト
知らんがな(Gingerbread (Android 2.3.4) on BeagleBoard-xM Rev.C)
TI-Android-GingerBread-2.3.4-DevKit-2.1 DeveloperGuide

スポンサーサイト

trackback


この記事にトラックバックする(FC2ブログユーザー)

まとめ【組み込みAndroidポー】

第13章 Bluetooth接続ビーグル君とお散歩を目指すプロジェクト。今まで操作するのに、有線マウスを使用

comment

管理者にだけ表示を許可する

No title

なんか面白いことしていますねー。今年のmakeも期待しています (^^)v

あ、この前のメイク・カンファレンスではろくに挨拶できなくてすみませんでした。

去年のmakeの時に教えていただいたFusionPCBですけどちょーしいいですねー。よく利用しています。昨日はインターネットラジオシールド作ってみましたが、基板修正無しで一発で動作しました。わたしとしてはとても珍しいですw

Re: No title

インターネットラジオいいですね、
一発で動いたときは感動モノですよね。

自分は最近、全く工作が進んでいません。。。
でも、makeには参加したいなぁ

03 | 2017/04 | 05
Su Mo Tu We Th Fr Sa
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
プロフィール

エレクトリックバカ

Author:エレクトリックバカ

ポケコンでプログラミングに目覚め、PICマイコンで電子工作に希望を抱き、来たるべきUGDの時代を夢見て眠る。
そんな うだつが上がらないサラリーメン。
先生、電子工作はおやつに入りますか?




Electric Baka

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。