参加者(ATND順・敬称略)
|
発表内容
@magoroku15 : 「ADK2012の構造と解析 安価なCLONEは作れるのか」(資料)
- 自己紹介
オーディオマニア- 今日の内容
- ADK解析 ハード編
- ADK解析 ソフト編
- Cloneの作り方・可能性
- Accessory Development Kit 2012 Guideの内容
- Developer Accessories with ADK 2012の内容
- ADK解析 ハード編
ソフト屋は、抵抗とコンデンサとコイルをとっぱらってみればよい。すっかすかになってわかりやすくなるので。電気特性とかまずは考えず、おそれずにやってみよう。
- adk2012/board
CADのデータ。ハード設計、回路図、BOMなどCADのデータがはいっているので、クローンを作ろうと思えば作れる- メインボードの主要部品
- メインボードの回路図
- Bluetooth
- PIC10の用途
- IOボード
- LEDボード
- AUDIO
- SENSORS
- CAP SENSE
- LEDS AND DRIVER
なにしろ物量がすごい- ADK解析 ソフト編
- ADK Connection on Bluetooth
- adkinit
- Bluetoothの復習
- btinit
ファームウェアの書き込み等の処理がある。このためクローンはとりあえず同じチップを入手する必要がありそう- processUSBAccessory
Bluetoothであがってきたときも、USBであがってきたときも同じコマンド処理が呼ばれている- ADK Connection over bluetoothのまとめ
- USB Audio Dock Implementation
- L.audioInitを読んでみる
- L.usbh_Initを読んでみる
- L.usbh_init -> usbTask()
- ushh_work
- 安価なADK Clone は作れるのか
- 仕様案
- MCU - NXPのLPC1769
- プログラミング環境 - eclipse, 128kbまで無償で使える
- フレームワーク
- BTモジュール
- cc256x
モジュールだけどBGA- BTは後回しにしてUSB作業開始
- Device Descriptor
- Configuration Descriptor
- Interface-#1 従来のADK部分
- Interface-#2 Audio Control
- Interface-#3 Audio Stream
- USBでつなぐには
- 現状
- Debug Console
- 今後
@tetsu_koba : 「初めてのパッチ投稿」Androidと直接関係はないけれど、ubootやLinuxのカーネルにパッチを投稿したときの経験についてお話します。
- 概要
u-bootとLinux kernelについての経験で、これらはMLへの投稿で行われている- LinuxCon JapanでのGregさんの話
メンテナがどれだけ多くのパッチを処理しているのか、どんな間違ったパッチがあるのか等の話があった。 これをみた後にも関わらず、自分がやってしまった失敗や、苦労したところについてお話します。- メイル環境の整備
これが予想外に手間取った
- パッチ送信にFirefoxは不向き
- まずはLinuxの環境からMailを送信できるようにしなくてはならなかった
- 結論からいうと、git send-emailを使えるようにすべし
- パッチ投稿の注意点
- 添付ファイル禁止
- パッチがあたらなくなるようなよけいな変換禁止
- 余計な改行禁止
- タブ・スペース変換の禁止
- スレッドをとぎらせない。関連スレッドに返信する形で送らなくてはならない
- メンテナは一日に数百のパッチを処理する。厳格なルールはそのためのもの
ちょっとした事が、メンテナの大事な時間を減らしてしまう- git format-patch
- commit 内容を mail形式にしてくれる
- -sオプションで Signed-off-by 行を追加できる
- git imap-send
IMAPの下書きフォルダに送信できる。それを編集して投稿すればよい.
問題点: Firefoxだとメールを編集したときにmessage IDが上書きされ In-Reply-Toが消されてしまう 使っている環境によってはこれは使い物にならない。- git send-email
SMTPサーバと通信してメールを送信してくれる
In-Reply-Toの指定可
PATCH Seriesの扱いも簡単
git format-patchでファイルに書き出し、そのファイルを編集し、git send-emailでの送信がベストだった。- git send-email設定
Gmailアカウントを使うなら簡単。git send-email単体で可能
会社のアカウントを使いたかった。なかなかうまくいかなかったが、msmtpを経由したらいけた
最悪の場合でも、Gmail経由で送信しつつ、Fromは別名にする方法はある。- 実際にやってみて
- パッチはそのまま受理されることは少ない。2回くらいの書き直しは当たり前
- 必要な人にCCをつける(メンテナ、管理人)
分野別等にメンテナがいるので、送るパッチによって誰にするのが適切なのかが異なる- [RFC]は、意見を求むということで、このまま受理して欲しいものではないという記載
- 実例
@cooseezzz : 「JBのマウント処理」LTということで、資料なしです。ごめんなさい。コードだけ追いながら
JBでのmountの仕組みについて
- rcファイルの変化
以前は、個別にmountが記載されていたものが、rcファイル上以下の1行になっている。
mount_all /fstab.tuna
- fstab.tunaとはなんぞや
以前のマウント設定と同じようなものが、1つのファイルに記載されている。
optionの中に、encryptableという記載が見えられる。セキュリティをかけられるようになった?
- とりあえず、mount_allをとっぱらって、とりあえずinit.tuna.rc にmountコマンド全部いれてみた
→ 仮想SDカードが認識されなくなってしまった- mount_allを調べてみる
/system/core/buinutil.c の中にコマンドを定義しているらしきKEYCODEというマクロがある。
mount_allは、do_mount_all()がcallされる模様- do_mount_all()
forkしたうえで、子プロセスがfs_mgr_mount_all()を実行している。
- fstab = read_fstab()
- MF_WAIT処理
- MF_CHECK処理
ext2,ext3等のときだけfscheck関係の処理をおこなっている- mount関連処理
encryptedをみると、通常mount失敗時に、Ecrypt系のフラグがたっていると、CRYPT_TMPFS_OPTIONS付きで、tmpfsでmountしている。
@l_b__ : 「JBの子ネタ」以上のように、色々かわってきているので、ぜひ調べて発表してくださる方がいるとうれしいです。
- 今日の内容
- JBとICSのトップレベルの差分
- gdk
ポータビリティ関連ぽいけど、Android.mkが空っぽ- libnativehelper
JNI header.dalvik下からトップレベルに移行- pdk
Platform Development Kit。現在は、Pythonスクリプトが2つだけ- prebuilts
prebuiltとprebuiltsの二つに分離している?- buildディレクトリ
- core/combo/arch/x86が追加
- core/tasks以下にファイルが追加
vendor_module_check.mkがきになる。- cts
build,hostsidetest,suite追加- dalvik
- リンク先がplatform/dalvik2かと思ったらdalvikのままだった(masterブランチはdalvik2)
- libnativehelperが上位に移った意外は構成変更なし
- development
- pdkが上位に移動。内容が薄くなっている
- samplesからNFC demoがなくなっている
- device
- asus(Nexus 7[Grouper])追加
- docs
source.andorid.com修正にかんするもの程度- external
色々追加されている。 collada, pcre(regex-r2へ置き換え?)が削除になっている。- frameworks
かなり変更されている。
av.mff,ml,native,rs,testing,wilhelmが追加。
- av
mediaをまとめ直している。カメラや、Stagefright,DRM,MediaService,AudioFlinger等- testing
- wihelm
OpenSL/ES . OpenMAX ALがsystemから移動してきた- base/cmds
content,requestsync- base/libs
androidfwにAssert,Backup,Input,Keymap,Obbfile等がまとめられている- packages
- apps
LegacyCamera(古いカメラがここに移動)- providers
GoogleContactsProvier削除、PartnerBookmarksProvider追加- prebuilt/prebuilts
どういう理由で分けているのか不明- sdk
これもいくつか追加されている- System
- security追加
Framework/base/cmds/keystoreが移動して機能強化- system/core
- fs_mgr
- libcorkscrew
- libion
- libsuspend
- libsync
- extras
カーネルトレーサ等の追加
@roishi2j2 : とびいりLT「FPGAを学ぶのに知っておいた方が良い事」相変わらず、Androidとは関係ないですが、軽くお話。
某氏がFPGAの勉強をはじめたいといって見つけたverilog-HDL入門から発端。
http://www.ddna.is.tsukuba.ac.jp/lecture/lsi_design/text/verilog/verilog.html
「初期値の設定でリセット信号を用いる場合」
としてverilog-HDL入門に、だめなケースの例が書かれているのだけど、それがわからないとの事だったので軽く発表することにしました。
入門でリセットについて語るようなサイトや書籍を今まで見た事がなかったので、細かすぎるんじゃないかなという思いもあったので、軽く解説しました。たかがリセットといっても、実は非常に奥が深いところで、実装者によってかわってきたりなどしている。
- resetについての基本
基本的には負論理となっている事が多いです。電源投入後、ほとんどの間固定的なため、消費電力のためには1に固定しておいた方が良い。- 入門が駄目だとしている点
リセットを押す、離すによってcounterの値を入れ替えるというプログラムが対象。
リセットというものは、押したり離したりのタイミングが予測不能なため、counterを代入する動作が間に合わない可能性がある。
だから、レジスタ変数を使って、処理が終わるまで待つような設計が紹介されている。