2010年8月30日月曜日

あっけなく

夏休み最後の日曜日。
我が子らと遊び疲れてヘトヘトの中、
Droidくんと延長戦をしてた(・ω・)

1.9.1をバラしながら料理していくわけだが、なれたもんで、アプリの削除はサクサク終了。
しかしながら、GPSの移植作業中に睡魔が襲ってきたらしく、気が付いたら寝てたww
何をどこまで作業したのか分からないまま、とりあえず、置いといたのをさっきテストインストールしてみたら、

動くジャマイカ( ´∀`)

きっと、小人さんが出てきて、疲れきって寝てしまった良い子の代わりに、せっせと移植作業をしてくれたんだ(・∀・)!
ハイホォ~♪ハイホォ~♪

と言うわけで、移植作業は順調、、、、と、
言いたいところだけど、、、、
インストール処理scriptcmdの変更が結構痛い。
setenv してる箇所をどこか別のところでしなきゃならないんだけどどうするか。
いっそ、直接環境変数領域を書き換えるバイナリを作るか・・・うーむ。あと、google app関係だなぁ。


そうそう、カメラ関係が修正されて比較的まともに実装されてるようだ。
Camera.apk での表示は真っ黒にならずに比較的安定して表示されるようになった。
他のカメラアプリではまだ死ぬ事が多いようだ。
しかし、カメラ画像のキャプチャができない。なぜだ。。。(´・ω・`)

少しずつ改善されるけど、劇的に良くならない。
全般的に中途半端感は脱していない新ファーム。

がんがれ、EKEN。

2010年8月28日土曜日

1.9.1プレビュー

夕方、EKENのサイトに新ファームが上がってるのに気が付いた。
早速落としてインスコ。

と、同時にバラして、恒例のDiff(笑)

ベータで終わった1.9.0との比較でも、結構な範囲でバイナリが変わっている。
システムに必要なapkやフレームワークはSDKのバージョンアップにあわせて再ビルドしたものだろう。

んで、大きな変更箇所が2つ。

まず、インストールスクリプト。
scriptcmdが大幅に削られて、大半のインストール処理が prepare.bin に移ったらしい。
おかげで、システム環境変数が書き換えられないようになってしまった(´・ω・`)
wifi_powerdownが書き換えられないとツライ・・・(;´Д`)

それと、メディア系のコーデックライブラリが無くなった。
libavcodec.so, libavformat.so, libavutil.so, libfaad.so, libmad.so, この辺。
その代わり、libffplayer.so が入ったようだ。


実際に動かしてみると、表向きはあんまり変わってない。
サクサクもしてない。
入ってるアプリは相変わらず中華三昧だけど。
google appは、Map以外、何も入ってない。
もうMarketはあきらめたか、EKENw
ていうか、Gmailも何も入ってないと個人的に使いづらい。
なんとかならんのか(;´Д`)

で、メディア系のライブラリが変わってたので試してみた。
640x480のムービー。
これまでは映像はまったくダメで音声のみだったのが、絵が出た(・∀・)!をぉっ!?
絵が、、、出てる、、、動いてる、、、、
めっちゃゆっくりwww
音声が1とすると、絵が5分の1くらいの速度で流れる。

まったくダメジャン(;´Д`)

まぁ、とりあえず真っ黒にはならないようになった努力は認めるが、音声と絵がこんなにズレちゃ意味が無い。
結局、まともに見る事ができたのは、以前から正常に見られたものだけだった(´・ω・`)



とりあえず、、、
m001etc ROM に戻したw

google app の移植かぁ・・・・
面倒くさそうだなぁ・・・・・・・・・

2010年8月27日金曜日

2つのDroid

代替機が届いた(`・ω・´)

で、とりあえず、動作確認。
画面OK、タッチパネルOK、SDカードOK、WifiもOK。


んじゃ、、、、(-。-)y-゜゜゜

バラすか(笑)

届いて15分で手術室に運ばれるM001くん。
これまで埋め込んだ数々のデバイスを丸ごと移植。
サクサクばらして、サクサク移植♪
あー楽しいw

1時間後、
にゅーM001は、
ここに誕生したっ!

<完>


いや、、、終わらんケド。(・ω・)

とりあえず、動く機体を確保できたのでまた遊べる。

しっかし、今回はジャンク品と言う扱いってことで、その品姿はヒドイもんだ。
まず、液晶面のフィルムに傷がたくさんついている。お前、絶対こすっただろ!?って感じ。
画面が点灯してれば目立たないけど。
あと、本体にも汚れやスレが目立つ。まともな検品だったら絶対アウト。
んで、極めつけは、本体カバーのネジ止め部分がボンドで固めてあった。
あり?って見てみると、ネジ止めの足がポッキリ折れてるしw
止めてる意味無いじゃんww
ふ~む、、、まぁ、不良品レベルだな(;´Д`)

中身はと言うと、
基板バージョンはV5。前のがV6だったから1つ古い。
wifiがメインボードのくぼみに直接半田してあるタイプ。
当然、引っぺがして改造しやすいようにした。

緑もかわいそうっちゃ、かわいそうだ。
こんなトンデモレベルの品物が届いた日にゃビックリだわ。
日本だったら確実メーカー返品&補償。
中華との取引って怖いね~( ´∀`)

と言うことで、緑のジャンク扱い品は、ちゃんと動くけど品姿はヒドイ物が来るっと( ..)φメモメモ
覚悟して買うように(笑)

m001etc ver1.0.0

●はじめに

最初のリリース版です。
M003なんちゃって対応版もリリースします。


●概要
  • オリジナルファーム ver1.7.4ベース
  • プリインストールアプリの削除による軽量化
  • root化済み
  • Bluetooth使用可能
  • USB GPSレシーバー対応(ホットプラグは不可)
  • swap on スクリプト(オプション)
  • フォントコピー(オプション)

●GPSレシーバー

動作確認が取れているのは下記の通りです。
  • GT-730FL-S    (Sky Traq Venus 6 / pl2303 / 38400bps)
  • Gosget BU-363    (SiRF StartIII / pl2303 / 4800bps
  • SKYLAB SKM50    (MTK3327 / cp2102 / 9600bps)
  • GR-300        (SiRF StartIII / pl2303 / 4800bps)

●追加フォントファイルのインストールについて

アーカイブを解凍してできる script\usr_etc ディレクトリに、TrueTypeフォントファイルを入れておくと /system/fonts に自動的にコピーします。
このとき、フォントファイル名を DroidSansJapanese.ttf にしておくと、Androidのロケール設定で日本を選択したときに、このフォントが使用されます。


●スクリーンショット



●ダウンロード

以上。


とりあえず、1.7.4ベースの安定版、っと(・∀・)

今、ぼやーっと考えてるのは、
SDK1.9.0化
USBシリアルドライバの追加(できれば、インストール時に使用ドライバを選択したい)
面白そうなカーネルモジュールを追加して遊べないか?
Bluetooth周りでもう少し遊べないか?
もっと軽量化できないか?(裏方サービスを削ってみる?)

そんな感じ。

実現性があるのから手をつけると思う(`・ω・´)

SDK 1.9.0調査中

ぼけーっとしてても仕方ないので、SDK 1.9.0の入ったROMを試している。
M001くんは仕事上でのスケジュール管理ビュワーに使ってたりしてるので、ほぼ卓上固定でJorteとかを使っている。
これくらいの負荷なら貧弱CPUのM001くんでもへーき。
ま、コレくらいしか使い道が無いってのも悲しいが(笑)

んで、ノートPC上でUbuntuを開き、ターミナルでlogcatを流しっぱなしにしてるんだけど、やっぱりまだSDK自体が完成してないのか、流れるデバッグログが1.7.4よりもかなり多い。
でも、思ったより安定している感じはする。
ドライバ関係は手を入れてるんだろうな。
正式にアナウンスが無いのがアレだけど、ROM作者が使いたいって思うのは分かる。
Setting.apkもイイ具合に項目が増えてるし。
私も使いたい(笑)

m001etc-ROMだけど、ver1.0.0は1.7.4ベース。
その次のバージョンは 1.9.0ベースにしようと思う。
それまでに、正式アナウンスで安定版ファームが出ればいいんだけどね。
やっぱ、現状で安定しているSDKバージョンで1つは出したい。
ま、安定版の担保みたいなもんだけど。

で、SlateDroid効果でダウンロード数が伸びている・・・
このサイトは日本語ベースなので、アナウンス用の英語サイトも作ってみた。
ていうか、英語はまったくダメなんだが(;´Д`)
機械翻訳に頼りっぱなしでいくしかない。

日本語もおぼつかない変な関西人が妙な英語を披露する面白サイトってことでヨロシク♪

2010年8月25日水曜日

M002≒M001

えー、画面がぶっ壊れたM001くんはまだなんとか生きてます(笑)
マウスで動かせるのが救い(・∀・)
でも紐付きだと持ち運べんべん不便。
とりあえず、代替品を入手するまで辛抱辛抱・・・・。
早く来ないかなぁ~(・∀・)

ところで、
ココで扱ってるファイルはmegauploadにおいてるんだけど、オーナーにはダウンロード数が分かるようになっている。
各バージョンで見るとM001用とM003用あわせて40件弱。
あまり宣伝もしてないし、マニアな内容だけに妥当な数字だと思う( ・ω・)
んでも、こんな勝手ROMでも使ってくれてるのはありがたいことだ。
m(__)mありまとう。

で、コメント欄に異国の方からのレポートがあってビックリした。
確かにSlateDroidのフォーラムにはちょこっと書き込みしたりしてたんだけど。
どこから辿ってきたのか謎だ。
でも、こんなめちゃくちゃな日本語すらおぼつかない、ぁゃιぃコンテンツを読んでくれたのかと思うとちょっと「やっちまった!」感が漂う。。。。

もうちょっとマシな日本語書けよ。ほんと。
トランスレータにかけたらむちゃくちゃだよ?
異国の方が混乱するよ?キット。
関西弁とか、オワタとか、(チンチン略とか、草wwとか。
Web翻訳とかで、訳すとヒドイw

でも、直す気は更々無い(`・ω・´)
(これでもドキュメントは平易な日本語にしてるつもり)


さておき、

M002とM001、各ver 1.7.4ファームの比較をしてみた。
いつものごとく、ファームのアップデータを解いてDiff。

違ってる部分は、
script\scriptcmd
script\etc\custkey
の2つのファイルだけ。
あと、M002には、
script\driver\wm8505_kpad_md.ko
script\mvl5_v5t_ramdisk_WM8505.100202.package.gz
が、存在しない。
ボタン周りが違うだけで、中身は同じっつーことだねー。

つまり、これだけ直せば、M001用をM002に適用できるっぽい。
あくまでも、っぽいのであって、できる!ではない。
だって、検証してないもーん(・∀・)
死んでも知らんw

人柱さぁ~ん、よろしく~( ´∀`)

2010年8月24日火曜日

バリンっとな


出先から帰ってきたら、

家に置いてたM001くんの

LCD割れてたww

家族が落として割ったらしいw

画面点くけど、色おかしいし(爆)

M001\(^o^)/オワタw
はぃはぃ、終了、終了ww

・・・・・(´・ω・`)つまらんがな。

なんか、いまさら1万も出して買いなおすのもバカみたいだなw
給料日までに考えるか・・・(゜-゜)

にしても、m001-ROMどうすっかな。

2010年8月21日土曜日

いろいろメモ

めも1

巷でうわさの新ファーム 1.9.0 beta ROM。
何が新しくなったのか、ちょっぴり覗いてみた。
Frameworkまわりは、まぁ新しくなってた。と言うか、WMのSDKにあわせてビルドしなおしたんだと思うけど。
で、ライブラリ周りを見てるとき気が付いた。

新ファームに gps_freerunner 載ってるww

libhardware_legacy.soにインプリメントされてるのを確認。
つまり、GPSに対応しようとしている。。。ってこと。

/dev/ttyUSB5 につながってる(予定の)GPSレシーバーを見にいってるみたいだ。init.rcでも関連の初期化をしてるっぽい。

でも、、、ちょっとぁゃιぃ。
と言うのも、、、コレ、レシーバーの対応はどうするつもりなのだろう??
専用のレシーバーをオプションとして売るのかな?
ひょっとして、うわさのM005用のライブラリと共通?
てか、M001用のファームだからやっぱり外付け??

とか、色々考えた。
まぁ、、、、いいけど。( ・ω・)

オイラとしては、キャリブレーションもGセンサーもGPS設定もできる Settings.apk が手に入ればそれでおkw



めも2

RMapsのTracks機能を使ってGPSのテストをしてるんだけど、Trackの軌跡がブチブチ切れる事がある。
しばらくトラックポイントを拾って軌跡描いてるなぁ~と見てると、突然、プチッとポイントを拾わなくなってしまう。
でも、マーカーはちゃんと移動してるから、ロケーションは拾ってるっぽい。
アレ??と思ってしばらくすると、またちゃんと復帰する(--;
なんか、ぴょんぴょん飛んでる軌跡になるんだけどww

で、たまたま、wifiを切ってトラッキングするとあら不思議、キレーにトラックポイントを拾いこぼすことなく記録してくれた。

むぅ(;´Д`)

前から感じてたんだけど、wifi処理って実は重い。
M001上でベンチマークを動かすと分かるんだけど、wifi ON/OFFでベンチマーク値がずいぶん違う。
もちろん、OFFの方が軽いのでベンチマークは良い結果になる。

やはりお粗末貧弱CPUにはハードな仕事だったのかと。。。
んなわけで、オフラインでトラッキングするときはwifi切って使おうっと。



めも3

で、、、
1.9.0まだー(チンチン略

2010年8月20日金曜日

M003なんちゃって版の作り方

M001とM003は兄弟機なのは知られてるところ。
で、中身についてもほとんど同じ。
ていうか、基本的にバイナリレベルではほぼ差が無い。
スペックが同じならまったく同じ振る舞いをする。

で、ハードウェアの面で違うところといったら、画面の解像度。あと、ボタン。
ま、外部ポートの有無もあるんだけど、直接カーネルとかドライバに関係するものではないので。

GPSの動作確認を募る意味もあって、M003に対応したROMも出してるんだけど、一応、どうやって作ってるのかをメモしておく。

-注意!!-
くれぐれも自己責任のもとで試してネ!
どうなっても、わしゃ知らん(`・ω・´)
-とりあえず書いておく-

M001版のROMをベースに、M003用に置き換えるべきファイルは次のもの。
置換するファイルはM003のオリジナルROMから取り出しておくこと。
(作業途中でM001用とM003用を混ぜると危険なので注意!(笑))
ファイル                   置く場所
touchcal                   \script\etc\
touchcal                   data.tar           /wmtpref/
usbgadget.sh              android_fs.tar    /
wm8505_kpad_md.ko    android_fs.tar    /
libwmtapi.so               android_fs.tar    /system/lib/
scriptcmd                 \script\
以上、オリジナルROMのDiffから引っ張り出した内容なので、基本的にコレで画面周りとタッチパネル、ボタンは大丈夫なはず。
.tarファイルの中にアーカイブしなきゃならないファイルは 7-Zip などを使って直接アーカイブを開きコピーすればOK。所有者とか権限はとりあえず気にしなくても大丈夫。

usbgadget.sh は、なぜかM001と扱いがちょっと違う。謎。
wm8505_kpad_md.ko はキーパッドのモジュール、libwmtapi.soはWMチップ用のライブラリで画面制御の処理が中に入ってる。

他のカスタムROMもやろうと思えば対応できるかも。
ただし、M001のハードウェアに依存した機能を組み込んでるようなものは難しい。
逆もまたしかり。(`・ω・´)

で、なぜ、「なんちゃって」版なのかというと、
私の脳内M003で妄想動作検証してるから(笑)
要するに、実機のM003持ってないけど対応できたよ!なんちゃって!(動かなくても許してね)という思いを込めて。

いや、そんなものは込めるな( ゜Д゜)

2010年8月19日木曜日

m001etc-B4 >A4

●はじめに

Beta 4です。
GPSレシーバーの動作機種が増えました。
一部の不具合を修正し、ファイルなどを整理しました。

今回もM003なんちゃって対応版も同時公開です。
ダウンロードは右サイドバーからどうぞ。


●ビーサンからの変更点
  • USBシリアルコンバータチップ、CP2102(CP2101)ドライバを組み込みました。
  • GPSチップ、MTK3327 と Sky Traq Venus 6 に対応しました。
  • ブートロゴを変更しました。(Thx おしこうじさん)
  • 追加フォントファイルのインストールができるようになりました。
  • 検索ウィジットの不具合を修正しました。

●解説

<対応GPSレシーバーについて>
実機として動作確認が取れているのは下記の通りです。
・GT-730FL-S    (Sky Traq Venus 6 / pl2303 / 38400bps)
・Gosget BU-363    (SiRF StartIII / pl2303 / 4800bps
・SKYLAB SKM50    (MTK3327 / cp2102 / 9600bps)
・GR-300        (SiRF StartIII / pl2303 / 4800bps)

<追加フォントファイルのインストールについて>
アーカイブを解凍してできる script\usr_etc ディレクトリに、TrueTypeフォントファイルを入れておくと /system/fonts に自動的にコピーします。
このとき、フォントファイル名を DroidSansJapanese.ttf にしておくと、Androidのロケール設定で日本を選択したときに、このフォントが使用されます。



以上。


対応GPSも増えて、選択肢も広がる~(・∀・)
だいぶ安定したバージョンになってきたかな~。
これで特に問題なければ次がバージョン1.0になる予定。
でも、これ以上はあんまり広がらないかなぁ。。。
新ファームが出ればいいのになぁ(゜-゜)

ちなみに、B4 は A4よりも大きい。
紙のサイズね(・ω・)

GPSコレクション

が、また増えたw

GPSレシーバーがぶっ壊れた後遺症とこの暑さで頭がおかしくなったのかも( ̄ー ̄)

ブツはコレ!

GT-730FL-S
GPS chip : Sky Traq Venus 6
USB Serial : pl2303 / 38400bps


秋月で売ってるGPSロガー。バッテリ内蔵。
スイッチON!でその時点からの位置情報をロギングしてくれる便利なヤツ。
もちろん、USBでつなげばフツーのレシーバーとしても使える。情報も多いねー。

早速、GPSコマンドを調べて、設定に追加。
今回はレシーバーのコントロールにバイナリメッセージを使う機種なのでちょっとドキドキ。何せ初めてなもので(* ̄o ̄*)
が、思ったようなトラブルも無く、あっさり認識&動作。
バッテリ外付けのGT-730FLも、中身はほぼ同じっぽい(旧型はVenus 5らしいけど)ので、たぶん使える。

使ってみた感じ。
衛星の捕捉もまずまず。受信レベルもまずまず。
まだ車載で試してないのでなんとも言えないけど、精度はあまり期待してない(^_^;


この調子でポンポン対応GPSレシーバーが増やせそうだ。
てか、自分で入手はすでに限界&お腹いっぱい(笑)
3つも買って(壊れたの含めて4つ)どうするんだよ馬鹿。
しかも、バイク乗りでもなければ、自転車や登山するわけじゃないので、自分で使用する用途はトンと見当たらない(・∀・)
単なる探究心だけ(大馬鹿)

B4準備中ぅ~。

2010年8月17日火曜日

モジュール(ってフラ語っぽいよね)

お盆休みも終わり、休み明けの荒野に日焼けの跡が痛い、今日の僕です。

休み前に急遽、GPSレシーバーを調達する羽目になって、自宅に戻ってすぐにぼげってみた。
ブツはコレ。

Gosget BU-363
GPS chip : SiRF StartIII
USB Serial : pl2303 / 4800bps


スペック的には前のGR-300と変わらないので、そのままM001につないで認識OK、運用OK。
テスト用の安パイレシーバーは確保(・∀・)

で、もひとつ。

SKYLAB SKM50
GPS chip : MTK3327
USB Serial : cp2102 / 9600bps


コレ、ショップの説明では pl2303仕様だったのに、購入したのは違うチップ cp2102 が使われているものだった(-_-メ
M001ではドライバ入ってないので認識しない・・・・
ショップに捻じ込もうか、、、と、一瞬、モンスな考えもよぎった。
説明と違うのは明らかにショップのミスなんだから捻じ込むのは簡単だ。

が、まぁまて、もう少し冷静に考えろオレ。
前から少し気になってたことを試すチャンスかもしれない。。。
コレは神が与えてくれた試練でもあり、チャンスなんだ!
と、わけの分からない妄想にとりつかれること5分。

チーン(・∀・)!
無いなら作れ!やったるで!

と、作業を始めたのが一昨日の晩のことだった(笑)

で、結局どうしたかというと、

有志が作業している WM8505用のカーネルソースを頂いてきて、必要なモジュールだけを捏造ビルドしてぶち込んだ。

うん。。。

動くね!(・∀・)

ビルド環境なんかは気が向いたら書く。
そういや、Androidのビルド環境も書いてないね(笑)


さて、実際に出来上がった cp2101.ko を実機にコピーして手動で insmod してやると、
USB Serial support registered for cp2101
usbcore: registered new interface driver cp2101
cp2101: v0.07:Silicon Labs CP2101/CP2102 RS232 serial adaptor driver
こんな具合にドライバが組み込まれる。

んでもって、USBにデバイスを接続すると、
usb 2-2: new full speed USB device using uhci_hcd and address 2
usb 2-2: configuration #1 chosen from 1 choice
cp2101 2-2:1.0: cp2101 converter detected
usb 2-2: reset full speed USB device using uhci_hcd and address 2
usb 2-2: cp2101 converter now attached to ttyUSB0
こんな感じで、シリアルポートとして認識され、/dev/ttyUSB0 が割り当てられているのがわかる。

これで、SKM50も使用できるようになったw

いや、USB シリアルコンバータチップ CP210x に対応できたってのが正解か。

2010年8月12日木曜日

m001etc-ビーサン

●はじめに

Beta 3版。
主にGPS以外のその他不具合の修正を行いました。
GPS処理に部分については変更無しです。
GPSレシーバーが壊れたので、GPS部分の動作確認は取っていません。

M003なんちゃって対応版も同時に公開します。
ダウンロードはいつものように、右のサイドバーからどうぞ。


●B2からの変更点
  • スリープ(バックライト消灯)時の状態遷移の不具合修正。
  • デバッグログ出力の整理。
  • Setting.apkをオリジナルに戻した。

●解説
スリープ時の状態遷移について。
M001系のAndroidはハードウェア上、完全なるスリープ状態にはならず、単なる画面の消灯しか行っていません。
したがって、Android標準のスリープ遷移を実行しようとすると、今回のような状態復帰などの不具合が発生するものと考えられます。

Setting.apkをオリジナルに戻すことについて。
「設定」などのシステムアプリはハードウェア依存の項目が含まれていますが、自家ビルドしたものでは、依存部分のソースコードが含まれないためそういった設定項目が反映されません。
M001では、タッチパネルキャリブレーションとGセンサー設定が上げられます。
しかし、オリジナルの「設定」では、位置情報やGPSに関する設定がすべて殺されてしまっていて設定できません。
そこで、オリジナルの設定機能を残したままGPSを使用できるように、GPSについてはデフォルトでON固定になるようにしました。
実際、GPSレシーバーの運用を考えると、現状ではホットプラグに対応する事が難しいため、その場でON/OFFする必要がありません。
GPSレシーバーが接続されていないときはレシーバーとの通信エラーになり、LocationProviderがその状態をアプリ側へ返すため、特に問題がないと考えます。
よって、Setting.apkについてはオリジナルに戻すことにしました。
GPSは設定しなくても、内部的には機能が有効化されています。


●thumbserverの処理抑制

バックグラウンドで動作する、メディアファイル用のデータベースサーバーです。
このサーバーのメディア走査処理が非常に重くM001の動作に影響を与えています。
SDカード等に存在するすべてのメディアファイル(音楽、画像、動画)を調べ、データベースへ蓄積していきます。(~peacockディレクトリ内)
大量のJPEG画像ファイル等があると、バックグラウンドですべてを走査するので非常に重くなり、動作がもたつく事があります。
そもそも、このサーバーはPEACOCKのメディアアプリ用に作られたもので、該当するアプリを使用しない場合、まったく必要がありません。

ただし、このサーバーは画面のキャプチャ処理に関わっており、サービスを停止すると画面キャプチャが撮れなくなるという問題があります。

そこで、メディアファイルの走査のみを抑制する方法を調べたところ、下記の方法で抑制できる事がわかりました。
走査して欲しくないディレクトリ内に .nomedia ファイル(ドットnomedia)を作成する。
ファイルの中身は空でも、何か書かれていても、どちらでも構わない。
thumbserverは、上記ファイルが存在するディレクトリ以降の下位ディレクトリも含めてメディアファイルの走査を中止します。

参考までにログ出力の様子です。
D/MediaScanner(  329): found .nomedia, skipping directory
D/MediaScanner(  329):  postscan directories: /sdcard

I/ActivityManager(  146): Stopping service: com.android.providers.media/.MediaScannerService
D/        (   51): found .nomedia, skipping directory
D/        (   51): start thread 1 at /sdcard/************
D/        (   51): [----I]Start file monitor loop
D/        (   51): CREATE OR OPEN DATABASE /sdcard/~peacock/peacock.db
D/        (   51): ------------version:210-------------
D/        (   51): [-------I]rootdir DELETE BY syncDB()
D/        (   51): ------------version:210-------------
例えば、SDカードのルートディレクトリに .nomedia ファイルを置くと、そのSDカードに対してはメディア走査を一切行いません。


以上。


この夏の必須アイテム(?)ビーサン。

スリープ復帰については確信を持った処理とは言い難いんだけど、ログのトレース上はタブン問題ないと思う。
けど、何かあったらコッソリ教えてくだされ( ̄∇ ̄)

不要アプリは削ったし、swapも使えるし、thumbserverは抑制できるし。
最初に比べればかなり軽くなったなぁ。
おかげで、Androidのノウハウも色々分かってきて面白い。
他のタブレットやら、Froyoとかでも応用できれば面白いだろうなぁ~。

ちなみに、
明日からしばし休みに入るのだ(`・ω・´)
しばらく、ほげるのもお休み。。。。

とかいいながら、出先にノートPC持って行ってほげってそうww

2010年8月11日水曜日

何というオチ

私は関西人である。
いきなり、なんだ?と言われそうだが。

関西人は、話の流れの中である種の「オチ」を本能的に期待する人種であることは間違いない。
「オチ」と言うと、お笑いを想像しがちである。
ストーリーに沿って最後はプッ!と笑える落しどころ。
そんなイメージを持つだろうが、それだけではない。
たとえ、悲惨な話であっても、その話の核心である「オチ」を期待する。

「実は!こうだったのです!!」「えぇ~!!なんだってぇ!!」

そんな感じだ。
そういった、ある種の予想外の展開であるとか、ネタの広がりであるとか、「オチ」に向かって行く話ほど好まれるのである。


で、


話はM001くんに戻るのだが。

スリープ復帰の不具合を追っかけていて、AndroidってスマフォOSだけあって電源管理の処理もきちんと入ってるんだぁ~、、、と、コードを眺めていた。
そもそも、電源管理の低レベル処理はハードウェアに依存するので、デバッグしながらあまり気にしてなかった。
と言うのも、どうせM001用のソースは無いしどこかの謎なドライバが勝手に処理してくれて、Android側とのステータスI/Fもコントロールしてくれてるだろうと考えていた。
オイラとしてはI/Fを基点に処理を追っかければ済むだろうと思ってわけだ。


で、、


気が付いた。


M001って、


細かい電源管理なんて考慮してないだろ!!
ヽ(`Д´)ノウワァン


やられた。。。。

そもそも、電源管理なんてきっちりしてないところに、スマフォ仕様の正常な電源管理の処理をぶち込んで正常に動くわけが無い!(ややこしい

ようするに、バッテリー充電のステータスは取れる(一部変だけど)けど、アイドリングステータスやら、オフスクリーンやらのときの細かい電源処理(具体的にはデバイスを一時的に切り離したりスリープ状態にしたり)は全くしてない。

必死で正常なスリープ処理を追っかけてたオレ様の時間を返せ馬鹿。


実際に、正常な処理が「走らないように」libhardware_legacy 内の powerコントロールからのイベント処理を殺してやると、


キレーに動きました♪(タブンw)


ばかちーん(つД`)

またひとつ、中華タブレットの恐ろしい仕様を見た気がする
( ̄ー ̄;

でも、なんとかビーサンの目処が付いたな。
GPSが無いけどwww
こりゃお盆明けだな。

GPS死亡ちーん

先ほど、亡くなられました (-m-)

よりによって、こんなときに。


Winなマシンにつないでもうんともすんとも。

ばかちーんヽ(`Д´)ノウワァン

とりあえず、代替品を調達せねば(つД`)

2010年8月10日火曜日

スリープぅ他

m001etc-ROMはスリープが変、(´・ω・`)なのを、相変わらず調査中。

原因を絞り込んでいる過程で、オリジナルと色々置き換えてたライブラリとかシステムapkとかを戻したりしてたら環境がワっケワっカラン♪状態になってしまい、再度やり直し。
結局、Setting.apkが原因ではなく、改造 libhardware_legacy.so が悪者である事がやっと分かった。

って、、、、
それでもまだどこが悪いのかは分からん。
そもそも、正しいスリープ動作がどうなってるのかが分かってないから(笑)

でも、GPS周りの処理は分からないなりに組めた気がするので、スリープ動作も分からないなりに何とかなりそうな気がする。
いや、気がするだけで、根拠は無い!(キッパリ

libhardware_legacy.so に組み込まれているサービスとしては、
GPS, wifi, flashlight, mount, vibrator, uevent, power
この中で怪しげなのは、wifi と power かな。
uevent なんかも臭うけど、処理の中身はほとんど何もないのでシロっぽい。
power は電源管理関係の処理が入ってるのでぁゃιぃ。
とりあえず、こいつらをしらみつぶしにチェックだ!
おそらく、EKENが手を入れた箇所がどこかにあるにちまいない。

でもなぁ、オリジナルでスリープ遷移のlogcat見てても情報が少なすぎるんだよなぁ。
もうちょっと詳しくログが取れれば原因も分かるのに(つД`)


ところで、ウザいthumbserverの件。
メディアファイルの走査を抑制する方法がなんとなく分かった。
でもちょっと手間。
強制的に抑制できないかさらに調べる(`・ω・´)


さらにところで、、、
SlateDroidのフォーラムで、M001開発版ファーム(?)らしき、ver1.9.0ファームが出回っている話題で盛り上がっている。
私は試してないのでなんとも言えないんだけど、読んでる感じでは完全にカスタマイズする前のフレームワークなどを使ってるような。
これが本当に開発版なら、次のファームの準備もあるってことなのかな?
てっきり、1.7.4で打ち止めだろう?と期待してなかった(笑)
でも、本物かどうかも分からないよなぁ。

それよりもむしろ、ソースコードまだぁ~(チンチン略

2010年8月9日月曜日

Ecotox 1.3.1他

Eco氏もがんがっているが、ややペースが落ちた。

っつーか、フォーラム見てても反響が多すぎてレスも大変だぁなぁ~と。
オイラは他人事だからいいんだけど、何度も同じ質問するやつは自重しろ、と思う。
(´・ω・`)しょぼーんだよ。

で、Diffった(笑)

Eco氏も今回からベースを 1.7.4に移した。ほぼ100%に近い。
ただし、一部のスクリプトは何故か1.7.2のまま。
でも、特に影響ないので問題無しだろう。
中華アプリもごっそり減ってる。

見た感じ、その他は特筆する事がない。( ・ω・)

そうそう、
telnetが入って有効化されてる模様。
スクリプト見た感じでは、リモートからtelnet loginできるっぽい?

でも、、、、特にナニができるわけでもないしなぁ・・・・
デバッグするならadbでも同じだし。
むしろ、ネットにつながった端末のtelnetを開けっ放しはどうかなぁ~、と、思う。
(´・ω・`)ま、危険性を理解してればいいんだけど。

と言うわけで、今回もパスした。
ていうか、m001etc-ROMでインスコする余裕などない(笑)

ところで、m001etc-ROM。
GPSのコアな処理は問題なさそうなので、ひとまず置いといて、問題点と全体的なパッケージのまとめを考え中。

問題点をつぶしてて気が付いたんだけど、
今、入ってるSetting.apkは、GPSやBluetoothが設定できる反面、キャリブレーションとGセンサーの設定ができない。
で、なぜか、Gセンサー設定の有無がスリープ復帰の動作不具合に絡んでいるっぽい。
なんで、Settingが(・ω・?
詳細がいまひとつ分からないんだけど、スリープ復帰のデバッグログを見てると、やたらSensor系のログが絡んでくるのだ。
で、Setting.apkを1.7.4オリジナルのに戻すと不具合解消( ゜Д゜)
SensorもWMオリジナルのコードで書かれてるっぽい。

やっぱさぁ、
wm系のソースコードが欲しい(´・ω・`)
そっちの処理でどうやってるのか見ないと、さっぱりわからん。

とりあえず、オリジナルを踏襲しながらGPSが使えるようにやってみるか( ・ω・)

2010年8月5日木曜日

m001etc-B2

以下、ドキュメント的な文章(`・ω・´)

●はじめに

Beta 2版です。
基本的な仕様はB1と変わりませんが、設定ファイルなどを外部に出して個別設定ができるようにしました。
あと、個人的にswap関係の設定も追加しました(^_^;

ダウンロードは右サイドバーからどうぞ。



●B1からの変更点
  • gps_freerunner レシーバーコマンドメッセージをバイナリメッセージに対応。
  • GPSレシーバーチップの設定ファイルを追加。
  • u-bloxのGPSチップに対応したつもり。
  • GPS初期化の設定ファイルを追加。
  • swap初期化の設定ファイルを追加。(オプション)
  • 各個別指定ファイルのupdate.sh処理追加。
  • scriptcmdを手直し。
  • google mapを一般アプリに変更(削除可)

●インストール構成ファイル

B2から、GPSなどの個別設定に対応できるように、インストール時に構成ファイルを使用するようにしました。
各自の環境に合わせた構成内容を記述することにより、インストール処理時に自動的に本体に反映するようになります。
構成ファイルはzip解凍後にできる次の3つです。
script\usr_etc\gpsdevice.conf
script\usr_etc\gpsinit.sh
script\usr_etc\swapinit.sh
必要に応じて、3つのファイルをテキストエディタなどで開き、中身を編集してください。

※編集後の保存時には改行コードに注意してください(UNIX系)


●gpsdevice.conf

GPSチップごとのコマンドメッセージが書かれています。
セクション構成は次のようになっています。
  • [SiRF StarIII general]
    GPSチップ名称です。[]でくくった中の文字列をgpsinit.shにて指定します。
  • GPSCMD_INIT=
    GPSレシーバーを初期化するコマンドです。現在、未使用です。
  • GPSCMD_COLDSTART=
    GPSレシーバーをコールドスタートするコマンドです。
  • GPSCMD_WARMSTART=$PSRF104,0,0,0,0,1,1,12,2*
    GPSレシーバーをウォームスタートするコマンドです。現在、未使用です。
  • GPSCMD_HOTSTART=$PSRF104,0,0,0,0,1,1,12,1*
    GPSレシーバーをホットスタートするコマンドです。現在、未使用です。
  • GPSCMD_BAUDRATE=$PSRF100,1,%d,8,1,0*
    GPSレシーバー側のシリアル通信速度を設定するコマンドです。現在、未使用です。
  • GPSCMD_MSG_UPDATE_H=
    GPSからのメッセージ通知を頻繁に行うためのコマンドです。これによりGPSを利用するアプリケーション起動時にメッセージ頻度を上げます。目安として1秒ごとにメッセージが送られてくるように指定します。
    メッセージ毎に複数のコマンドになる場合は、'|'でセパレートしてください。
  • GPSCMD_MSG_UPDATE_L=
    GPSからのメッセージ通知をアイドリングするためのコマンドです。GPSが使用されていないアイドリング時のメッセージ頻度を下げます。目安として10秒ごとにメッセージが送られてくるように指定します。
    メッセージ毎に複数のコマンドになる場合は、'|'でセパレートしてください。
上記、コマンド指定の記述はAscii文字列になります。
バイナリコマンド送る必要がある場合は'\'に続いてバイナリコードを記述してください。

現在、対応外のGPSレシーバーを利用している場合、上記コマンドを調査し、指定された内容のメッセージを記述することで対応できるかもしれません。


●gpsinit.sh

Androidブート時に、GPSデバイスを初期化するスクリプトです。
次の行を変更可能です。
  • GPS_DEVICE_TTY=ttyUSB0
    GPSが接続されているシリアルポートのttyデバイスを指定します。
    通常、ttyUSB0になります。
  • GPS_DEVICE_SPEED=4800
    GPSが接続されているシリアルポートの通信速度(bps)です。
    GPSレシーバー毎にデフォルトの速度が決められているはずなので調べてください。
  • GPS_DEVICE_MODEL="SiRF StarIII general"
    接続されているレシーバーのGPSチップ名称です。gpsdevice.conf に記述されたセクション毎のチップ名称を記述してください。

●swapinit.sh
Androidブート時に、swapをonにするスクリプトです。
次の行を変更可能です。
  • SWAP_DEVICE=""
    swapパーティションのデバイスファイルを指定します。
    例:SWAP_DEVICE="/dev/block/mmcblk0p2"
    空文字列の場合、swap onは行いません。
  • SWAP_SWAPPINESS=30
    カーネルのswappiness値を指定します。
    特に変更の必要がなければそのままでも問題ありません。
以上。


と言うわけで、色々いじれるようにしてみた。

GPSチップの各コマンドはネットでぐぐれば色々調べられると思う。
おいらは、GPS受信機用NMEAモニタ for Windows NMEA.EXE Ver1.60 (4river氏作)のiniファイルを参考にさせてもらった。
作者殿には感謝感謝m(__)m

swap設定も追加したので手間無しで環境インストールできるようになって便利。

オイラ仕様でごまめなさい(´・ω・`)


動作報告など待ってまぁ~っす♪(はぁと


などと、かわいこぶってもしゃーない(`・ω・´)

ていうか、みんなM001に飽きたんだろうなww

2010年8月3日火曜日

m001がクソ重くなるわけ

デバッグしてると、Androidや本体の色んな挙動ログを目にする。
見に行かなくてもいいデバイスファイル読みに言ってエラーこいてたり、初期化サービスがタイムアウトしてたり。
それが正常な挙動かどうか判断できないから調べないけど、こういうのが積もり積もってm001の貧弱CPUリソースを食いつぶしてるんだなぁ~としょんぼりな気分にもなる(´・ω・`)

で、m001を使っていて、特に初期起動時やSDカードを刺したときなんかにクソ重くなることはないだろうか?
なんでこんなに重くなるのだろう?と不審に思ってたら、
流れるようなログが。

D/        (   48): *******Update file info work
D/        (   48): /sdcard/DCIM/101MSDCF/DSC00057.JPG
W/WMT_MEDIA(   48): calcFinalDestSize invalid args: dstWidth/dstHeight=(0/0)
I/WMT_MEDIA(   48): H/W jpeg decoding return 0, decode OK(1), scaling OK(1)
D/        (   48): *******Update file info work
D/        (   48): /sdcard/DCIM/101MSDCF/DSC00058.JPG
W/WMT_MEDIA(   48): calcFinalDestSize invalid args: dstWidth/dstHeight=(0/0)
I/WMT_MEDIA(   48): H/W jpeg decoding return 0, decode OK(1), scaling OK(1)
こんなのが延々流れて行った( ゜д゜)
こいつか・・・・

このログを吐いてるプロセスはコレ
   48 root     41024 S    /system/bin/thumbserver
メディアファイルのサムネイルサーバーらしい。

こいつはディレクトリを走査して、メディアファイル(画像、音楽、動画)をみつけると上記ログの処理をするようになっている。
たぶん、サムネイルの生成チェックだとおもう。

たまたま、古いデジカメで使ってたSDカードを、画像を消さずにそのまま作業用に使ってて、ログを取ってるときに気が付いた。
バックグランドの処理とはいえ、この画像が大量にあったりすると、延々、裏で走りっぱなしになるのでとても重い。

よく、マンガ読む端末として使う話を聞くけど、あれって画像ファイルを表示してるんだよね?
もし、ページ数が膨大なら、このバックグランド処理に気をつけたほうがいいかも。

とはいえ、この処理が走るのは最初の1回だけで、あとはSDカードを抜き差ししても再度走ることはないみたい。
だから、最初(初めてSD刺したときなど)は重いけど、しばらくすれば処理が終わり以降は軽くなるだろう。

もちろん、ファームを入れ替えたらやり直しだけどね( ゜Д゜)