2009/09/29

mtdblock

先日、途中で終わってしまっていた「mtdblock」について会社の同僚から情報提供がありましたので、
少し追記をしたいと思います。

mtdblockとは


細かい話は、リンク先のBLOG管理者のAEROCATS氏が情報開示をしていますが、
デバイスファイルという輩で、「mtdblock」は”ブロック・デバイス”という代物のようです。
(デバイスファイルには、ブロック・デバイスの他、キャラクタ・デバイスというものもあるようです)

ファイル情報の先頭が”b”で始まっていることで判別がつきます。
では、ちょっとlsコマンドで。

   brw------- root     root      31,   5 2009-09-28 21:35 mtdblock5
   brw------- root     root      31,   4 2009-09-28 21:35 mtdblock4
   brw------- root     root      31,   3 2009-09-28 21:35 mtdblock3
   brw------- root     root      31,   2 2009-09-28 21:35 mtdblock2
   brw------- root     root      31,   1 2009-09-28 21:35 mtdblock1
   brw------- root     root      31,   0 2009-09-28 21:35 mtdblock0

確かに”b”で始まっていますので、「mtdblock」は”ブロック・デバイス”ということになります。

ということで、先日mountしていた「mtdblock3」はブロック・デバイスということがわかりました。
では、ちょっとここで、今現在HT03Aのandroid OS内にmountされているデバイスを見てみようと思います。(一部抜粋)

         :
   tmpfs /dev tmpfs rw,mode=755 0 0
   devpts /dev/pts devpts rw,mode=600 0 0
   proc /proc proc rw 0 0
   sysfs /sys sysfs rw 0 0
   tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
   /dev/block/mtdblock3 /system yaffs2 ro 0 0
   /dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
   /dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
         :

/dev/block/mtdblock3が、/systemにmountされていますね。
mtdblock3~5がそれぞれmountされていますが、その後ろに記載されている「yaffs2」が、
気になりました。

・yaffs2(Yet Another Flash File System)
   フラッシュファイルシステムだそうです。
   他のフラッシュファイルシステムに比べて、mount時のパフォーマンスが良いそうです。

あ、冒頭からの流れに戻れない…。
これもまた、勉強しなきゃ。
いつか理解できる時が来ることを自分自身でも祈ってやみません(笑)

分からないものは分からないのでメモ

頭に残しておく為のメモ書き作業です。

HT03Aに対する「root権限奪取」、「オーバークロック」などの情報で、良く出てくる、
「/system を読み書き可能で再マウント」という一文。

   mount -o rw,remount /dev/block/mtdblock3 /system

Linuxをご存知の方は周知の事実でありますが、私は初心者ですので敢えてメモです…。

「mount」の後ろはオプションで、"rw(read & write)”で、再マウントという意味。
「/dev/block/mtdblock3 /system」で”読み書き可能で再マウント”とい事になる訳ですが、
ここが微妙にわかりません。

mountコマンドの構文はこんな感じ。

   mount [ オプション ] デバイス名 マウントポイント

オプションは上記の通りですが、後はこんなイメージでいいのでしょうか。

・デバイス名:/dev/block/mtdblock3
・マウントポイント:/system

ということは、「/dev/block/mtdblock3デバイスを、/systemuに読み書き可能状態で再マウント」
という意味になるのでしょうね。きっと。
じゃ、「/dev/block/mtdblock3」ってなんだろう。
lsコマンドで見るとこんな感じです。

   brw------- root     root      31,   3 2009-09-28 21:35 mtdblock3

mtdblockは、0~5までありました。

「mtdblock」って何?

というように、興味は尽きない訳で。
何も解決していない感じですが、近道したいけど、遠回りしながら、少しずつ進んでいくのも良いかなと思う今日この頃です。

2009/09/27

BenchMarkアプリを使ってHT03Aの性能を計測(その2)

時代の流れに沿って?HT03Aのオーバークロック(384MHz→528MHz)を実施しました。
(オーバークロック方法は巷に溢れている「setupsu」であったり、「OverclockWidget」であったり)
※Root権限取得
  setupsuは、「SU」コマンドでRootになれるようにしてくれます。
  これって、元に戻すには/system/xbin以下に設定した"SU"コマンドとかを削除すればいいのかな?
  adb shell su であっさりRootに慣れるのはちょっと怖いかもです。

さてオーバークロックしたからには、実施前、実施後で性能比較をしたいものです。
以下が、オーバークロック後のBenchMarkです。

Graphics
   Total graphics score;118.11405
   Draw opacity bitmap;59.362316;MPixels per sec
   Draw transparent bitmap;12.880503;MPixels per sec

CPU Whetstone
   Total CPU score;172.719
   MWIPS DP;12.436265;MWIPS(DP)
   MWIPS SP;13.336889;MWIPS(SP)
   MFLOPS DP;2.1065438;MFLOPS(DP)
   MFLOPS SP;3.0651696;MFLOPS(SP)
   VAX MIPS DP;8.457877;VAX MIPS(DP)
   VAX MIPS SP;8.587478;VAX MIPS(SP)

Memory
   Total memory score;123.3606
   Copy memory;112.095055;Mb/sec

Filesystem
   Total file system score;18.5795
   Creating 1000 empty files;11.04;sec
   Deleting 1000 empty files;5.034;sec
   Write 1M into file;1.1473153;M/sec
   Read 1M from file;36.231884;sM/sec;

SD card perfomance
   Creating 250 empty files;11.764;sec
   Deleting 250 empty files;8.86;sec
   Write 1M into file;20.491804;M/sec
   Read 1M from file;54.347828;sM/sec;

良し悪しがわかりませんが、実施前よりかは全体的に性能が上がっていますね。

BenchMarkアプリを使ってHT03Aの性能を計測

Android Marketより、「BENCHMARK」という名称のアプリをDL(当然無料です)。
”Run benchmark"ボタン押下で計測開始。
結果は以下の通りです。(結果データは /sdcard/softweg/*****.csvに入ります)

※参考(My HT03A)
・SD Card:KINGMAXのmicroSDHC(class6)8Gに変更。
・Over Clock:してません。(384MHz)

Graphics

   Total graphics score;92.61556
   Draw opacity bitmap;46.334843;MPixels per sec
   Draw transparent bitmap;10.312185;MPixels per sec

CPU Whetstone

   Total CPU score;128.88004
   MWIPS DP;9.1633835;MWIPS(DP)
   MWIPS SP;9.975062;MWIPS(SP)
   MFLOPS DP;1.6303071;MFLOPS(DP)
   MFLOPS SP;2.2126603;MFLOPS(SP)
   VAX MIPS DP;6.3231297;VAX MIPS(DP)
   VAX MIPS SP;6.504967;VAX MIPS(SP)

Memory

   Total memory score;123.94414
   Copy memory;112.6253;Mb/sec

Filesystem

   Total file system score;26.299753
   Creating 1000 empty files;13.423;sec
   Deleting 1000 empty files;4.577;sec
   Write 1M into file;1.3648151;M/sec
   Read 1M from file;51.54639;sM/sec;

SD card perfomance

   Creating 250 empty files;13.564;sec
   Deleting 250 empty files;10.956;sec
   Write 1M into file;18.315018;M/sec
   Read 1M from file;61.349693;sM/sec;

良し悪しがわかりません…。

2009/09/25

今更ながらのAndroid Virtual Device(AVD)コマンドメモ

順番がいつもながら、おかしいわけですが、AVDコマンドのメモです。
開発時に各種環境に応じたエミュレータを容易する訳で、その時のエミュレータ作成方法です。

> android create avd --name デバイス名 --target バージョン --sdcard SDカード容量(K/M)

・デバイス名:任意
   この名称でエミュレータを起動します。

   > emulator @デバイス名

   こんな感じ。

・バージョン:1~4(SDK1.6が出たので4までかな)
   1:Android SDK 1.1
   2:Android SDK 1.5
   3:Android SDK 1.5(Google Map)
   4:Android SDK 1.6

・SDカード容量
   単位はK(キロ) or M(メガ)を指定します。

登録済みのエミュレータをリスト表示する場合は、

   > android list avds

登録済みのエミュレータを削除する場合は、

   > android delete avd -n デバイス名

Ubuntu 9.04でandroid携帯USB接続メモ

メモしておきます。
Android Developers の「開発ガイド」から、開発:On a Device 項目を見てみる。

以下関係本文のみ抜粋です。

Developing on a Device

  Setting up a Device for Development

    3.Setup your system to detect your device.
      ※以下作業はROOT権限を必要とします。sudoなどを使用して下さい。

      If you're developing on Ubuntu Linux, you need to add a rules file:
        1.Login as root and create this file: /etc/udev/rules.d/51-android.rules.
          (/etc/udev/rules.d/以下に"51-android.rules"という名前のファイルを作成します。)
          "51-android.rules"の中身はこんな感じで記述して下さい。
            SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
            SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"

        2.Now execute:
          作成したファイルの権限変更を行います。
          全てのユーザーに対して、既存ファイルビットモードに
            ・読み取り:r
            ・実行ファイル(検索ディレクトリ):x
          を追加します。

          chmod a+rx /etc/udev/rules.d/51-android.rules

こんな感じです。
あとはターミナルからadbコマンドなんかをやってみて、うまく反応すればOKかと思います。

これで、Ubuntu上でandoridアプリが開発できる環境がだんだん揃ってきました。

2009/09/23

HT03A microSDカード取り替え

得に今のところ必要ないかとは思いましたが、現在使用している携帯(HT03A)の
SDカードを2Gから8Gに変更しました。

購入はイオンです。安いっす。

・KINGMAX
・microSDHC(Class6)
・8GB
・1,980円

Class6のカードなので、6MB/sec(48Mbps)以上の速度が保証されます。
(定められた単位の未使用領域(=汚れ率0%のAU)に定められた記録方法で書き込みを行った場合)
とりあえず、書き込みが早くなるのはうれしい限りです。
データの移行はPC上で普通にコピペしました。
得に問題なく動いています。

で、ちょっとビックリしたのが元々購入時に刺さっていたmicroSDカード。
上記同じメーカーの2GBタイプ。
しかも普通のmicroSD。
へー。

2009/09/21

android (センサー)メモ

忘れないようにメモです。(Android Reference)

Package:android.hardware
Interface:SensorEventListener、SensorListener(SDK1.5からは廃止(推奨されていない?)っぽい)
Class:Sensor、SensorEvent、SensorManager
※InterfaceはSensorEventListenerを使うということだね。

使用可能なセンサーはSenserクラス内に定義されています。

・TYPE_ORIENTATION(方位センサー)
・TYPE_ACCELEROMETER(加速度センサー)
・TYPE_TEMPERATURE(温度センサー)
・TYPE_MAGNETIC_FIELD(磁場センサー)
・TYPE_LIGHT(光センサー)
・TYPE_PROXIMITY(近接センサー)
・TYPE_GYROSCOPE(ジャイロスコープ)
・TYPE_PRESSURE圧力(センサー)

私の最近の流行は「TYPE_GYROSCOPE(ジャイロスコープ)」です。

implements SensorEventListener
onCreateメソッド
  SensorManager経由でセンサーサービスをゲット。
    getSystemService(SENSOR_SERVICE)から、センサーサービスを取得します。
  (戻り値:SensorManagerにCast)
  ※getSystemServiceはandroid.content.Contextクラス内のメソッド。
androidアプリはActivityを継承するんですが、android.content.Context派生なんですねActivityって。
API Reference辿ると面白いけど、時間かかるね・・・。

onSensorChangedメソッドの実装
  Sensorイベントから、センタータイプを判断する。

  if(event.sensor.getType() == Sensor.TYPE_GYROSCOPE) {
        ジャイロスコープとしての処理
  }

onAccuracyChangedメソッドの実装
  とりあえず使わないので未実装。


実装イメージはこんな感じだと思われます。(試してませんが)

2009/09/16

Eclipse 3.4(Ganymede) インストールメモ

とりあえず、メモっときます。

1.Android 1.5 SDK Release3をDL。(android-sdk-linux_x86-1.5_r3.zip)
→適当な場所で解凍。(Homeでいいんじゃないかな)
※この辺が微妙にわからない・・・。

2.アプリケーション-追加と削除から"Sun Java"で検索。
→Sun Java 6 Runtime 、プラグインをインストール。

3.Eclipse 3.4(Ganymede)をDL。(Eclipse IDE for Java EE Develop(Linux)

→これも適当な場所で解凍。(Homeでいいんじゃないかな)

4.android SDKへのパスを設定。
→.bashrcファイルにexport文(android SDKを解凍したフォルダ配下のtoolsまでのパス)

5.ADT(Android Development Tools)のインストール。
→Eclipseの[Help]-[SoftwareUpdate]から「Available Software」タブから「Add Site」
https://dll-ssl.google.com/android/eclipse/
→「Developer Tools」をチェックして「Install」

6.Eclipseとandroid SDKの指定

android(ふせんRoid)

自宅のUbuntuに、苦労しつつもeclipse3.4(Ganymede)をインストールしまして、
パスなんやらも、設定しましてandroid SDKとかも突っ込みまして、とりあえず開発環境が
できあがりました。
Linuxを使い慣れていない上の、各種作業はわからない事だらけですが、ゆっくり楽しみながら
進めていく事にします。

2009/09/07

Ubuntu 8.04LTS

会社のPCにVMWareをインストールして、Ubuntuを入れてみました。

・VMWarePlayer2.5.3
・Ubuntu 8.04LTS

インストールPCは、こんな感じ。
・OS:WindowsXP SP3
・CPU:Celeron 2.6GHz
・Mem:1G



仮想環境での割り当てMemoryは512Mです。
インストール後のUpdate(sudo apt-get update)は、すぐにおわりましたが、
Update後のUpgrade(sudo apt-get upgrade)は、めちゃんこ時間かかりました。

んで。
すべて完了したら「GNOMEでエラー」とか、いろいろ言われましたが、
とりあえず再起動。


おせー。

まじ、おせー。

ま、もともと遅いマシンだったので仕方ないですが、常にCPU100%って感じで。
ということで、もうちっといいPCじゃないと厳しいかな。

2009/09/04

Adobe Flash Player

Ubuntu君。
インストールは難なく終わったが、実際つかうとなると難しい。
Windows慣れの弊害だな。
今日、同僚から仕入れたネタを試すべくそのサイトへ行くが、FlashPlayerの最新版が
ないと見れなかった為、インストールを試みる。
Windowsの様にはうまくいかんね。
とりあえずダウンロードできるファイルが複数あるっす。
RPMやら、YUMやら、他多数。
一通りダウンロードしてみるが、導入がよくわかりません。

「アプリケーションの追加と削除」というものを見つけ ”Flash”という文字列で
検索してみると、Macromedia Flash プラグインというカテゴリを見つけたので、
チェック ボックスを入れて、「変更の適用」。
ここまでくるのに、実は1時間くらいかかっているわけで…。

まだまだわからないことばかりで。
困った、困った。

2009/09/02

Ubuntu

SUSEはよくよく考えるとEnterpise版でした。(試用期間有)
ということで、OSC2009名古屋で講義を聴いた、Ubuntuをインストールすることにしました。
さらばVista。
もう会うことはないと思うが。