Piece

MacOSXでP/ECEにアプリ転送

前文

AQUAPLUSが一昔前に出していた携帯端末P/ECE、開発環境やデバイスドライバの対応がWindows(公式ではXP,2000,98)のみなのですが、筆者が最近MacBook Proばかり触っていてWindows起動するのが面倒なので、Mac向けの開発環境を用意しようという試み。
linuxでp/eace使うをもとにBSDベースのMacOSXでやるので、セットアップのコマンドは変わりますがLinuxでも動きます。
ちなみにWindows7,8,10対応は以下のいずれかの情報をご参照ください。

環境

MacBook Pro 2017 (MacOS High Sierra 10.13.2)
HyperDrive Hub for USB-C(USB-Aポート取り出し)

接続確認

まずはUSB接続して、認識されているか確認(USBハブの種類や接続ポートによって若干結果違うと思います)

$ system_profiler SPUSBDataType
(不要部分省略)
            PIECE PME-001:

              Product ID: 0x1000
              Vendor ID: 0x0e19
              Version: 1.00
              Speed: Up to 12 Mb/sec
              Manufacturer: OeRSTED, Inc.
              Location ID: 0x14320000 / 19
              Current Available (mA): 500
              Current Required (mA): 100
              Extra Operating Current (mA): 0

アプリケーション→ユーティリティ→システム情報を起動して、ハードウェア→USBでも見れます。

セットアップ

linuxでp/eace使うで公開されているLinux用isdそのままだといくらか不具合があったので、以下リポジトリで改修したものを使います(@autch さん @sawanaoyuki さんご協力ありがとうございます!)。クローンまたはダウンロードしてください。
https://github.com/zurachu/isd_for_linux

ビルドにはlibusb-1.0系が必要です。筆者はパッケージ管理が容易なようHomebrewでインストールしましたが、公式の.tar.bzかGitHubリポジトリを落としてきてビルドするなり、任意のやり方でどうぞ。

全コマンド

$ brew install libusb
$ git clone https://github.com/zurachu/isd_for_linux.git
$ cd isd_for_linux
# cmake でビルドする場合
$ brew install cmake
$ mkdir -p build && cd build
$ cmake ../
$ make
# autoconf でビルドする場合
$ brew install autoconf
$ autoreconf -i
$ ./configure
$ make

実行

$ ./isd -c

でエラー等出なければ接続成功。
あとはツールのusage見てください。

Linux向け補足

USBアクセスするには、スーパーユーザで実行するか、udevファイルを適用する必要があります。
https://github.com/zurachu/isd_for_linux/blob/master/90-piece-me.rules

できないこと

  • 本家isdの全機能を搭載している訳ではありませんし、コマンド体系も異なります。
  • ドライバを書いている訳ではないので、Wineを使ったところで、P/ECEと通信するWindows用ソフトをそのまま使うことはできません。同じようにlibusbを使う形で書き換えるか、いっそ通信ライブラリ(ism〜())をlibusb使って丸ごと移植して、それとリンクするかですね。

後書き

コンパイラやリソース変換ツールはWineで動かせるのではということで、また今度。

参考文献