« 【XBOX360】ちゃんとしたNandイメージを作った | トップページ | 【XBOX360】eFuse対策を施してみた。 »

【XBOX360】LinuxでNandを書換えてみた【freeboot】

XBOX360のFlashNandにLinuxローダを書き込んで、(Live)CDよりLinuxをブートできる環境になった。

でもブートを書換えてしまったので、それと引き換えにこのXBOX360は、元々であるゲーム機として立ち上がらなくなってしまった
つーことで、ゲーム機として'も'立ち上がるようさらにブート(=freeboot)データをFlashNandに書き込んでみる。



ブートデータ(freeboot)を作成するために、"fbBuild.exe"を使って作成するのであるが、いろいろファイルを集めたりするようで、面倒。
GUIで簡単にできる「Easy-FreeBoot-12611.rar」をダウンロードして作成することにした。
解凍すると、ビルドするのに必要なファイルが盛り込まれているので楽。
EFB.exeを起動させて_

  1. チェック内容がいまいち意味がわからなかったので、そのまま[Create Image]を押した。
  2. Linuxローダ(=XeLL)が立ち上がるときに画面に表示するCPU Keyを入力した。
  3. 元となるNandイメージファイルを指定。
  4. DOS窓が開いてビルド開始。出来上がったファイルに名前をつけて(例:"updflash.bin")保存した。

後は保存したファイルをNandに書く。


せっかくXBOX360でLinuxが動くようになったので、書き込みソフトは最初のプリンターポートを利用したものでなく、同Linux上で動く「Nandのアクセス実行ソフト(=xbrflash)」を使った。
  • Nandアクセスプログラム「xbrflash3.6.rar」をダウンロード。
  • USBメモリに解凍した実行ファイル「xbrflassh」をコピーした。
  • XBOX360にてLinux(gentoo)を起動。
  • このUSBメモリを挿して起動したLinux(XBOX360)上で、端末(ターミナル)を開いた。
    gentoo@livecd ~ $ sudo passwd
    New UNIX password: 123456789
    Retype new UNIX password: 123456789
    passwd: password updated successfully
    gentoo@livecd ~ $ sudo -s
    livecd ~ # dmesg | grep "SCSI device"
    [ 430.015739] SCSI device sda: 239872 512-byte hdwr sectors (123 MB)
    [ 430.041691] SCSI device sda: 239872 512-byte hdwr sectors (123 MB)
    ここで"sda"というのを確認。
    livecd ~ # cd Desktop/
    livecd Desktop # mkdir flash
    livecd Desktop # mount -t vfat -o uid=gentoo,gid=users /dev/sda1 ./flash/
    USBメモリを"./flash"でマウント
    livecd Desktop # cd ./flash/
    USBメモリの中身に移動。
    livecd flash # ls -l
    USBメモリの中身を確認。
    total 16930
    -rwxr-xr-x 1 gentoo users 17301504 May 2 2011 Updflash.bin
    -rwxr-xr-x 1 gentoo users 33619 Jan 20 2010 xbrflash
    「ブートファイル」と「書き込みプログラム」がある。ま・そりゃそうだ。
    livecd flash # ./xbrflash -d backup.bin
    (書き込む前に現在のNandイメージを吸い出しておく。保険。)
    XBR-Flash for Linux v0.3.6 beta by trancy (www.modcontrol.com)
    Thanks goes to tmbinc, Redline99 and all Beta-Tester on xboxhacker.org

    Nandsize: 16 MB detected
    Read and write: 16 MB

    Dumping to backup.bin...
    0x400 block's to dump...
    Reading block: 0x3ff of 0x3ff (16MB/16MB)
    Speed: 1.33 MB/s
    Reading done in 12.00 sec.

    Verifying flash with backup.bin...
    0x400 block's to verify...
    Detected RAW nand file, using raw mode.
    Verifying block: 0x3ff of 0x3ff (16MB/16MB)
    Speed: 1.45 MB/s.
    Verify done in 11.00 sec.
    Verified 17301504 bytes OK :)
    livecd flash # ./xbrflash -w updflash.bin
    ("freeboot"をNandに書き込み)
    XBR-Flash for Linux v0.3.6 beta by trancy (www.modcontrol.com)
    Thanks goes to tmbinc, Redline99 and all Beta-Tester on xboxhacker.org

    Nandsize: 16 MB detected
    Read and write: 16 MB

    Flashing from updflash.bin...
    0x400 block's to write...
    Detected RAW nand file, using raw mode.
    Writing block: 0x3ff of 0x3ff (16MB/16MB)
    Speed: 0.80 MB/s
    Write done in 20.00 sec.

    Verifying flash with updflash.bin...
    0x400 block's to verify...
    Detected RAW nand file, using raw mode.
    Verifying block: 0x3ff of 0x3ff (16MB/16MB)
    Speed: 1.33 MB/s.
    Verify done in 12.00 sec.
    Verified 17301504 bytes OK :)


書き込み完了。


これでXBOX360が

  • [Eject]キーでLinux側起動

  • [Power]キーでゲーム側起動


が可能となった。ヽ(´▽`)/

|

« 【XBOX360】ちゃんとしたNandイメージを作った | トップページ | 【XBOX360】eFuse対策を施してみた。 »

コメント

現行の動いているようで動いていない状態で、上書きしても同じ動作になると思います。

今となっては手遅れかもしれませんが、flashに書込く前には必ず「元データ」として最初にデータの吸い出しておくことをオススメします。
それだったら何かあったも元には戻せますから。
また、バイナリーエディタで書込み前と後のファイルを比較して何が変わったかをチェックできます。

XeXMenuの方はやったことないので、よくわかりません。
ブログで書いてあること意外はやったことないんですよ。

投稿: じむ | 2011/12/14 14:28

こんにちわ
早速、また壁にぶち当たりました! JTAG化成功と思いきや、
起動しばらくしてフリーズ。DISCゲームやHDD格納のゲームを始まってすぐぐらいに
フリーズします。ゲームどころか「はじめにチャンネルを表示しない」に設定したときフリーズ。
これってfreebootの上書きで直ると思いますか?
SPIの配線は(NAND-X)外しました。

もうひとつ質問ですが、XeXMenuで デバイス選択でFlashがありますが、ここに
別のJTAG(Xenon)のFlashをコピペしたらどうなりますか?

投稿: ひろ | 2011/12/13 17:13

ひろさん、書込みどーもです。

読み返すと的外れのことも言ったりしているので、助言らしい助言ができたかどうかは疑わしいです。

けど、切りのいいところまで行けたのは何より。

ダッシュボードのバージョンもこの間14699になったし、海外からはLT+3.0がそのうち発表されると聞きますし、まだまだXBOX360の改造は続きそうです。

投稿: じむ | 2011/12/12 23:59

こんにちわ じむさん
試行錯誤しながらJTAG化出来ました。
じむさんの助言、助かりました。
最初JTAG TOOLで吸い出したNANDが残っていたので元に
戻せた次第です。
freebootで13604になりました。しかしそれまで日立ドライブが
1.51のCFWだったので0FWになったかと思いきや
バックアップ読めました!日立だからOKだったのかな?
あと、まだFreestyle Dashが導入出来ていません。
ぼちぼち弄っていきます。

でも未だにLinuxが起動しなかったのは今後の為にも
調べる必要がありますね。
じむさんは回路など詳しいみたいで私とはレベルが違います。
また、何かあったらお尋ねしますね。

投稿: ひろ | 2011/12/12 14:27

ひろさん、freebootが書込めたようですね。

結局、Linuxなんか使わないでもfreebootを書込めるようなスキルがあるので、「Looking for Xenon.elf or vmlinux on …」とかでLinuxの起動なんかに、もうこだわらなくたっていいんじゃないでしょうか。

これでリージョンフリーになったので、リージョンのかかったゲームも遊べるようになったわけですから。

投稿: じむ | 2011/12/11 23:55

こんにちわ
今日の作業。

8)吸い出したNANDのチェック
360 Flash Tool v0.97で吸い出したNANDを開き、bad blockの有無を確認する。
bad block無し save KV infoで KV_Info.txt を保存。

9) freebootイメージの作成
FreeBOOT ToolBox Maker V2.8.exeにorig.binを入れ
CPUキー記入後、イメージbin作成
できあがったupdflash.binはUSBメモリのrootにおく。

xell自動アップデートでNANDへの書き込み

通常電源ONで無事起動 ダッシュボード 13604になっていた。
イジェクト起動でXell画面

復活しました。でもこのあとどうしたらいいのでしょう?
Xell Linux Loaderで1番下に
Looking for Xenon.elf or vmlinux on USB/CD/DVD or user-defined file via TFTP…とあります。

投稿: ひろ | 2011/12/11 13:35

こんばんわ
1番古い、binファイルをNand.binにリネームして書き込んだら
XNand Healer GUIで読めるようになりました。

今回ファーストではなくFull NAND Imageで読み込み
xellousの書き込み、xell画面まで到達。CPUキー表示
しかしGentoo Linux起動はしません。
再度、CDに焼きなおしたんですが・・・
Fullで吸い出した場合、Gentoo Linux起動の作業は必要なのでしょうか?
bad blockは0で表示無し ただ、CBが1888から1921に変わっていました。

投稿: ひろ | 2011/12/11 02:41

ひろさん、配線を疑うならば一回全部吸い出して、それを全部上書きしてみて、さらに全部吸い出してみて一回目と二回目のイメージファイルを比べてみればいいのでは?
同じなら読み出しも、書込みも問題ないと思います。

あと、こうゆうのはどうでしょう。
バイナリーエディタで、2MBの中のCPUキーとDVDキーの書いてある場所を検索してみる。
それぞれヒットすればその場所を覚えておく。(複数あるかも)

次に新たにxenonを今度は全てのNANDを吸い出しておいて、xellousを使ってこちらもCPUキーとDVDキーをメモる。
と同時にこっちもバイナリーエディタでそれぞれのキーの場所を検索する。

前者の検索場所と、後者の検索場所が同じなら_
後者の全吸い出しイメージファイルに、前者のCPU,DVDキーを埋め込んだファイルを作り、動かなくなってしまったXBOX360へ書込んでみる。
(書込む前に一応動かないなりの全イメージ(=バックアップ)を取っておく。なんかあったときに戻せるように。)

キーの埋め込み位置が同じならば、こんな方法で改造前の状態に戻ることができるかもしれませんね。
ただ、Flashの中身が暗号化されていたり、どこかにパリティーデータを置かなければならないようならば、この案はお釈迦になるかな。

投稿: じむ | 2011/12/11 02:31

こんばんわ
ドライブはサムソンがあったので換えてみましたが、
同じでした。
最初の2MB分吸い出せてCPUキーも表示したんですが、
別のソフト、JtagTool最新版で試すと 208エラー表示出ました。
binは2MB程度だったのですべて吸い出せていないようです。
半田不良なんでしょうか?
虫眼鏡でみても基盤のプリントと中の半田は付いているように見えるのですが・・・

もしオリジナルのNANDが無いと再挑戦は無理でしょうか?
まだJTAG可能な本体は4台ほど持っておりますが・・・

投稿: ひろ | 2011/12/10 23:20

あ〜書込み治具は市販のNAND-Xってやつなんですか。
だったらFLASHへの読書の問題は関係ないですねぇ。
消去法で行くと、残るはDriveとか…。
Linuxを立ち上げるくらいなら他のXBOX360のドライブを使ってもできるはず。
別の会社のDriveを使って立ち上げてみてはどうでしょうか。

手元の先頭から2MB分だけだと確かに、元に戻すのは難しいかと思います。

XBRですか。
こちらではディスクからの起動でゲームを楽しんでいるので、XBRをインストールしたことがありません。
なので、それについてのノウハウは残念ながら持っていないんですよ。

投稿: じむ | 2011/12/10 22:53

追伸 CPUキーは所得済みです。

投稿: ひろ | 2011/12/10 16:03

どうも御返信ありがとうございます。
NAND-X(USB)にて吸い出ししております。
xellous.binの書き込みがうまくいってなかったんでしょうかね?
Linuxのペンギンマーク及びLOG画面出てきたのは
通常起動による電源ONです。
オリジナルのNANDは2MBしか保存しておりません。
元に戻すのは不可能でしょうか(もう1度やり直す事)

12/09に書いたコメで12MBのオリジナルNAND.binは
使えるのでしょうかね?
一度、nandpro usb: -e16にて消して
オリジナルNAND.binを書き込みしました。

2つのサイトでどのやり方が良いでしょうか?

投稿: ひろ | 2011/12/10 16:02

ひろさん、週末になりましたので回答をしたいと思います。

1)特にキーを押すことはなかったです。
Wikiに書いてあるとおりxellous.binの書込み後、Xellos画面が出て、CPUキーは表示されたのでしょうか?
ペンギン画面以降動きがないということですが、普通ならペンギン絵+文字(ブートLOG)がダラーとスクロールして行く場面に遭遇するのですが、それもなかったということですか?
wikiに「本体とTVをHDMI以外の方法で接続。」って書いてありますがそうなっています?
ならばxellous.binの書込みがうまく言っていないか、ブートCDがうまく焼けていないかの可能性があると思います。
どちらかと言えば前者の可能性の方が高いです。

私もやった「LPT」で行うNandの吸い出しは、データの吸い出しが不安定なので、数回繰り返し同じデータが数回吸い出せたかの多数決によって真のデータとして扱うようなっています。

2)wikiの4の項目では「First 2MB」を吸い出しています。
これはこの後5の項目で*上書き*する"xellous.bin"の元データとして吸い出しておく行為となっています。

んで上書きした"xellous.bin"での起動でキーが取得できます。
キーを取得できたので、お役御免、元に戻す行為を行います。

Linuxを立ち上げて、Nand全体のイメージを取り出したファイルで先頭部分に先ほどの元の「First 2MB」をはめ込み、また書き直すということをしています。

Linuxだと早いし、問題も少ないのでwikiでもLinuxでの作業として書かれていると思います。
だいたい2MB読むだけでも4回も取ってようやくまともなデータと判断するような「LPT」のシステムで、その数倍もの容量を書込む作業で失敗しない確率は少ないって思った方がいいです。

投稿: じむ | 2011/12/10 15:19

こんにちわ
他のサイトやり方でやってみたら
クリスマスライトになってしまいました。泣
http://www.geocities.jp/marlborof1wrc/xbox360.html
オリジナルBinも作成してXBR_Xenon_8955_1.binをxbr.bin
にリネーム 出来上がったxbr.binを書き込み。
XBR_Xenon_8955_3でないとだめなのかな?
CBは1888です。

投稿: ひろ | 2011/12/09 14:19

ひろさん、書込みどーもです。

思い出すのに時間がかかりそうなので、週末に再度ここで返答をしたいと思います。

投稿: じむ | 2011/12/08 01:19

こんにちわ 以前CFWの件でお世話になりました。
今回、Wiki
http://www39.atwiki.jp/xbox360homebrew/pages/49.html
とじむさんのこのページを参考にXenonをJTAG化しようと
実施したのですが、壁にぶち当たりました。
質問ですが
①Wikiで5の項目、nandproでxellousの書き込みまで済みました。
Gentoo Linux起動でGentooが立ち上がりません。
10分以上経過しても起動せず 
CDを挿入したまま通常起動でONしたらペンギンマークまでは出ますが、Gentoo画面は出ず、画面は黒くなります。
何かキー操作など必要なのでしょうか?
②2MBまでしかNANDは吸い出していませんが、方法を詳しく教えて頂けないでしょうか? オリジナルNANDを吸い出せば、WikiのようにGentoo Linux起動しなくてもfreebootイメージの作成まで進めるのでしょうか?
御回答よろしくお願いします。

投稿: ひろ | 2011/12/07 13:13

Sunday Gamer さん、お返事遅れまして申し訳ないです。

ネットを探ると、DVDからでなくHDDからもブートができるようなので、チャンスがあればチャレンジしたいと思います。

投稿: じむ | 2011/05/24 01:50

デュアルブートだ。すげー!!

投稿: Sunday Gamer | 2011/05/04 00:00

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 【XBOX360】LinuxでNandを書換えてみた【freeboot】:

» 【XBOX360】freebootをアップデートしてみた。【12611→12625】 [じむの(とりあえず)やってみたの巻]
Linuxしか動かなくなったXBOX360に、ゲームも立ち上がるようなfreeb [続きを読む]

受信: 2011/05/08 18:14

« 【XBOX360】ちゃんとしたNandイメージを作った | トップページ | 【XBOX360】eFuse対策を施してみた。 »