honeylab's blog

各種ハードウェアの改造、主にファミコンミニなどをやってます(ました)

docomo フォトパネル03 を解析する

久しぶりの記事なのにファミコンミニじゃなくてごめんなさいw

 

Linuxが入ってるぐらいのフォトフレームを改造して
車載システムの一部にできないかと考え始めました。

どうやら、SIMが入って3G通信をしているぐらいのものならきっと行けるだろうと踏んで
ハードオフで「docomo フォトパネル03」を1000円で買ってきました。

 

f:id:honeylab:20170506052423p:plain

www.nttdocomo.co.jp

 

フォトパネル 03 | デジタルフォトパネル | ファーウェイ・グローバル

 

 

箱に入っていたままだったので若干賭けだったのですが。

さっそく分解してみます。

ねじを数本外すだけで簡単に分解できました。

液晶パネルのFPCは50ピン。
型番は「AT090TN12 V.3」でデータシートもあり
やれることならこのまま別のLinuxボードに接続することも可能かと思われます。

 

とはいえ、ちょっともったいないので、このまま有効活用できないか調べてみます。
とりあえず電源を入れて、システムメニューから本体情報を見てみると

 

f:id:honeylab:20170506052927j:plain

おおお?「Uboot」 って書いてありますね。
これはこないだまでさんざんいじっていたあいつの仲間じゃないですか。

本体上にUARTが出ていないか調べつつ、全体を把握します。

 

基板裏面

f:id:honeylab:20170506055052j:plain

 

基板表面

f:id:honeylab:20170506055053j:plain

はじめ、あからさまなテストポイントをあたっていたのですが全然見つからず、
結局、UARTは表面下部、未実装のデバッグ専用コネクタの部分に出ていました。

 

というわけで、とりあえずbootlogをここに

docomo photoflame 03 bootup log — Bitbucket

眺めてみると、いろんなことがわかりますよ。

 

とりあえずわかったことは、

・SDカードはすぐにアクセスできる(フォトフレームなので当然だな)

アーキテクチャはこんな感じ

 Linux version 2.6.29_hisilicon (wjg@dpf.china.huawei.com) (gcc version 4.4.1 (hisilicon-20100607) ) #1 Tue Nov 23 18:19:17 CST 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: hi3560v300

 

この単語でググっても、全然情報が出てこないので、だれもいじってないんだと思いますw

 

そうそう、書き忘れてましたが、この機械の製造元はHUAWEI。

そして起動中に以下のメッセージを見つけました。なんだこれ…

Welcome Visiting Huawei MMC255
Copyright by Huawei Technologies Co., Ltd.


調べてみると、「MMC255」という機種のカスタムなんじゃないか、ということが推測されました。

 

Jual Huawei MMC255 - rewangi | Tokopedia

 

さらに、docomoのこのモデルだけではなく、softbankからも似たようなものが出ているようです。

 

また、

BusyBox v1.1.2 (2010.11.23-10:21+0000) Built-in shell (ash)

がでるので、当然シェルが使えると思いたいところ。
引き続き、シェルへのログインとシステム解析を続けます。

 

掃除ロボット(ECOVACS DEEBOT R95)のためにソファーを底上げした話

先日買ったデーボくん、高さが10cmで、我が家のソファー下を通れませんでした。
 

なので、ちょっと頑張ってソファーを底上げすることにしました。
これは底上げした状態の写真。底上げ前に写真撮り忘れてしまったので。
f:id:honeylab:20170310105844j:plain


簡単に手順をば。

ソファーの底はこんな樹脂製の部品がボルトで止まっています。
f:id:honeylab:20170308175220j:plain
この高さが6cmです。
単純に、足の下に何かを置いてもいいのですが、それでは安定性に欠けますし
既製品の何かはお値段が張りそうです。

というわけで棚の自作用に買って余っていた1x4 材 910cm。(プライスレス)

f:id:honeylab:20170307175035j:plain

1x4の厚みは19mmですので、これを3枚重ねると約6cm上がります。

あれをこうして

 f:id:honeylab:20170308175256j:plain

ボルトの長さを+6cmのものに交換して (90円x4)

f:id:honeylab:20170308175408j:plain

 

こうじゃ!

f:id:honeylab:20170308175227j:plain

 

youtu.be

無事にソファー下も掃除してくれるようになりました!

安定性も申し分なく。

で、ソファーの下、今まで入れなかったので猫が嬉々として住み着いてるんですが…

f:id:honeylab:20170310105855j:plain

Progress of NESC as usb HOST

前回USB HOSTの利用に成功してから、madmonkey氏に改造してもらったhakchiでu-bootを書き込めるようになっていろいろテストしている途中、

突然USB HOSTが使えなくなってしまいました。
あちこちソースコードを書き換えたりしても挙動が定まらない。
いろいろ試していると、Linuxの起動後にscript.binの読み込んだ値がデフォルトに戻っていることに気付きました。
hakchiが変なところ上書きしてないよなぁといろいろ検証してみると、
u-boot -> Linuxの起動をすると、
次に起動したときにu-bootが元の状態に戻っているではないですか…

調べてみると、dmesgにしっかり証拠が…

 

おぉう…

f:id:honeylab:20170305153357p:plain

どうもbootのバックアップエリアがあって、そこから復活させられているようでした。
なので、とりあえず、つぶしますw

 

 

そんなこんなで、とりあえずUSBコネクタにつないだ普通のゲームパッドが認識するようになりました。

f:id:honeylab:20170305152341j:plain
しかし、どうも電源供給を電源コネクタから供給してやらないとやっぱりうまくいきません。
もしかすると、その部分改造必須になっちゃうかもだけど、まぁ一本ジャンプするか、コネクタつけるかとかだから人柱の人ならやってくれるかもね

 

あと、やっぱりまだKernel configが違うっぽくてmaliが立ち上がんないわ…

Nintendo Switch teardown (incomplete)

 

 

 

 

 

My teardown is stopped because I will make it was broken.

I will grip this  with Splatoon2.

 

Enjoy others trying.

gigazine.net

Kernel/U-boot re-flash success

Using hakchi tooks,I have succeeded to replace u-boot(script.bin) and kernel.
But some parameters is not configured , many module not worked.

 

とりあえず、カーネルとu-bootとそれに含まれるscript.binを差し替えることに成功。
もともとのカーネルだとdmesgすら使えなかったんで、
モジュール入れようとしてもエラーすらまともに見えなかったんでな…

 

で、SDカードから起動してた時もそうだったんだけど、
なぜか起動直後のmodprobeで何個かロードにこけるのよね…
さらに、USBデバイスモードにして遊んでた残骸が残ってて
USBホストにするやり方忘れたわ…w

モジュール読み込んでるはずなんだけど、先にotgのモジュールが呼ばれちゃってだめなのかな…
あれが夢だったってことはないはずだからできるはずなんだが。

 

あと、やっぱりIDピンが生きてないように見えるのが納得いかないなぁ…
もう一回gpio頑張って探すか…

 

ところで、switchが発送されましたー

開けない、開けないよ…

hakchi-gui helps my bricked FC mini

@madmonkey1907 helps me with updating hakchi tools.

GitHub - madmonkey1907/hakchi

 

先日私がファミコンミニに軽い気持ちでw u-bootを上書きして
ぶっ壊したときにいろいろ聞いたところ、
どうやらu-bootのビルド後にチェックサムをセットしてなかったため
boot0が読み込もうとした後にエラーだって弾いて文鎮のように見えていたようです。

もともとhakchi-guiにはkernelの部分のアップデート機能はあったのですが、
さらに、u-bootの更新機能(とチェックサム設定)をつけてくれました。
超助かった。ありがとう。

で、其れとはべつにNANDの後ろのほうもなぜかffで埋まってしまってて、
たぶんprintfが出ないu-bootでflashとかいろいろ間違えてやっちゃって
NANDのいろんなエリアを飛ばしちゃったのかなーと思っています。

で、どうしてbootを書く場所がわかんなかったんだろう、って思って調べてたら、
どうもNANDの先頭部分は特定シードハッシュのスクランブル(とECCチェックサムとか)がかかっているそうで。


だから普通にダンプしても見えなくて、この部分は何なんだろ、と思ってました。

f:id:honeylab:20170302172834p:plain

全然意味のある内容に見えないじゃんよ…

これを、

RELEASE: ROM DeScrambler for NES Classic Edition (Mini) NAND Dumps | MaxConsole

これで復号化すると

f:id:honeylab:20170302173002p:plain

こうなるんだってさ…
知らねぇよ…
なんでそんな仕組みなんだよ…

 

というわけで、幸いそこのBOOT0の領域は壊していなかったため、
u-bootをre-flashしてとりあえず文鎮から評価ボードぐらいまで巻き戻りました…
助かった…

 

とりあえず、次の悲劇を生まないため、生きてるやつからフルダンプ取っておくわ…

 

f:id:honeylab:20170302173242p:plain

↑評価ボードの数々

My FCMini is a zombie!

First,My FCMini is not truly brick.

I had forgot that the stock boot0 is no message without pressing 's' keys!

So with 's' keys , boot0 show messsage as boot1 has wrong checksum.

 

This is my perfect NESC stock boot0 messages

f:id:honeylab:20170302075700p:plain

 

And , this is my zombie FCMini stock message

f:id:honeylab:20170302075844p:plain

It is clearly what causes my brick will not wake up.

 

madmonkey gives me u-boot update tools,I can continue to trying update.