LinuxでSoftCAS入れるとWifi使えなくなるやつの対策
追記
なんかツイッターで叩かれたので一応言っておきますが、自己責任かつSoftCASで復号するのは無料放送だけにしてください。
そもそもB-CASカードをカードリーダーに刺してts抜きしたってどっちも規約違反なので同じことです。
https://www.b-cas.co.jp/support/bcascard/public/contract/triple.html
第8条(禁止事項)
- 第1条のカードの使用目的に反する機器(例えば著作権保護に対応していない機器)に、このカードを使用することはできません。
当初、録画サーバーでWifi使わないし別に構わないかと思い、libpcsclite.so.1.0.0をそのまま置き換えていたのですが、どうやらKVMもこれを使っているようで仮想マシンが起動できなくなってしまったので対策することにしました。
libarib25をコンパイルする際にソースをいじり、使うライブラリをlibpcsclite.so.1.0.0から変更し、SoftCASでコンパイルした別の名前のライブラリを使わせるようにして共存できるようにします。そのライブラリの名前を慣習的にlibpcsckai.soとしているようです。
別サイトではlibarib25のMakefileの修正を行う方法をとっていましたが、どうやらMakefileからCMakeListsに移行したようで、その方法が適用できませんでした。
調べたら5chで対策方法を見つけたのでメモです。
まず本物のlibpcsclite.so.1.0.0がどこにあるか調べます。
1 2 | $ find /lib/ -name libpcsclite.so.1.0.0 /lib/x86_64-linux-gnu/libpcsclite.so.1.0.0 |
/lib/x86_64-linux-gnuのなかにあるのが確認できました。
SoftCASのビルド
1 2 3 | $ sed -i "/LONG SCardGetStatusChange/s/LPSCARD_READERSTATE_A/LPSCARD_READERSTATE/g" winscard.cpp $ sed -i "s/SCARD_IO_REQUEST g_rgSCardT1Pci;/const SCARD_IO_REQUEST g_rgSCardT1Pci = { SCARD_PROTOCOL_T1, sizeof(SCARD_IO_REQUEST) };/g" winscard.cpp $ make |
これでlibpcsclite.so.1.0.0(改造済み)が出来上がります。
出来上がった改造版のそれをlibpcsckai.soにリネームし、/lib/x86_64-linux-gnu/にコピーします。
1 | $ sudo cp libpcsclite.so.1.0.0 /lib/x86_64-linux-gnu/libpcsckai.so |
pkgconfigの設定ファイルを作成します
1 2 3 4 5 6 7 | $ cd /lib/x86_64-linux-gnu/pkgconfig $ sudo cp libpcsclite.pc libpcsckai.pc $ sudo nano libpcsckai.pc Libs: -L${libdir} -lpcsclite を Libs: -L${libdir} -lpcsckai に書き換え |
libarib25導入 手順は5chのコピーです
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ git clone https://github.com/stz2012/libarib25.git $ cd libarib25 $ nano CMakeLists.txt set(PCSC_CFLAGS "pkg-config libpcsckai --cflags") set(PCSC_LIBS "pkg-config libpcsckai --libs") の2行を先頭行「cmake_minimum_required(VERSION 2.8.5)」の後に追加 set(WITH_PCSC_PACKAGE "libpcsckai" CACHE STRING "pkg-config package name for PC/SC") の「libpcsclite」を「libpcsckai」とし、保存する $ nano cmake/FindPCSC.cmake この中にも「libpcsclite」があったので「libpcsckai」とし、保存する $ cmake . $ make $ sudo make install |
最近のコメント