« Mac OS X で ugbabtc をビルド | Main | Qube の FAN 交換しようかな »

Mac OS X で ugbabtc をビルド (2)

塩崎さんに Mac OS X 用のパッチを取り込んでいただきました。
どうもありがとうございました。
libusb をインストールした状態で下記手順によりインストールできました。
mkdir src
cd src
curl -O http://gba.imou.to/dists/ugbabtc/ugbabtc-0.6.tar.bz2
tar jxf ugbabtc-0.6.tar.bz2
cd ugbabtc-0.6
curl -O http://optimize.ath.cx/bootcable/src/btcons_usb.zip
unzip btcons_usb.zip
make -f GNUmakefile
sudo cp gobj/ugbabtc /usr/local/bin

きちんとビルドできているかどうか,Flash2Advance 256Mbit でテストしてみました。
結果,きちんと動作していることが確認できました。
※各テスト実行前には,GBA の電源を切り,ブートケーブルを抜き差ししないとダメでした。

ROM の読み出しテスト
ugbabtc -R -r xxx.gba
wait for boot of GBA ...
done.
wait for init of fwlib ...
done.
MASK rom (size 8388608 bytes) found.
read ROM from GBA to xxx.gba ...
     8388608 / 8388608
done.

バックアップデータの読み出し
ugbabtc -B -r xxx.sav
wait for boot of GBA ...
done.
wait for init of fwlib ...
done.
SRAM256K (size 32768 bytes, block size 4096 bytes) found.
read from backup device to xxx.sav ...
       32768 / 32768
done.

ROM の書き込み
ugbabtc -R -w xxx.gba
wait for boot of GBA ...
done.
wait for init of fwlib ...
done.
FLASH rom (size 33554432 bytes) found.
write xxx.gba to ROM ...
     8388608 / 8388608
done.

バックアップデータの書き込み
ugbabtc -B -w xxx.sav
wait for boot of GBA ...
done.
wait for init of fwlib ...
done.
SRAM2M (size 262144 bytes, block size 4096 bytes) found.
write xxx.sav to backup device ...
       32768 / 32768
done.

プログラムのブート
ugbabtc -H colorDemo.gba
wait for boot of GBA ...
done.

|

« Mac OS X で ugbabtc をビルド | Main | Qube の FAN 交換しようかな »

Comments

こんにちは、私はあなたのugbabtc の指示を含む問題を有している。私がMac のOS X 10.3 年の下で編集することを試みるときこれは私が得るものにである:

[kyoko:~/src/ugbabtc-0.6] timb% make -f GNUmakefile
make: libusb-config: Command not found
make: libusb-config: Command not found
cc -I. -DUSBLOW_HEADER_FILE=\"usblow_libusb.h\" -Wall -g -O -o gobj/ugbabtc.o -c ugbabtc.c
In file included from ugbabtc.h:82,
from ugbabtc.c:45:
usblow_libusb.h:32:17: usb.h: No such file or directory
In file included from ugbabtc.h:82,
from ugbabtc.c:45:
usblow_libusb.h: In function `btc_usblow_send_to_cmd':
usblow_libusb.h:48: warning: implicit declaration of function `usb_bulk_write'
usblow_libusb.h: In function `btc_usblow_recv_from_data':
usblow_libusb.h:83: warning: implicit declaration of function `usb_bulk_read'
ugbabtc.c: In function `ugbabtc_hio_main':
ugbabtc.c:952: warning: passing arg 4 of `hio_getstring' from incompatible pointer type
ugbabtc.c:963: warning: passing arg 4 of `hio_getstring' from incompatible pointer type
ugbabtc.c:1038: warning: passing arg 3 of `btclow_read_fd' from incompatible pointer type
make: *** [gobj/ugbabtc.o] Error 1

考えか。ありがとう
(Sorry for the poor Japanese, I cannot write a lot and had to use a machine translator to help me.)

Posted by: Timothy Brown | 2004.05.19 at 06:29 AM

Didn't have libusb installed. DOH! >.<
New error:
[kyoko:~/src/ugbabtc-0.6] timb% make -f GNUmakefile
cc -g -O -o gobj/ugbabtc gobj/ugbabtc.o gobj/usblow_libusb.o gobj/main.o -L/usr/local/lib -lusb -framework IOKit
ld: /usr/local/lib/libusb.a(darwin.o) illegal reference to symbol: _CFRunLoopAddSource defined in indirectly referenced dynamic library /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
make: *** [gobj/ugbabtc] Error 1

Thank You.

Posted by: Timothy Brown | 2004.05.20 at 07:49 AM

Fix:
cc -g -O -o gobj/ugbabtc gobj/ugbabtc.o gobj/usblow_libusb.o gobj/main.o -L/usr/local/lib -lusb -framework IOKit -framework CoreFoundation
Yay! ^^;

Posted by: Timothy Brown | 2004.05.20 at 10:09 AM

最新の状況を。

まず,libusb の CVS バージョンをインストールします。
参考:http://home.r00.itscom.net/top/gbcube/optusb4macosx.html

次に,環境変数 PATH に /usr/local/bin が入っていることを確認し
もし入っていなければ入れます(bash だと export PATH=/usr/local/bin:$PATH)。
その後作業を行います。
入手する btcons_usb ソースは,今日現在の最新版だと
http://optimize.ath.cx/bootcable/src/btcons_usb_v3541.zip
のようです。

まとめ:
curl -O http://gba.imou.to/dists/ugbabtc/ugbabtc-0.6.tar.bz2
tar jxvf ugbabtc-0.6.tar.bz2
cd ugbabtc-0.6
curl -O http://optimize.ath.cx/bootcable/src/btcons_usb_v3541.zip
unzip btcons_usb_v3541.zip
export PATH=/usr/local/bin:$PATH
make -f GNUmakefile
sudo cp gobj/ugbabtc /usr/local/bin

Posted by: cube | 2004.06.19 at 02:00 PM

ビルドログはこんな感じ。

make -f GNUmakefile
mkdir gobj
cc -I. -DUSBLOW_HEADER_FILE=\"usblow_libusb.h\" -Wall -g -O -I/usr/local/include -o gobj/ugbabtc.o -c ugbabtc.c
ugbabtc.c: In function `ugbabtc_hio_main':
ugbabtc.c:952: warning: passing arg 4 of `hio_getstring' from incompatible pointer type
ugbabtc.c:963: warning: passing arg 4 of `hio_getstring' from incompatible pointer type
ugbabtc.c:1038: warning: passing arg 3 of `btclow_read_fd' from incompatible pointer type
cc -I. -DUSBLOW_HEADER_FILE=\"usblow_libusb.h\" -Wall -g -O -I/usr/local/include -o gobj/usblow_libusb.o -c usblow_libusb.c
cc -I. -DUSBLOW_HEADER_FILE=\"usblow_libusb.h\" -Wall -g -O -I/usr/local/include -o gobj/main.o -c main.c
cc -g -O -o gobj/ugbabtc gobj/ugbabtc.o gobj/usblow_libusb.o gobj/main.o -L/usr/local/lib -lusb -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation

Posted by: cube | 2004.06.19 at 02:07 PM

だめだ...。
-H オプションでブートさせようとすると
wait for boot of GBA ...
done.
ugbabtc: wait for boot: Operation not supported
というエラーが出る。

Posted by: cube | 2004.06.19 at 02:29 PM

-d オプションを使った際に usb_set_debug(3) を呼ぶようにしたらなんか見えてきた。
wait for boot of GBA ...
USB error: usb_bulk_write: interface used without being claimed
done.
ugbabtc: wait for boot: Operation not supported
なので,usb_open() した後,usb_claim_interface() していないのが原因と思われる。
(初期 optusb と同じ問題)

Posted by: cube | 2004.06.19 at 03:11 PM

直りました。

usblow_libusb.c にある ugbabtc_open() の最後に
usb_claim_interface() の呼び出しを行えば OK です。

--- ここから ---
*** usblow_libusb.c.orig Fri Nov 14 18:53:03 2003
--- usblow_libusb.c Sat Jun 19 15:10:31 2004
***************
*** 138,142 ****
--- 138,146 ----
if (h->h_usbdev == NULL)
return -1;

+ /* activate interface #0 */
+ if (usb_claim_interface(h->h_usbdev, 0) != 0)
+ return -1;
+
return 0;
}
--- ここまで ---

Posted by: cube | 2004.06.19 at 03:18 PM

ほかのソースを見ると != 0 は使わないスタイルのようなので
こっちがいいかな。

*** usblow_libusb.c.orig Fri Nov 14 18:53:03 2003
--- usblow_libusb.c Sat Jun 19 15:19:33 2004
***************
*** 138,142 ****
--- 138,146 ----
if (h->h_usbdev == NULL)
return -1;

+ /* activate interface #0 */
+ if (usb_claim_interface(h->h_usbdev, 0))
+ return -1;
+
return 0;
}

Posted by: cube | 2004.06.19 at 03:35 PM

The comments to this entry are closed.

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/11543/88621

Listed below are links to weblogs that reference Mac OS X で ugbabtc をビルド (2):

» Mac OS X で ugbabtc をビルド (3) [cube tech]
塩崎さんの ugbabtc を最新の libusb を使ってビルドするとうまく動かない事が判明。 CVS 版 libusb をインストールした状態で, usb_claim_interface() を呼び出す処理が必要。 [Read More]

Tracked on 2004.06.19 at 05:01 PM

« Mac OS X で ugbabtc をビルド | Main | Qube の FAN 交換しようかな »