LinuxでSoftCASとwpa supplicantを併用する
参考 https://gist.github.com/tyage/3d201580549bc84e24cd
LinuxでSoftCASを使う方法が公開されていたがlibpcscliteを書き換えるのでwpa supplicantと併用できない。恐らくwpa supplicantはWiFiだけでなくSIMカードを使った通信も制御していてpcscliteが必要なのだと思われる。
今回は併用することを目指す。
なおlibyakisobaというものもあるらしいが詳細不明。恐らくやりたいことは同じだと思われる
ざっくりとした説明 リネームした改変版libpcsclite.so.1.0.0と対応した.pcをインストールし、libarib25でlibpcscliteでなくそちらを指定する
1,上記URLを参考にして改変版libpcsclite.so.1.0.0をビルドする。
2,ビルド作業中に改変した/usr/include/PCSC/pcsclite.hを元に戻す
libarib25でも使うため
3,リネームしインストールする
パスはマシンによって違う。findでlibpcsclite.soがインストールされているところを見つけておく。
今回はRaspberry Piのパスで進める。名前は任意。
% sudo cp libpcsclite.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libpcsckai.so.1.0.0
4,pcファイルを作成する
libpcsclite.pcを参考にして作成する
% cd /usr/lib/arm-linux-gnueabihf/pkgconfig
% sudo cp libpcsclite.pc libpcscka.pc
% sudoedit libpcsckai.pc
10行目の
Libs: -L${libdir} -lpcsclite
を
Libs: -L${libdir} -lpcsckai
とする。
5,libarib25のMakefileを編集する
% cd path/to/libarib25/src
% editor Makefile
10,11行目の
PCSC_CFLAGS ?= `pkg-config libpcsclite --cflags`
PCSC_LDLIBS ?= `pkg-config libpcsclite --libs`
を
PCSC_CFLAGS ?= `pkg-config libpcsckai --cflags`
PCSC_LDLIBS ?= `pkg-config libpcsckai --libs`
とする。
6,ビルドしてリンクされているか確認する
% cd ..
% make
% ldd src/libarib25.so
/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0xb6fa4000)
libpcsckai.so => /usr/lib/arm-linux-gnueabihf/libpcsckai.so (0xb6f8c000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6ebf000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6e4e000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6e26000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6cf6000)
/lib/ld-linux-armhf.so.3 (0xb6fc1000)
下記の部分ですが、間違っていませんか?
sudo cp libpcsclite.pc libpcscka.pc
% sudoedit libpcsckai.pc