ここから本文です

Rasberry Pi3 B+とSONYのNFC(PaSoRi、RC-S380)を使用してスマートロックを作成しよ...

mat********さん

2019/3/1202:38:50

Rasberry Pi3 B+とSONYのNFC(PaSoRi、RC-S380)を使用してスマートロックを作成しようと考えています。

nfcpy(https://nfcpy.readthedocs.io/en/latest/)を利用し、NFCを動かそうとしたところで詰まってしまいました。

使用OSはRaspbian, 最新NOOBS(v.3.0.0)でインストールしたものです。
USB端子には当然NFCをつなげている状態です。

ラズパイを起動し、
以下のコマンドを順に実行しました。

sudo apt-get install bzr
cd ()
bzr branch lp:nfcpy trunk
sudo apt-get install python-usb

ここまで入力し、順調に進んだところで

sudo python examples/tagtool.pyを
実行すると

AttributeError: /usr/lib/arm-linux/gnueabihf/libcrypto.so.1.1: undefined symbol: ECDH_OpenSSL

と出て先にNFCを使えません。
調べたところlibcrypto.so.1.0.0なら動くとのことでしたが
これ単体は依存性のあるファイル?のため、モジュール(libフォルダ?)ごと
変える必要があるようでした(実際にwgetでdebianからlibcrypto1.0.0-udeb_1.0.1t-1+deb8u8_armhf.udebをDLしました)

jessieで実行しているブログは問題ないようでしたのでRaspbian自体のアップデートで
互換性がなくなったのではと思い、
JAISTのNOOBSインデックスから複数の旧NOOBSのzipファイルをDLしSDカードに
コピー、ラズパイを起動させましたが、虹色の画面で電圧不足の表示が出て止まってしまい
確認が取れていません(最新NOOBSは問題なく利用できましたのに何故、、、)

またSSL関連はローカルでNFCを使うならばそもそも使わない?様なので
nfcpy関連フォルダのtrunk/nfc/llcp/sec.pyの191、192、201行目を#にするという
方法も見つけましたが、その状態で実行すると

raise ImportError("missing usb1 module, try 'pip install libusb1'")
と出ます。
因みにpip install libusb1を実行した後も同じコメントが出力されます。

英語サイトも調べ、一通りの方法を試したつもりですが埒があかず困っています。
プログラミング等のスキルは殆どない、ただPC関連が好きな素人ですので余計にです。

お詳しい方いらっしゃいましたらご教授願います。

宜しくお願い致します。

閲覧数:
43
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

バッキーさん

2019/3/1208:05:37

順番を入れ替えて回答します。

まず、Raspberry Pi 3B+は 2018年3月にリリースされたものです。
ハードウェアがそれまでの 3B とは変わっていますので、OSの起動には 3B+用の firmwareが必要になっていて、2018年4月18日よりも古い raspbian(Stretchの比較的初期のバージョンと Jessie)は 3B+ では使用できませんよ。
(虹色の画面で電圧不足の表示がでるのはそのせいです)

参考:
"Version History - Raspbian - Wikipedia"
https://en.wikipedia.org/wiki/Raspbian#Version_history


次に、nfcpy ですが、コードの一部をコメントにすると動くようですよ。
(libcrypto.so.1.1で廃止された ECDH_OpenSSL関連を使っている nfcpyの問題なので、nfcpyが適切に対処してくれるのが望ましいのですが、、、)

詳しいことはこちらの記事の最後のほうを参考になさってください。

"ミンの日常: ubuntu18.04にlibnfc-1.7.1とnfcpy0.11インストール"
https://mwookpark.blogspot.com/2018/07/ubuntu1804libnfc-171nfcpy011...

質問した人からのコメント

2019/3/12 13:37:47

早速の回答ありがとうございます!
ファームウェアの件は知りませんでした。

nfcpyですが一部をコメントにした後、

sudo apt-get install python-pip
sudo pip install libusb1
sudo pip install pyserial

を実行しtagtool.pyを実行したら無事認識できました。

ありがとうございました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo!知恵袋カテゴリ

一覧を見る

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる