カテゴリー別アーカイブ: 車

Blu-rayプレイヤーをHackする(その3)

さて、前回の記事??の続きです。

目当てを付けたシリアル通信がシリアルコンソールでなかったことに落胆を隠せず、そろそろ蓋を閉じてしまおうかともう一度基板を眺めていたところ…

あれ…

写真 2013-12-30 18 58 54

4ピンコネクタあんじゃん!
しかも堂々とコネクタ実装されてんじゃん!!!

OTL

シリアルコンソールはこっちだったか…
なんで気付かなかったし。

さて、気を取り直して改めてTeraTermに突っ込んでみます。

デターーーーーーーーーーーーーーーーーーーーー!!!!!

スクリーンショット 2013-12-30 19.00.41

なんか出ました。

ブートローダに工夫があるらしく、コンセントを入れた瞬間に少し起動して止まっています。
その後、電源を入れたあとにLinuxのローダが動いてるように見えます。

せっかくなので起動ログを全部貼ってみましょう。

0:00.000 preloader v5599
00:00.016
Apr 11 2011 15:48:04SSC (+-5/1000, 30kHz)
DDR3 1242 MHz.
B0:DQS( 4~38), 35, 21
B1:DQS( 5~41), 37, 23
0x7388=0x2e2e2e2e.
B0:Gw(13~107), 95, 62
B1:Gw( 7~100), 94, 54
0x7388=0x363e.
A 128MB, x16
B0:DQS( 7~41), 35, 24
B1:DQS( 7~40), 34, 23
0x7388=0x2e2e2e2e.
B0:Gw(13~105), 93, 61
B1:Gw( 6~97), 92, 53
0x7388=0x353d.
B 128MB, x16
00:00.139
00:00.171 u4_dramk_sa:[0x40000f60]
00:00.174 u4_loader_sa:[0x400030e4]
00:00.178 u4_loader_end:[0x40005970]
00:00.181 loader start
00:00.183 A00:00.184 B00:00.201 C00:00.202 D00:00.203 E00:00.235 aMTD Found at 0x300000
00:00.242 F00:00.243 G00:00.310 H00:00.311 K00:00.000 preloader v5599
00:00.016
Apr 11 2011 15:48:04SSC (+-5/1000, 30kHz)
DDR3 1242 MHz.
B0:DQS( 4~38), 35, 21
B1:DQS( 5~42), 38, 23
0x7388=0x2e2e2e2e.
B0:Gw(12~107), 96, 61
B1:Gw( 6~100), 95, 54
0x7388=0x363d.
A 128MB, x16
B0:DQS( 8~42), 35, 25
B1:DQS( 7~42), 36, 24
0x7388=0x2e2e2e2e.
B0:Gw(12~105), 94, 60
B1:Gw( 4~97), 94, 52
0x7388=0x343c.
B 128MB, x16
00:00.137
00:00.170 u4_dramk_sa:[0x40000f60]
00:00.173 u4_loader_sa:[0x400030e4]
00:00.176 u4_loader_end:[0x40005970]
00:00.180 loader start
00:00.182 A00:00.183 B00:00.200 C00:00.200 D00:00.202 E00:00.234 aMTD Found at 0x300000
00:00.241 FAVM 00:00:00.280 [AVM] DSP :v9200.03 DRV: v0.1
 AVM 00:00:00.284 [vMTD_main] NAND init
 AVM 00:00:00.288 [fgLoadNFBTable] MTD Init Start
 AVM 00:00:00.292 [fgLoadNFBTable] MTD Init Success
 AVM 00:00:00.360 [fgLoadNFBTable] MTD Init Success ##
 AVM 00:00:00.365 [mtd_part_tbl_init] MTD part table init start
 AVM 00:00:00.527 [mtd_part_tbl_init] MTD part table init DONE
 AVM 00:00:00.533 [vFLFlashRead] Get logo from flash
 AVM 00:00:00.538 [vLoad_binary] Get info name : ef09f7e
 AVM 00:00:00.719 [vLoad_binary] Load binary success
 AVM 00:00:00.724 [vLoad_binary] Get info name : ef0a09b
 AVM 00:00:00.732 [vLoad_binary] Load binary success
 AVM 00:00:00.737 [vMTD_main] Load FASTLOGO binaries ok
 AVM 00:00:00.967 [IDE_FB]FE firmware CheckSum OK !!
 AVM 00:00:00.972 [IDE_FB]read loader binary to buf:0xfe00000, version:5Q0300
 AVM 00:00:01.028 [IDE_FB]backup NAND flash info(0xff21c00, 64)
 AVM 00:00:01.033 [vMTD_main] Load IDE Binaries ok
 00:01.040 G00:01.107 H00:01.107 K00:01.397 J
U-Boot 2009.08 (Dec 13 2011 - 11:17:32)
I2C: ready
NXP B.V. - MT85XX SoC with ARM1176JZF-S
DRAM: 256 MB
NAND: 128 MiB
u-boot adaptive mtd mechanism applied.
[_i_find_part_tbl]Part tbl info passed from preloader
[_i_find_part_tbl] version is 1!!
[_i_get_upg_status_in_nand]upg status passed from preloader
Using default environment
In: serial
Out: serial
Err: serial
r_args_to_uboot:
 head sig : 0xa0b0ead1
 version : 1
 boot type : 0
 dram ch1 : 0x08000000
 dram ch2 : 0x08000000
 kern addr : 0x0d9fffc0
 initrd addr : 0x0e700000
 initrd size : 0x00021cc0
enable bim two way write.
boot type:[0]
Bootloader version 3847
l>)・ワkR・MD3I
Hit any key to stop autoboot: 0
## Booting kernel from Legacy Image at 0d9fffc0 ...
 Image Name:
 Image Type: ARM Linux Kernel Image (uncompressed)
 Data Size: 1558196 Bytes = 1.5 MB
 Load Address: 0da00000
 Entry Point: 0da00000
 Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
@

CPUは「NXP B.V. – MT85XX SoC with ARM1176JZF-S」
予想通りマルチメディア用SocのARMですね。
http://www.arm.com/ja/products/processors/classic/arm11/arm1176.php

MT85xxで調べていたら、MT8520というBlu-ray用のチップにたどり着きました。
http://www.mediatek.com/_en/01_products/04_pro.php?sn=27

標準出力はすべてserialになっているようですが、booting the kernelのあと、@が表示されたあとのメッセージは表示されていないようです。
シェル無いのかなぁ…?

さて、こうなったら Hit any key to stop autoboot: 0 に本当に割り込めるのかどうか。
次回乞うご期待。

(続くかも)

Blu-rayプレイヤーをHackする(その2)

さて、前回の記事 ?の続きです。

電源周りは諦めたので、とりあえずCPU基板の方を眺めてみましょう。

写真 2013-12-29 23 11 37

水晶発振器は27MHz。基本的にNTSCでの信号生成を含むCPUの場合、これからPLLするのが多い気がします。
メインCPUはヒートシンクが接着されていて型番を読むことは出来ませんが、
右端にFlashROMがあります。
また、ケースにJavaのロゴが入っていました。
メディアプレイヤー向けのコア内蔵のLinuxが動くCPUであることはほぼ間違いないでしょう(経験上)右手前に赤外光受信機を実装するパターンが有りますが、ここには付いていません。
ボードのみで構成されるような小型の機器を作るため用のパターンでしょうか。
延長されてフロントのVFD基板に接続されています。
このパターンの周辺に5VのTPがあるので、電源ユニットからの5VSTBYで常時起きてて、
赤外線リモコンの割り込みでメインCPUが起きるようになっているのでしょう。

左下には放熱パッドの付いたICが。LOADと書かれていて、V,U,WなどのTPがあります。
トレイローディング用のモータドライバICかと思われます。

「ICE」と書かれたコネクタ。CPUのオンチップデバッグなどに使われるコネクタです。
8pinなので、JTAGの最小限の配線があるのでしょうか。

と、色々眺めていると「USB1」「USB2」のコネクタパターンの左にある謎の4ピンコネクタ。

写真 2013-12-29 23 16 51

そうです。シリアルコンソールに決まってます。
こういう機械に現れる未接続の4ピンコネクタは、VCC,TX,RX,GNDのシリアルコンソールに決まっているのです。
(っていうかRS232って書いてあったことにあとで気づくなど)

よっしゃキタコレーと思ってオシロスコープのプローブを当ててみます。

写真 2013-12-29 23 16 14

写真 2013-12-29 23 30 59

何か信号でたー!!!

パルス幅を測定してみます。

写真 2013-12-29 23 33 31

約115Hz。

もうこれは115.2kbpsのUART確定です。

小躍りしながらUSB-TTL UART変換ケーブルのRXに繋いでTeraTermを見てみます。

現れるのは

なんじゃこりゃー

バイナリ…
文字化けか?ボーレート変えてみるか?
いや、どれも一緒だ。アスキーらしきものは出ない…

おっかしーなー。
HEX確認可能な別のツール(XBee用のX-CTU)で見てみる。

スクリーンショット 2013-12-30 18.25.18
…バイナリだ。しかも4桁の数字や”NORM”と読める文字も出てるので、これはコンソールではなく、何か意味のある人間の読めない通信だ…

落胆

いやまて、信号反転かもしれん、ロジアナに繋いでみよう。
ついでに接触不良だと嫌だからハンダ付けしよう。
(良い子は真似してはいけません!)

写真 2013-12-29 23 24 12

ロジアナはZEROPLUSのLogic Cube LAP-C(16128)。
ストロベリーリナックスで4万円のお買い得品です。安くなったもんだ。
https://strawberry-linux.com/catalog/items?code=64002


スクリーンショット 2013-12-30 18.32.07

…あかん。信号反転するとUARTとしてエラーが多すぎる。
ロジックレベルも、ボーレートも、パリティも、ビット長も合っていて、正常に通信しているようだ。

落胆×2

小躍りしてからのこれなのでショックがでかい…
さすがにこれを解析する気力はないぞ…?

(つづく)

Blu-rayプレイヤーをHackする(その1)

こんにちは。hiromituです。

自家用車でBGVを再生するため、過去にiPodやAndroid動画プレイヤーを車載してきたのですが、自宅にスカパー+HDD/Blu-rayレコーダーを導入したため、処理しなければいけない動画の数が急増し、せめてBlu-rayディスクを再生する環境を早急に車載しなければいけない状態になりました。

しかし、車載Blu-rayプレイヤーは高い!
SONYのポータブルプレイヤーだと?http://pur.store.sony.jp/Qnavi/Product/BDP-Z1/?s_tc=st_ad_sony000_D_00_PL_pc?なんと五万円!
それ以外の3流メーカー製(あきばお?扱い)でも二万三千円するなど、ちょっと勢いで買うには高すぎます。

そこで、もっと安い家庭用のBlu-rayプレイヤーを買って車載することを思い立ち、
あきばお?で最安だった Blu-rayプレイヤー(8GB USBメモリ付き)を7,980円で買ってきたのでした。

外箱。
写真 2013-12-29 22 50 13

最近流行りの横長薄型とは違い、横方向は短いようです。
写真 2013-12-29 22 51 24

裏側。シンプル。HDMIとRCAがついてます。車載だと分配や小型モニタとの接続があるので
NTSC出力はありがたい。
写真 2013-12-29 22 51 35

電源を入れてみよう。
写真 2013-12-29 22 54 18

…なんだか解像度が低い…?

ディスクを入れてみよう。
再生。おお、なんだか一昔前の中華製プレイヤーのようなもっさり感は全然ない。
一応日本語看板がついてるぐらいのことはあるようだ。
写真 2013-12-29 22 57 00
せかいいち かわいいよ!!!

…が、なんか解像度低いぞ…?

いやまてさすがにBlu-rayでHDMIでこの画像だったらキレるわ。
説明書見ると、1080iまで対応と書いてある。

おもむろにセットアップメニュー。

写真 2013-12-29 22 57 37

写真 2013-12-29 22 57 48

出たー中華フォント!!!!

写真 2013-12-29 22 58 11

解像度が480です。そりゃぁ汚い。デフォルトで自動設定とかどうにかならんのか。

写真 2013-12-29 22 58 30

1080iにした。メニューもその場で切り替わってくっきり!
起動画面もくっきり!

写真 2013-12-29 22 58 43

動画もくっきり!(写真じゃわからんて)

写真 2013-12-29 22 59 16

せかいいちかわいいよ!

さて、ここからが本番です。
この機械は家庭用100Vで動作するため、電源をどうにかしなければなりません。

写真 2013-12-29 23 11 10
普通だと写真のようなDC/ACインバータを使用して100Vを出すのが素直なのですが、
所詮数十ボルトで動いてるような機器を12->100V->と変換するのは癪に障るものです。

銘版によると消費電力は15W。12V換算で1.5A。このぐらいの電流なら自力で電源周りを作ってやれないかと思ったわけです。

では。ご開帳。さよなら保証期間(4時間)
(良い子は真似してはいけません!!!!!!!!)

写真 2013-12-29 23 06 38

スッカスカです。最近の電化製品なんてこんなもんです。
左半分がBlu-rayドライブ、右下に電源ユニット、右上にCPUボードとI/Oがついています。
I/Oが偏っているのはCPUボードから直出しの都合なのですね。
生産コストをきっちり落とす優秀な設計です。

写真 2013-12-29 23 06 59

ドライブにはBDY-33と書いてあります。

さて、肝心の電源ユニット。

写真 2013-12-29 23 07 07
12Vからこれと同じ出力を作り出せればいいことになります。
出力は…

写真 2013-12-29 23 07 35
・5.1V 3.2A
・12V 0.2A
・5VSTBY 0.4A
・-24V 10mA
・3.3V AC 0.1A

…… む り か な !

あれ、こんな複雑な電圧が出てるとは思ってなかったぞ。
つーか-24VはVFDとして、3.3V ACとかなんにつかうんだこれ!

いや、ちょっと思ったとおりには行かなそうだ。
電源周りはとりあえずACインバータを使うことにしよう。

(つづく)