libPasoriのlpdump.cを改造して固有IDを引っ張る

いるもの

  • linux
    • 今回は Turbolinux 10 server を使用
  • libpasori
  • SONY PaSoRi RC-S320
    • リーダ
  • libusb
    • 大抵のlinuxディストリビューションには標準でrpmインストール済み
  • Perl, gcc
    • 説明しませんw

lpdump.c

  • パッケージ確認
    rpm -qa | grep libusb
  • USB デバイス起動
    /etc/rc.d/init.d/murasaki start
    • turboservice や service、/etc/rc.d/rc3.d などで常時起動にしておく
  • PaSoRiのUSBデバイスのパーミッション設定
    vi /etc/udev/rules.d/pasori2.rules
    SUBSYSTEM=="usb_device", SYSFS{idVendor}=="054c", SYSFS{idProduct}=="01bb", MODE="0666"
    • root権限で作成
  • libPaSoRi ダウンロード、展開
    wget http://keihanna.dl.sourceforge.jp/libpasori/20457/libpasori02.tar.bz2
    bzip2 -d libpasori02.tar.bz2
    tar xvf libpasori02.tar
    cd libpasori02/src
  • libpasori02/src/lpdump.c を改造
    // 206行目から
      if(f){
      //  show_idminfo(f->IDm); //コメントアウト
      //  enum_service(f);      //コメントアウト
        printf("# card IDm = ");
        mydump(f->IDm,8);
        printf("\n# card PMm = ");
        mydump(f->PMm,8);
        printf("\n");
      }
    // IDm と PMm だけ表示して終了するように改造
  • コンパイル
    ./buildline-bsd.sh
  • できあがった lpdump を使用する

つぎは