News&Column

Monthly Archives: 11月 2008

技術屋から見たHPのキティーホーク

日本一の駄目経営者から世界一の駄目経営者になるべく、最近、ビジネススクールなるものに通っています。
まるで町の洋食屋のオヤジが、大手外食フランチャイズチェーン幹部と一緒に勉強しているような雰囲気です。(^^;
でも、大手の幹部がどうやって物事を考えているのか、もの凄く勉強になり、行ってよかったと思う次第です。

その中で、ハーバード・ビジネススクールのクリステンセンの教材を使った講義がありました。
内容としては、HPが1990年代前半に世界で始めて開発した1.3inchのハードディスク「キティーホーク」が、技術屋主導でろくに市場調査もせず突っ走った結果、ビジネス的に大失敗に終わるという、実に耳が痛~い(^^;)ストーリーでした。

講義ではいかにこのプロジェクトが駄目だったかを袋叩きにしていたのですが、私は、技術屋として、このプロジェクトがうらやましく思い、こんな熱いプロジェクトをやってみたいと思った次第です。(大失敗はまずいですが・・・)

教材の最後にこんな一節がありました。
「失敗したプロジェクトで、これほど多くのチーム・メンバーがもう一度はじめからやり直そうという意欲を燃やすケースは見た事がない。プロジェクトは終わっていずれかの折に、ほとんどのメンバーが私のところに来てはこういった『リック、あんな楽しいことはなかったね』と。」
たぶん、受講生の中で、ここで鳥肌が立ち、目頭が熱くなったのは、私だけかと。。。

お金だけ見ると確かに大失敗だったと思うのですが、きっとこのプロジェクトを通じて、人も会社もお金では計れない大切な財産をGETとした事と思います。今のHPには、このときのメンバーが残っているかどうかは知りませんが、「今のHPをささえているのは当時のメンバーだった」なんて後日談があったら素敵かなぁ~と思う次第です。

G1出荷台数20万分の2台が仙台で出会う

携帯の勉強会、いきべんの仙台編に行ってきました。
いきべんに出席するようになった、そもそものきっかけは、
お客さんに「会津に高松さんと同じ匂いのする面白い人がいるので、いっしょに仙台編に行きませんか?」と言われたのが始まりでした。

行ってみると、ほかのパネラーとは一線を画すビジネス展開をしている、ジークルーの佐々木さんがいらっしゃいました。
「たしかに、この人、面白そう!(*^^*)」
と思い、勉強会終了後、名刺交換に行くと、なんと手元にG1が!
思わず、自分もG1をポケットから出してしまいました。(^^
なんと、G1の推定販売台数20万台分の2台が仙台でランデブーです。
たぶんアメリカで発売から2週間。日本で普通に使える状態のG1は、まだ数える程しかないはずです。
さらに色々と話を伺っていると、なんと、佐々木さん、うちのblogを見て、アクティベートをされたと聞いて、ビックリ!
ネットって、こういう事があるから面白いですよね~♪
実はこの仙台編の前に、日中、仙台の会社の社長さんとお会いしたのですが、スラッシュドットで紹介された弊社のR2-D2を御存知で驚いた次第です。

この他に、仙台編では、KLabの真田さんのダメ出しはとても面白かったです。
私が考えていたことをズバズバ言うので、つい拍手をしてしまったのですが、拍手は自分ひとりでした。(^^;

佐々木さんも同じ意見だったのですが、やはりiPhoneやWindows7は、低所得圏ではNGだと思います。
アンドロイドは、間違いなく、来年、中国をはじめとした低所得圏が起爆剤となり世界を席巻する風を感じました。
その規模は1億台とかじゃなく、数10億に達すると思っています。

確かに半年間の無料文化(Googleは確信犯?)を作ってしまうので、App Storeのような旨みがなくなってしまう可能性があるAndroid Market。
これまでのPC向けシェアウエアの歴史やLinux向け有償ソフトビジネスの歴史を思うと、「Androidに有料アプリのゴールドは落ちていない」と思っていましたが、佐々木さんのお話を伺っているうちに、別にそれでも踊ってみたくなってきました。

やっぱり、お祭りは見るよりも踊った方が楽しいですよね♪

iPhoneの数百万台じゃなく、下手すると数10億の端末にたった25$で簡単にリーチできる世界は、これまで誰も体験をしたことがない何かがおこるかも・・・と思うとワクワクしてきます。

今回の仙台で、頭の中のいろんな考えが、また一つ、まとまったような気がします。

ガラパゴス携帯の開国とサーバ関連ビジネスの崩壊は、着実に訪れようとしています。

その時、うちの会社は。。。

T-Mobile G1(android携帯)のroot権限取得手順

また、会社のblogにこのような事を書くとお叱りを頂きそうなのですが、
T-Mobile G1 のroot権限の取得手順を調べていたところ面白い方法があることを知りました
試したところ見事、PCから携帯にroot権限でログインできました。

■用意するもの

・無線LAN環境(G1とPCが一緒に接続できる環境。出来ればDHCPではなく固定IP設定。)
・android market で pTerminal をインストール(pTerminalはroot権限ではなくユーザ権限になります。今回の目的はroot権限のGETです)

■手順

1. まずG1を落とします
2. 普通にG1の電源を入れます
3. ここからがミソで、起動したら出来るだけ早く pTerminal を起動します
4. すぐさま cd /system/bin に移動し telnetd を起動します
5. そして、すぐさま PC から G1 のIPにtelnet します

ちょっと熟練を要すのですが、これだけで id も pass も無しで、root権限でログインが出来てしまいました。(^^
iPhoneと違ってsshじゃないところがちょっと駄目な感じがしますが、ちょっと面白い手順です。
そのうちOS updateで、出来なくなってしまいそうな感もありますが、11/7現在では問題なく入れるようです。

■T-Mobile G1 のOS環境

root権限でちょっと漁って見た感じを貼り付けます

▼CPU(/proc/cpuinfo)

Processor     : ARMv6-compatible processor rev 2 (v6l)
BogoMIPS        : 383.38
Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 6TEJ
CPU variant     : 0x1
CPU part        : 0xb36
CPU revision    : 2
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 32768
I assoc         : 4
I line length   : 32
I sets          : 256
D size          : 32768
D assoc         : 4
D line length   : 32
D sets          : 256

Hardware        : trout
Revision        : 0080
Serial          : 0000000000000000

▼Memory(/proc/meminfo)

MemTotal:        99128 kB
MemFree:          1736 kB
Buffers:           232 kB
Cached:          41688 kB
SwapCached:          0 kB
Active:          72184 kB
Inactive:        12884 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:               0 kB
Writeback:           0 kB
AnonPages:       43172 kB
Mapped:          23556 kB
Slab:             4424 kB
SReclaimable:      976 kB
SUnreclaim:       3448 kB
PageTables:       3936 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:     49564 kB
Committed_AS:  1289100 kB
VmallocTotal:   155648 kB
VmallocUsed:     58492 kB
VmallocChunk:    70652 kB

▼ディスク構造(df)

/dev: 49564K total, 0K used, 49564K available (block size 4096)
/sqlite_stmt_journals: 4096K total, 0K used, 4096K available (block size 4096)
/system: 69120K total, 64944K used, 4176K available (block size 4096)
/data: 76544K total, 19992K used, 56552K available (block size 4096)
/cache: 69120K total, 1160K used, 67960K available (block size 4096)
/sdcard: 991488K total, 69056K used, 922432K available (block size 16384)

▼プロセス(ps)

USER     PID   PPID  VSIZE RSS   WCHAN    PC         NAME
root     1     0     264   176   c00a5cd0 0000c36c S /init
root     2     0     0     0     c005bd28 00000000 S kthreadd
root     3     2     0     0     c004c12c 00000000 S ksoftirqd/0
root     4     2     0     0     c006e978 00000000 S watchdog/0
root     5     2     0     0     c0058b40 00000000 S events/0
root     6     2     0     0     c0058b40 00000000 S khelper
root     7     2     0     0     c01824d0 00000000 S suspend/0
root     8     2     0     0     c0058b40 00000000 S kblockd/0
root     9     2     0     0     c0058b40 00000000 S kmmcd
root     10    2     0     0     c0058b40 00000000 S btaddconn
root     11    2     0     0     c0058b40 00000000 S btdelconn
root     12    2     0     0     c0058b40 00000000 S qmi
root     13    2     0     0     c003263c 00000000 D rpcrouter
root     14    2     0     0     c0058b40 00000000 S detection/0
root     15    2     0     0     c0032fb4 00000000 S krpcserversd
root     16    2     0     0     c007a964 00000000 S pdflush
root     17    2     0     0     c007a964 00000000 S pdflush
root     18    2     0     0     c007e8b4 00000000 S kswapd0
root     19    2     0     0     c0058b40 00000000 S aio/0
root     20    2     0     0     c0032fb4 00000000 S kadspd
root     21    2     0     0     c0058b40 00000000 S panel_on/0
root     22    2     0     0     c0151ff8 00000000 S mtdblockd
root     23    2     0     0     c0157d84 00000000 S USB mass_storag
root     24    2     0     0     c0058b40 00000000 S synaptics_wq
root     25    2     0     0     c020dfc0 00000000 S krfcommd
root     26    1     724   316   c0049a2c afe0c4cc S /system/bin/sh
system   27    1     796   248   c0189f10 afe0b74c S /system/bin/servicemanager
root     28    1     1828  332   ffffffff afe0b50c S /system/bin/mountd
root     29    1     652   248   c0196e68 afe0c0bc S /system/bin/debuggerd
radio    30    1     7720  940   ffffffff afe0bdbc S /system/bin/rild
root     31    2     0     0     c01751d0 00000000 S mmcqd
root     32    1     66044 19412 c00a62ec afe0b874 S zygote
media    33    1     19344 3420  ffffffff afe0b74c S /system/bin/mediaserver
bluetooth 35    1     1168  732   c00a5cd0 afe0c69c S /system/bin/dbus-daemon
root     37    1     788   288   c01fb090 afe0b50c S /system/bin/installd
compass  39    1     1304  572   c0169014 afe0b74c S /system/bin/akmd
shell    40    1     3320  140   ffffffff 0000e664 S /sbin/adbd
system   53    32    187260 23936 ffffffff afe0b74c S system_server
bluetooth 77    1     728   308   c00a5cd0 afe0c69c S /system/bin/hciattach
root     80    2     0     0     c016da84 00000000 D ksdiorqd
root     81    2     0     0     c0058b40 00000000 S tiwlan_wifi_wq
wifi     84    1     2960  1096  ffffffff afe0b874 S /system/bin/wpa_supplicant
bluetooth 95    1     1448  828   c00a5cd0 afe0c69c S /system/bin/hcid
root     100   1     644   228   c009ef28 afe0b50c S /system/bin/logwrapper
dhcp     101   100   692   360   c00a5cd0 afe0c69c S dhcpcd
radio    109   32    97328 16904 ffffffff afe0c824 S com.android.phone
app_11   114   32    109216 17856 ffffffff afe0c824 S android.process.acore
app_14   140   32    87140 12432 ffffffff afe0c824 S android.process.media
app_11   152   32    90916 12160 ffffffff afe0c824 S com.tmobile.myfaves
app_13   162   32    87052 12244 ffffffff afe0c824 S com.android.mms
app_1    164   32    105728 16984 ffffffff afe0c824 S com.google.process.gapps
root     195   2     0     0     c0032dc8 00000000 D audmgr_rpc
app_26   197   32    118832 13112 ffffffff afe0c824 S src.com.poidio.terminal
app_3    204   32    85768 10108 ffffffff afe0c824 S com.android.voicedialer
app_25   213   32    89756 12216 ffffffff afe0c824 S android.process.im
app_19   225   32    90024 12884 ffffffff afe0c824 S com.android.calendar
app_23   237   32    86008 11220 ffffffff afe0c824 S com.android.alarmclock
app_17   251   32    88500 12232 ffffffff afe0c824 S com.google.android.gm
root     266   26    664   276   c00a5cd0 afe0c69c S telnetd
root     269   266   724   324   c0127394 afe0b50c S /system/bin/sh
root     278   266   724   324   c0049a2c afe0c4cc S /system/bin/sh
root     291   278   868   328   00000000 afe0b50c R ps

▼bootlog(dmesg)

<5>[    0.000000] Linux version 2.6.25-01843-gfea26b0 (android-build@apa27.mtv.corp.google.com) (gcc version 4.2.1) #6 PREEMPT Mon Oct 6 14:13:36 PDT 2008
<4>[    0.000000] CPU: ARMv6-compatible processor [4117b362] revision 2 (ARMv6TEJ), cr=00c5387f
<4>[    0.000000] Machine: trout
<6>[    0.000000] AKM Data size = 1018 , 0x89768976, size = 4064
<4>[    0.000000] Memory policy: ECC disabled, Data cache writeback
<7>[    0.000000] On node 0 totalpages: 25856
<7>[    0.000000]   DMA zone: 202 pages used for memmap
<7>[    0.000000]   DMA zone: 0 pages reserved
<7>[    0.000000]   DMA zone: 25654 pages, LIFO batch:7
<7>[    0.000000]   Normal zone: 0 pages used for memmap
<7>[    0.000000]   Movable zone: 0 pages used for memmap
<4>[    0.000000] trout_init_map_io()
<6>[    0.000000] clock_init()
<6>[    0.000000] ACPU running at 384000 KHz
<4>[    0.000000] WARNING - Bad VDD (0 != 3) for this freq
<4>[    0.000000] CPU0: D VIPT write-back cache
<4>[    0.000000] CPU0: I cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
<4>[    0.000000] CPU0: D cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
<4>[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 25654
<5>[    0.000000] Kernel command line: board_trout.disable_uart3=0 board_trout.usb_h2w_sw=0 board_trout.disable_sdcard=0 board_trout.smisize=64  androidboot.baseband=1.22.12.29 androidboot.bootloader=0.95.0000 androidboot.carrier=TMUS board_trout.keycaps=qwerty androidboot.mode=normal androidboot.serialno=HT839GZ06734 no_console_suspend=1
<3>[    0.000000] Unknown boot option `board_trout.smisize=64': ignoring
<3>[    0.000000] Unknown boot option `androidboot.baseband=1.22.12.29': ignoring
<3>[    0.000000] Unknown boot option `androidboot.bootloader=0.95.0000': ignoring
<3>[    0.000000] Unknown boot option `androidboot.carrier=TMUS': ignoring
<3>[    0.000000] Unknown boot option `androidboot.mode=normal': ignoring
<4>[    0.000000] trout_init_irq()
<4>[    0.000000] PID hash table entries: 512 (order: 9, 2048 bytes)
<4>[    0.000000] Console: colour dummy device 80x30
<6>[    0.000000] console [tty0] enabled
<6>[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
<6>[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
<6>[    0.010000] Memory: 101MB = 101MB total
<5>[    0.010000] Memory: 98744KB available (2552K code, 759K data, 100K init)
<7>[    0.010000] Calibrating delay loop... 383.38 BogoMIPS (lpj=1916928)
<4>[    0.230000] Mount-cache hash table entries: 512
<6>[    0.230000] CPU: Testing write buffer coherency: ok
<6>[    0.230000] net_namespace: 440 bytes
<6>[    0.230000] NET: Registered protocol family 16
<4>[    0.230000] trout_init() revision=128
<4>[    0.240000] trout_init: cpld_usb_hw2_sw = 0
<3>[    0.240000] trout_gpio_irq_handler: got masked interrupt: 0:80
<6>[    0.340000] msm_i2c_probe
<6>[    0.340000] msm_i2c_probe: clk_ctl 35d, 100000 Hz
<6>[    0.380000] Bluetooth: Core ver 2.11
<6>[    0.380000] NET: Registered protocol family 31
<6>[    0.380000] Bluetooth: HCI device and connection manager initialized
<6>[    0.380000] Bluetooth: HCI socket layer initialized
<6>[    0.380000] NET: Registered protocol family 2
<7>[    0.390091] Switched to high resolution mode on CPU 0
<6>[    0.470701] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
<6>[    0.472868] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
<6>[    0.473326] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
<6>[    0.473540] TCP: Hash tables configured (established 4096 bind 4096)
<6>[    0.473601] TCP reno registered
<6>[    0.501525] Unpacking initramfs... done
<6>[    0.556042] Freeing initrd memory: 138K
<6>[    0.558697] Registered led device: lcd-backlight
<6>[    0.559429] smd_init()
<6>[    0.559490] smd_core_init()
<6>[    0.559735] smd_alloc_channel() 'SMD_RPCCALL' cid=2, shared=e010d9a0
<6>[    0.560274] smd_alloc_channel() 'SMD_DATA5' cid=11, shared=e0119a18
<6>[    0.560610] smd_alloc_channel() 'SMD_DATA6' cid=12, shared=e011da40
<6>[    0.560915] smd_alloc_channel() 'SMD_DATA7' cid=13, shared=e0121a68
<6>[    0.561190] smd_alloc_channel() 'SMD_DATA11' cid=17, shared=e01119c8
<6>[    0.561495] smd_alloc_channel() 'SMD_CS_A2M' cid=33, shared=e01159f0
<6>[    0.561800] smd_alloc_channel() 'SMD_DATA5_CNTL' cid=38, shared=e0125a90
<6>[    0.562136] smd_alloc_channel() 'SMD_DATA6_CNTL' cid=39, shared=e0129ab8
<6>[    0.562410] smd_alloc_channel() 'SMD_DATA7_CNTL' cid=40, shared=e012dae0
<6>[    0.562746] smd_core_init() done
<4>[    0.565218] SMD: ch 2 OPENING -> OPENED
<6>[    0.566683] hw3d: 0 init
<6>[    0.567202] msm_perf_init():
<6>[    0.568880] H2W: Registering H2W (headset) driver
<6>[    0.571525] input: h2w headset as /class/input/input0
<6>[    0.583662] RPC_TIME_TOD_SET_APPS_BASES:
<4>[    0.583692]       tick = 334840
<4>[    0.583692]       stamp = 452987078
<6>[    0.588361] ashmem: initialized
<4>[    0.590091] yaffs Oct  6 2008 14:13:20 Installing.
<6>[    0.590305] io scheduler noop registered
<6>[    0.590396] io scheduler anticipatory registered (default)
<6>[    0.591068] mddi_pmdh: init() base=0xe000b000 irq=16
<6>[    0.596835] get_smem_clock: state 10429 clock 0
<6>[    0.630274] mddi cmd send rtd: int 3a000, stat 8063, rtd val d
<6>[    0.650762] mddi_pmdh: publish: mddi_c_d263_0000
<6>[    0.652594] vsync on gpio 97 now 0
<6>[    0.652716] mddi_pmdh: mddi_add_panel(c02eef78, c02b3a50)
<6>[    0.652777] mddi_pmdh: publish: mddi_panel
<6>[    0.653265] msmfb_probe() installing 320 x 480 panel
<6>[    0.691037] msm_serial: detected port #0
<6>[    0.691342] msm_serial.0: ttyMSM0 at MMIO 0xa9a00000 (irq = 9) is a MSM
<6>[    0.692258] msm_serial: driver initialized
<6>[    0.694272] loop: module loaded
<6>[    0.694425] PPP generic driver version 2.4.2
<6>[    0.694730] PPP Deflate Compression module registered
<6>[    0.694791] PPP BSD Compression module registered
<4>[    0.704699] allocated dma buffer at ffc01000, dma_addr 16130000
<4>[    0.704943] read CFG0 = aad400c0, CFG1 = 4745c
<4>[    0.705035] CFG0 = e8d408c0, CFG1 = 4745c
<6>[    0.705096] CFG0: cw/page=3 ud_sz=516 ecc_sz=10 spare_sz=1 num_addr_cycles=5
<4>[    0.705218] NAND_READ_ID = 1500aaec
<4>[    0.705371] status: c03120
<4>[    0.705432] nandid: 1500aaec maker ec device aa
<4>[    0.705523] CFG0: cw/page=3 ud_sz=512 ecc_sz=10 spare_sz=5
<4>[    0.705615] DEV_CMD1: f00f3000
<6>[    0.705676] NAND_EBI2_ECC_BUF_CFG: 1ff
<4>[    0.705737] flash_id: 1500aaec size 10000000
<5>[    0.705798] Creating 6 MTD partitions on "msm_nand":
<5>[    0.705889] 0x024c0000-0x02500000 : "misc"
<5>[    0.706866] 0x026c0000-0x02bc0000 : "recovery"
<5>[    0.707720] 0x02bc0000-0x02e40000 : "boot"
<5>[    0.708544] 0x02e40000-0x071c0000 : "system"
<5>[    0.709429] 0x071c0000-0x0b540000 : "cache"
<5>[    0.710579] 0x0b540000-0x10000000 : "userdata"
<6>[    0.712136] usb_probe() io=c6806000, irq=47, dma=ffc02000(1613a000)
<6>[    0.713021] usb_function_register() 'adb'
<6>[    0.713448] usb_function_register() 'usb_mass_storage'
<6>[    0.713540] msm_hsusb: functions bound. starting.
<6>[    0.713601] usb_bind_func() 'usb_mass_storage'
<6>[    0.714119] usb_mass_storage usb_mass_storage: Number of LUNs=1
<6>[    0.714241] usb_bind_func() 'adb'
<6>[    0.714303] adb_bind() c612c874, c612ca34
<6>[    0.714455] adb_bind() allocated 4 rx and 4 tx requests
<6>[    0.715249] usb_function_register() 'diag'
<6>[    0.715798] mice: PS/2 mouse device common for all mice
<6>[    0.715981] hsusb: IDLE -> ONLINE
<6>[    0.716134] hsusb: reset controller
<4>[    0.760091] ulpi: write 0x40 to 0x31
<4>[    0.760213] ulpi: write 0x1d to 0x0d
<4>[    0.760274] ulpi: write 0x1d to 0x10
<6>[    0.760305] ept #0 out max:64 head:ffc02000 bit:0
<6>[    0.760396] ept #1 out max:512 head:ffc02080 bit:1
<6>[    0.760457] ept #2 out max:512 head:ffc02100 bit:2
<6>[    0.760518] ept #0 in max:64 head:ffc02040 bit:16
<6>[    0.760579] ept #1 in max:512 head:ffc020c0 bit:17
<6>[    0.760640] ept #2 in max:512 head:ffc02140 bit:18
<6>[    0.760824] usb: notify offline
<6>[    0.760915] hsusb: ONLINE -> OFFLINE
<3>[    0.770640] msm_i2c msm_i2c.0: Error during data xfer (-5)
<6>[    0.781495] synaptics_ts_probe: Product Major Version 1
<6>[    0.782929] synaptics_ts_probe: Product Minor Version c
<6>[    0.784303] synaptics_ts_probe: product property 2
<6>[    0.785706] synaptics_ts_probe: device control 81
<6>[    0.787080] synaptics_ts_probe: interrupt enable 3
<6>[    0.790000] synaptics_ts_probe: 0xe0: 1 1 1 2 1 c 0 0
<6>[    0.790000] synaptics_ts_probe: max_x 3480, max_y 5368
<6>[    0.790000] synaptics_ts_probe: inactive_x -80 -80, inactive_y -32 -32
<6>[    0.790000] synaptics_ts_probe: snap_x 240-248 240-248, snap_y 80-88 80-88
<6>[    0.790000] input: synaptics-rmi-touchscreen as /class/input/input1
<6>[    0.840854] synaptics_ts_probe: Start touchscreen synaptics-rmi-touchscreen in interrupt mode
<6>[    0.841251] GPIO Event Driver
<6>[    0.841922] GPIO Keypad Driver: Start keypad matrix for trout-keypad-v3 in interrupt mode
<4>[    0.842319] No IRQF_TRIGGER set_type function for IRQ 191 (troutgpio)
<4>[    0.842472] No IRQF_TRIGGER set_type function for IRQ 192 (troutgpio)
<6>[    0.842685] GPIO Input Driver: Start gpio inputs for trout-keypad-v3 in interrupt mode
<4>[    0.842807] No IRQF_TRIGGER set_type function for IRQ 188 (troutgpio)
<6>[    0.842929] GPIO Input Driver: Start gpio inputs for trout-keypad-v3 in interrupt mode
<6>[    0.843875] input: trout-keypad-v3 as /class/input/input2
<6>[    0.892929] smd_alloc_channel() 'SMD_GPSNMEA' cid=27, shared=e0131b10
<4>[    0.901007] No IRQF_TRIGGER set_type function for IRQ 186 (troutgpio)
<6>[    0.901220] GPIO Input Driver: Start gpio inputs for trout-nav in interrupt mode
<6>[    0.901953] input: trout-nav as /class/input/input3
<6>[    0.961098] rs30000048:0da5b528 rs30000048:0da5b528: rtc core: registered msm_rtc as rtc0
<6>[    0.964852] Registered led device: blue
<6>[    0.965188] Registered led device: green
<6>[    0.965462] Registered led device: red
<6>[    0.965737] AKM8976A compass driver: init
<4>[    0.965889] No IRQF_TRIGGER set_type function for IRQ 187 (troutgpio)
<6>[    0.966683] input: compass as /class/input/input4
<6>[    0.991220] pdev->dev.platform_data is not NULL
<6>[    0.991403] mt9t013: probe
<6>[    0.991464] mt9t013: init
<6>[    0.991525] mt9t013: mt9t013_register_init
<6>[    0.991587] mt9t013: camera sensor_reset set as 1
<6>[    0.993662] mt9t013: clk_get(vfe_mdc_clk): c02a4cd4
<6>[    0.993784] mt9t013: clk_get(mdc_clk): c02a4954
<6>[    0.993875] mt9t013: clk select 1
<6>[    0.993936] mt9t013: clk_get(vfe_clk): c02a4cb4
<6>[    0.994058] mt9t013: enable vfe_clk
<6>[    1.020061] mt9t013: clk select 0
<6>[    1.028697] mt9t013: camera sensor init sequence done
<6>[    1.028758] mt9t013: camera sensor suspend sequence
<6>[    1.028880] mt9t013: disabling vfe_clk
<6>[    1.028972] mt9t013: clk_put(vfe_clk): c02a4cb4
<6>[    1.029277] mt9t013: camera sensor suspend sequence done
<6>[    1.030122] Bluetooth: HCI UART driver ver 2.2
<6>[    1.030213] Bluetooth: HCI H4 protocol initialized
<6>[    1.030274] Bluetooth: HCILL protocol initialized
<6>[    1.031464] mmc0: Qualcomm MSM SDCC at 0x00000000e1000000 irq 24,0 dma -1
<6>[    1.031587] mmc0: 4 bit data mode enabled
<6>[    1.031648] mmc0: MMC clock 144000 -> 20000000 Hz, PCLK 64000000 Hz
<6>[    1.031739] mmc0: Slot eject status = 1
<6>[    1.031770] mmc0: Power save feature enable = 0
<6>[    1.031831] mmc0: PIO transfer enabled
<6>[    1.032929] mmc1: Qualcomm MSM SDCC at 0x00000000e1001000 irq 26,194 dma 8
<6>[    1.033051] mmc1: 4 bit data mode enabled
<6>[    1.033143] mmc1: MMC clock 144000 -> 20000000 Hz, PCLK 64000000 Hz
<6>[    1.033204] mmc1: Slot eject status = 0
<6>[    1.033265] mmc1: Power save feature enable = 0
<6>[    1.033326] mmc1: DM non-cached buffer at ffc04000, dma_addr 0x1615b000
<6>[    1.033387] mmc1: DM cmd busaddr 370520064, cmdptr busaddr 370520832
<6>[    1.034181] Registered led device: spotlight
<6>[    1.034516] Registered led device: keyboard-backlight
<6>[    1.034852] Registered led device: button-backlight
<4>[    1.035493] No IRQF_TRIGGER set_type function for IRQ 190 (troutgpio)
<6>[    1.036103] ram_console: got buffer at 16d00000, size 20000
<6>[    1.036500] ram_console: found existing buffer, size 76720, start 76720
<6>[    1.190518] smd_alloc_channel() 'SMD_DS' cid=0, shared=e0135b38
<6>[    1.191251] smd_alloc_channel() 'SMD_DATA1' cid=7, shared=e0139b60
<6>[    1.191922] smd_alloc_channel() 'SMD_DATA2' cid=8, shared=e013db88
<6>[    1.192411] smd_alloc_channel() 'SMD_DATA3' cid=9, shared=e0141bb0
<6>[    1.192899] smd_alloc_channel() 'SMD_DATA4' cid=10, shared=e0145bd8
<6>[    1.499796] console [ram-1] enabled
<6>[    1.501434] logger: created 64K log 'log_main'
<6>[    1.501983] logger: created 256K log 'log_events'
<6>[    1.502472] logger: created 64K log 'log_radio'
<6>[    1.504333] pmem: 1 init
<6>[    1.505371] pmem_adsp: 0 init
<6>[    1.510610] pmem_gpu0: 0 init
<6>[    1.512227] pmem_gpu1: 0 init
<6>[    1.513692] pmem_camera: 0 init
<4>[    1.515554] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
<6>[    1.523906] ip_tables: (C) 2000-2006 Netfilter Core Team
<6>[    1.524547] TCP cubic registered
<6>[    1.525066] NET: Registered protocol family 1
<6>[    1.525828] NET: Registered protocol family 17
<6>[    1.526225] Bluetooth: L2CAP ver 2.9
<6>[    1.526561] Bluetooth: L2CAP socket layer initialized
<6>[    1.527141] Bluetooth: SCO (Voice Link) ver 0.6
<6>[    1.527476] Bluetooth: SCO socket layer initialized
<6>[    1.528453] Bluetooth: RFCOMM socket layer initialized
<6>[    1.528880] Bluetooth: RFCOMM TTY layer initialized
<6>[    1.529460] Bluetooth: RFCOMM ver 1.9
<6>[    1.530457] clock_late_init() disabled 20 unused clocks
<6>[    1.534089] rs30000048:0da5b528 rs30000048:0da5b528: setting system clock to 2008-11-06 15:19:51 UTC (1225984791)
<6>[    1.534974] Freeing init memory: 100K
<3>[    1.744791] init: cannot open '/initlogo.rle'
<6>[    1.751251] yaffs: dev is 32505859 name is "mtdblock3"
<6>[    1.751678] yaffs: passed flags ""
<4>[    1.751983] yaffs: Attempting MTD mount on 31.3, "mtdblock3"
<4>[    1.781222] yaffs: restored from checkpoint
<4>[    1.781924] yaffs_read_super: isCheckpointed 1
<6>[    1.784182] yaffs: dev is 32505861 name is "mtdblock5"
<6>[    1.784854] yaffs: passed flags ""
<4>[    1.785189] yaffs: Attempting MTD mount on 31.5, "mtdblock5"
<4>[    1.911863] yaffs: restored from checkpoint
<4>[    1.912595] yaffs_read_super: isCheckpointed 1
<6>[    1.919096] yaffs: dev is 32505860 name is "mtdblock4"
<6>[    1.919767] yaffs: passed flags ""
<4>[    1.920154] yaffs: Attempting MTD mount on 31.4, "mtdblock4"
<4>[    1.924762] yaffs: restored from checkpoint
<4>[    1.925495] yaffs_read_super: isCheckpointed 1
<4>[    1.970093] mmc_sd_init_card: Delay 250 ms
<4>[    2.335525] mmc1: host does not support reading read-only switch. assuming write-enable.
<6>[    2.336288] mmc1: new SD card at address deeb
<6>[    2.338058] mmcblk0: mmc1:deeb SU01G 992000KiB
<6>[    2.338882]  mmcblk0: p1
<6>[    2.586258] enabling adb function
<3>[    2.594335] FAT: bogus number of reserved sectors
<6>[    2.595068] VFS: Can't find a valid FAT filesystem on dev mmcblk0.
<6>[    2.689828] warning: `rild' uses 32-bit capabilities (legacy support in use)
<4>[    3.041865] SMD: ch 0 OPENING -> OPENED
<6>[    3.042597] qmi: smd closed
<4>[    3.043208] SMD: ch 38 OPENING -> OPENED
<6>[    3.043543] qmi: smd opened
<6>[    3.044581] qmi: smd closed
<4>[    3.045008] SMD: ch 39 OPENING -> OPENED
<6>[    3.045558] qmi: smd opened
<6>[    3.046168] qmi: ctl: wds use client_id 0x01
<6>[    3.046565] qmi: ctl: wds use client_id 0x01
<6>[    3.047358] qmi: smd closed
<4>[    3.047724] SMD: ch 40 OPENING -> OPENED
<6>[    3.048060] qmi: smd opened
<6>[    3.049800] qmi: ctl: wds use client_id 0x01
<4>[   12.681338] init sharp panel
<6>[   17.757409] android_power: wakeup (0->0) at 25547348632 (2008-11-06 15:20:15.213256836 UTC)
<6>[   18.705761] TIWLAN: Driver loading
<4>[   18.706280] trout_wifi_power: 1
<4>[   18.934906] trout_wifi_reset: 0
<4>[   18.993686] trout_wifi_set_carddetect: 1
<7>[   18.994113] mmc0: card_present 1
<6>[   18.994510] mmc0: Slot status change detected (0 -> 1)
<4>[   19.010481] mmc0: card claims to support voltages below the defined range. These will be ignored.
<4>[   19.011183] mmc0: SDIO card claims to support the incompletely defined 'low voltage range'. This will be ignored.
<6>[   19.014723] mmc0: new SDIO card at address 0001
<6>[   19.018690] TIWLAN: Found SDIO controller (vendor 0x104c, device 0x9066)
<6>[   19.028782] TIWLAN: Driver initialized (rc 0)
<6>[   19.029240] TIWLAN: Driver loaded
<6>[   31.041398] audmgr_rpc_thread() start
<6>[   31.042771] audio_enable()
<6>[   31.043168] ++++++++++++++++++++++++++++++

▼その他

・cronやatはない(iPhoneにはあるらしい。ちょっと残念。)
・sshd もない(iPhoneにはあるらしい。とても残念。)
・viもない
・/system/bin の下にコマンド類がある(/bin や /usr/binではない)。以下/system/binのls結果

df
rmdir
dmesg
renice
dumpcrash
rm
reboot
printenv
dd
ps
date
notify
cmp
netstat
chmod
mv
cat
mount
wipe
mkdosfs
watchprops
wpa_supplicant
wpa_cli
mkdir
wlan_loader
toolbox
telnetd
system_server
svc
surfaceflinger
vmstat
ssltest
sh
servicemanager
service
lsmod
sdutil
sdptool
rild
radiooptions
qemud
pm
umount
playmp3
ping
netcfg
mountd
ls
monkey
mediaserver
logwrapper
logcat
linker
itr
top
installd
input
htclogkernel
hostapd_cli
log
hostapd
hcid
hciattach
flash_image
fillup
dvz
sync
dumpsys
dumpstate
dhcpcd
dexopt
ln
debuggerd
debug_tool
dbus-daemon
dalvikvm
app_process
am
stop
akmd
kill
start
ioctl
smd
insmod
sleep
iftop
setprop
ifconfig
setconsole
id
sendevent
hd
schedtop
getprop
route
getevent
rmmod

色々、突っ込みどころ満載といった感じで、もっと遊びたいのですが、時間がなくここまで。
明日は、仙台の携帯勉強会に出席です。

Android 携帯を日本でアクティベートする方法

これを、会社のblogに書くのは微妙にはばかる気がするのですが、Androidのデバッグ用に購入した
T-Mobile G1が無事動作するようになりました。
以下、新品の未アクティベート(未google認証)のandroid T-Mobile G1を日本のDoCoMoで使えるようにする手順です。
たぶん、今後、海外で登場するandroid携帯を未アクティベート状態&SIM無しでお土産で勝手帰ってきても、このノリで国内でもアクティベート&デバッグが出来るものと思われます。
なお、本操作は、くれぐれも自己責任でお願いします。
アクティベートにDoCoMoのSIMを使うだけで、アクティベート後は、SIMをはずされる事をお勧めします。

もし、本掲載がまずかったら連絡下さい >docomo様

○用意するもの

 ・T-Mobile G1 (適当に海外から入手)
 ・DoCoMoのSIM(Data専用契約のSIMはNG。始めこれで格闘していたので駄目だった。)

○手順

1. まずhttp://www.unlock-tmobileg1.com/ でSIMロック解除のPINコードを購入(他に良い方法があったら教えてください。)
2. DoCoMoのMopera U (ライトプランでOK。定額はNG。)の管理画面にアクセスし、ID,Passをメモ。
3. DoCoMoのカードを挿入してG1を立ち上げる
4. 1で購入したPINコードを入力
5. Google認証画面になる。このときシグナルが振れている事を確認。
7. MenuボタンをクリックしAPN setting画面を表示
8. 再びAPN settingをクリックし、New APNをクリック。
9. APN = mopera.net 。 ユーザ名パスワードは2でメモったものを設定。
10. Menuボタンをクリックし、Saveをクリック
11. Google認証画面に戻ると、シグナルメータの左隣に[G3]というアイコンが登場していることを確認
12. あとは画面の指示に従えばOK

日本で、普通にDoCoMoの携帯として電話もWeb(MoperaU経由)も使えるようになります。

※おまけ
 一旦ハードリセット
 http://www.technipages.com/t-mobile-g1-google-phone-hard-reset.html
 をしてもSIMロック解除コードは忘れないようです。