EpgRec
の編集
index.php?EpgRec
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#contents ** 準備 [#be19d941] *** PT3 [#pbfc2cee] - アンテナ接続 (PCIe コネクター側が BS/CS アンテナ端子[S]) -- &ref(PT3-Rev2-Standard-Bracket-587x144.jpg); *** スマートカードリーダ NTT-ME SCR3310-NTTCom [#g36ea766] -- &ref(NTT-ME SCR3310.jpg); *** B-CAS カード [#r93fc752] -- Yahoo オークションなどで探す ** インストール [#i6081bea] *** 必要なソフトウエア [#y178f92e] - [[Linux = Ubuntu 12.04-LTS (x86-64):http://www.ubuntulinux.jp/download/ja-remix]] - &ref(epgrec_20111001.tar.gz,center,epgrec); - &ref(epgdumpr2_20111001.tar.gz,center,epgdumpr2); - &ref(c44e16dbb0e2.zip,center,arib25); - &ref(pt1-drv_20111001.tar.gz,center,recpt1); - &ref(pt3_driver_20121119.tgz,center,pt3 ドライバー); ----> [[Source Forge:https://github.com/m-tsudo/pt3]] *** スマートカードリーダの認識 [#iea6a4f5] - スマートカードリーダにバグ回避 何も対策をせずにubuntu12.04をインストールして、SCR3310-NTTComを使おうとすると、録画に失敗する事がありますので、スマートカードリーダ関係のパッケージはバージョンを固定してインストールする必要がある。 -- もしも、pscsd等をインストールしてしまっていた場合には一度削除する $ server-admin@mythen:~$ sudo aptitude remove pcscd libpcsclite-dev libpcsclite1 libccid libpcsc-perl pcsc-tools -- 指定バージョンを入手するために aptitude のリポジトリを /etc/apt/sources.list に追加する deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe deb http://security.ubuntu.com/ubuntu maverick-security main universe deb-src http://security.ubuntu.com/ubuntu maverick-security main universe -- 指定パッケージを入手する &color(red){(パッケージのバージョンまで明示的に指定すること!)}; $ server-admin@mythen:~$ sudo apt-get update $ server-admin@mythen:~$ sudo apt-get install pcscd=1.5.5-3ubuntu2.1 libpcsclite1=1.5.5-3ubuntu2.1 libccid=1.3.11-1 pcsc-tools=1.4.16-1 -- インストール済みのパッケージの確認 server-admin@mythen:~$ sudo dpkg --list | grep "pcscd\|libpcsclite1\|libccid\|pcsc-tools" hi libccid 1.3.11-1 PC/SC driver for USB CCID smart card readers hi libpcsclite1 1.5.5-3ubuntu2.1 Middleware to access a smart card using PC/SC (library) hi pcsc-tools 1.4.16-1 Some tools to use with smart cards and PC/SC hi pcscd 1.5.5-3ubuntu2.1 Middleware to access a smart card using PC/SC (daemon side) -- バージョンを固定する為に[[wajig:http://linux.togaware.com/survivor/wajig.html]]をインストール server-admin@mythen:$ sudo apt-get install wajig -- バージョン固定する $ server-admin@mythen:~$sudo wajig hold pcscd $ server-admin@mythen:~$sudo wajig hold libpcsclite1 $ server-admin@mythen:~$sudo wajig hold libccid $ server-admin@mythen:~$sudo wajig hold pcsc-tools -- バージョン固定した結果を確認。 server-admin@mythen:~$ sudo dpkg --get-selections | grep hold libccid hold libpcsclite1 hold pcsc-tools hold pcscd hold - 正常に B-CAS カードを認識したか確認 server-admin@mythen:~$ sudo pcsc_scan PC/SC device scanner V 1.4.16 (c) 2001-2009, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.5.3 Scanning present readers... 0: SCM SCR 3310 NTTCom 00 00 Sat Dec 1 12:41:34 2012 Reader 0: SCM SCR 3310 NTTCom 00 00 Card state: Card inserted, Shared Mode, ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 + TS = 3B --> Direct Convention + T0 = F0, Y(1): 1111, K: 0 (historical bytes) TA(1) = 12 --> Fi=372, Di=2, 186 cycles/ETU 21505 bits/s at 4 MHz, fMax for Fi = 5 MHz => 26881 bits/s TB(1) = 00 --> VPP is not electrically connected TC(1) = FF --> Extra guard time: 255 (special value) TD(1) = 91 --> Y(i+1) = 1001, Protocol T = 1 ----- TA(2) = 81 --> Protocol to be used in spec mode: T=1 - Unable to change - defined by interface bytes TD(2) = B1 --> Y(i+1) = 1011, Protocol T = 1 ----- TA(3) = 7C --> IFSC: 124 TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5 TD(3) = 1F --> Y(i+1) = 0001, Protocol T = 15 - Global interface bytes following ----- TA(4) = 03 --> Clock stop: not supported - Class accepted by the card: (3G) A 5V B 3V + Historical bytes: + TCK = 99 (correct checksum) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 Japanese Chijou Digital B-CAS Card (pay TV) <---- ■ 正しく BS 赤カードを認識していることを確認 ■ *** arib25 ソフトのインストール [#o13788a4] wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip unzip c44e16dbb0e2.zip cd pt1-c44e16dbb0e2/arib25 make sudo make install *** recpt1 のインストール [#q34f3955] $ tar -zxvf pt1-drv_20111001.tar.gz $ cd pt1-7662d0ecd74b/recpt1 - pt1_dev.h を編集して PT3 を指定 (オリジナルは PT1 になっている) -- 編集済ファイル ----> &ref(pt1_dev.h); -- 編集内容 server-admin@mythen:~$ cat Downloads/pt1-7662d0ecd74b/recpt1/pt1_dev.h /* -*- tab-width: 4; indent-tabs-mode: nil -*- */ #ifndef _PT1_DEV_H_ #define _PT1_DEV_H_ char *bsdev[NUM_BSDEV] = { "/dev/pt3video1", "/dev/pt3video0", "/dev/pt3video5", "/dev/pt3video4", "/dev/pt3video9", "/dev/pt3video8", "/dev/pt3video13", "/dev/pt3video12" }; char *isdb_t_dev[NUM_ISDB_T_DEV] = { "/dev/pt3video2", "/dev/pt3video3", "/dev/pt3video6", "/dev/pt3video7", "/dev/pt3video10", "/dev/pt3video11", "/dev/pt3video14", "/dev/pt3video15" }; 以下は変更なし $ ./autogen.sh $ ./configure --enable-b25 $ make clean $ make $ sudo make install *** [[pt3 driver:https://github.com/m-tsudo/pt3]] のインストール [#q34f3955] <ドライバインストール時の注意事項>~ Ubuntu 10.10 からは標準ドライバ(DVB版)が使われるようになったらしいのですが、 以前より使われているchardev版の方を利用します。 $ sudo echo "blacklist earth-pt1" >> /etc/modprobe.d/blacklist.conf $ git clone https://github.com/m-tsudo/pt3.git $ cd pt3/ $ git log $ make clean ; make $ sudo make install *** 再起動して PT3 カードが正しく認識されていることを確認 [#p700cafe] $ server-admin@mythen:~$ ls -la /dev/pt* | grep video crw-rw-rw- 1 root video 249, 0 11月 24 09:11 /dev/pt3video0 crw-rw-rw- 1 root video 249, 1 11月 24 09:11 /dev/pt3video1 crw-rw-rw- 1 root video 249, 2 11月 24 09:11 /dev/pt3video2 crw-rw-rw- 1 root video 249, 3 11月 24 09:11 /dev/pt3video3 *** 録画試験 [#z81d4940] - まずここで実際の録画ファイルが再生できることを確認することが重要 - エラーがあればログが出るので原因を見つけやすいので - 自分は &color(red){アンテナ分配器が不良品で信号レベルが低い!}; ことをここで発見した server-admin@mythen:~$ recpt1 --b25 --strip 27 20 test.ts using B25... enable B25 strip pid = 3882 C/N = -nandB Recording... Recorded 21sec *** epgrecのインストール [#eafc9d02] - 必要なパッケージのインストール sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli mysql-server php5-mysql - epgdumpr2 のインストール (tsからepgデータを取得するコマンド) cd epgdumpr2 make clean ; make sudo cp epgdump /usr/local/bin - at.denyにApache実行ユーザ(www-data) が含まれていたら削除 -- 録画管理ソフトは Apacheの実行ユーザとして at コマンドを使って録画用のタスクを登録する。 -- at.denyにApache実行ユーザが書かれていた場合、これが実行できない。 -- /etc/at.deny に www-data が指定されていたら削除する。 - epgrec 用の DB の用意 mysql -uroot -p <--- mysqladmin を入力 -- DB name = epgrec -- user = epgrec -- pass = epgrecadmin server-admin@mythen:/$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 67 Server version: 5.5.41-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> drop database epgrec; Query OK, 0 rows affected (0.00 sec) mysql> create database epgrec; Query OK, 1 row affected (0.00 sec) mysql> grant all on epgrec.* to epgrec@localhost identified by 'epgrecadmin'; Query OK, 0 rows affected (0.02 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) - epgrec を /raid_vol/www/html/ の下に展開し、/raid_vol/www/html/pukiwiki にリンクする lrwxrwxrwx 1 root root 26 11月 18 16:08 epgrec -> /raid_vol/www/html/epgrec/ - epgrec の設定 -- 基本的な設定は web からできる (初回は自動で設定画面、 次回以降は左上の [環境設定]) -- 詳細の設定、動作の変更は 直接 php ファイルを編集する -- 全体の設定は config.php -- 録画フォーマットの設定ファイルは do-record.sh に追記可能 (mode0 は Full TS) --- config.php ---> &ref(config.php); --- do-record.sh ---> &ref(do-record.sh); - 録画ファイル名の指定 -- ファイル名の文字数を max 120文字に制限 -- %%~ を ー に変換 (対象文字列は CVS フォーマットで指定、なのでダブルクオートで囲ってみた)%% %PROCESS($TITLE$,$LIMIT$,120,$REPLACE$,"~","ー")%_%TYPE%_%CH% -- ~(にょろ)は実は二種類あったりする。単純に変換出来ないので下(番組名に変換してハードリンクを貼った際に「~」という文字があると Regza で検索エラーになる問題)にある強制文字変換のコード追加で対処することに方針変更 ** 動作確認済のイメージ [#qc6f4515] *** Ubuntu 18.04 (MVC) [#oe7d7cf5] -- &ref(epgrec_20201014.tgz); ** 運用 [#a024bb76] *** [[epgrec home:http://www.mda.or.jp/epgrec/index.php/%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8]] [#q6e5f5fb] *** epgrec で録画ファイルが削除できなくなったら [#i22bde10] epgrec で録画済ファイルを削除しようとしたときに、”Error過去の録画予約です”と表示され、削除できなくなることがある。 - データベースに接続 server-admin@mythen:~$ mysql -u root -p Enter password: <--- mysqladmin Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 185 Server version: 5.5.28-0ubuntu0.12.04.2 (Ubuntu) - epgrec 用のデーターベースを選択 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | epgrec | | gallery3 | | mysql | | performance_schema | | test | +--------------------+ 6 rows in set (0.00 sec) mysql> use epgrec Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed - 過去の録画で終了フラグが立っていないものを探す mysql> select id, complete from Recorder_reserveTbl where endtime < now(); +----+----------+ | id | complete | +----+----------+ | 2 | 0 | | 7 | 1 | | 17 | 0 | | 35 | 1 | +----+----------+ 7 rows in set (0.00 sec) - 該当するレコードの終了フラグを立てる mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update Recorder_reserveTbl set complete = 1 where id =2; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update Recorder_reserveTbl set complete = 1 where id =17; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> commit; Query OK, 0 rows affected (0.00 sec) - ステータスが変更されたことを確認 mysql> select id, complete from Recorder_reserveTbl where endtime < now(); +----+----------+ | id | complete | +----+----------+ | 2 | 1 | | 7 | 1 | | 17 | 1 | | 35 | 1 | | 36 | 1 | | 37 | 1 | | 43 | 1 | +----+----------+ 7 rows in set (0.00 sec) mysql> \q; Bye - あとは、epgrec の録画済一覧画面から通常通り削除する。 *** 番組名に変換してハードリンクを貼った際に「~」という文字があると Regza で検索エラーになる問題 [#l6e0107c] - [[問題の本質は 「~」 が二種類あり、コードが混乱していること:http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5]] - [[全角チルダとニ混同されているレ例が多い:http://ja.wikipedia.org/wiki/%E3%83%81%E3%83%AB%E3%83%80#.E5.85.A8.E8.A7.92.E3.83.81.E3.83.AB.E3.83.80]] - /raid_vol/www/html/epgrec/Reservation.class.php を編集して 「~」 を別の文字に置き換える $filename = preg_replace("/\x{301c}/u","_", trim($filename) ); // U+301C WAVEDASH $filename = preg_replace("/\x{ff5e}/u","_", trim($filename) ); // U+FF5E FULLWIDTH TIL -- http://d.hatena.ne.jp/akikoto/20110918/1316422430 -- http://d.hatena.ne.jp/aoshimak/20110418 *** [[epgrec で録画ファイルが削除できなくなったら2:http://www.dazzlingworld2.com/post_6500.html]] [#gc608f55] - 録画予約一覧のリストで削除したい番組を選択して、[変更]を押して録画ID を確認する。 - コマンドラインから recomplete.php [録画ID]を実行する server-admin@mythen:~$ cd /raid_vol/www/html/epgrec/ server-admin@mythen:/raid_vol/www/html/epgrec$ ./recomplete.php [録画ID] *** トップページにアクセスしても真っ白で何も表示されない [#q5e910e8] 何らかの理由でエラーが発生しているがphp.ini内のerror_reportingディレクティブにnoneなどが設定されているためにエラー表示が行われない状態です。ディストリビューションの一部(CentOSあたりがそう)はerror_reportingの設定をnoneにしているようです。まず、php.iniを探し(普通は/etc/php/などの下にありCLI、CGI、Apacheモジュールのそれぞれで異なるファイルが使われるので注意してください)error_reportingの右辺をAllなどに変更してWebサーバーを再起動させましょう。 その上でトップページにアクセスすればエラーメッセージが表示されるはずです。その表示からなにかわかるでしょう。 なお、error_reportingをnoneに設定するのは公開Webサーバーでエラーが表示されると見かけが悪いという理由によります(サーバー用のCentOSがそうしているのはたぶんそのため)。epgrecのようにパブリックには公開されていないWebサーバでnoneにする意味はなく、トラブルの原因をわからなくする素敵な役割しかありませんのでnoneにするのはやめた方がいいでしょう。 ** 障害対策 [#x233ca83] *** 録画エラーになった場合の確認項目 ⇒ &color(red){BCAS カードのリードエラーを確認するべき}; [#r414da98] munakata@mythen:~ (master #)$ sudo pcsc_scan PC/SC device scanner V 1.4.22 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.8.10 Using reader plug'n play mechanism Scanning present readers... 0: NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader [Vendor Interface] 00 00 Mon Jan 2 15:39:39 2017 Reader 0: NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader [Vendor Interface] 00 00 Card state: Card inserted, Shared Mode, ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 + TS = 3B --> Direct Convention + T0 = F0, Y(1): 1111, K: 0 (historical bytes) TA(1) = 12 --> Fi=372, Di=2, 186 cycles/ETU 21505 bits/s at 4 MHz, fMax for Fi = 5 MHz => 26881 bits/s TB(1) = 00 --> VPP is not electrically connected TC(1) = FF --> Extra guard time: 255 (special value) TD(1) = 91 --> Y(i+1) = 1001, Protocol T = 1 ----- TA(2) = 81 --> Protocol to be used in spec mode: T=1 - Unable to change - defined by interface bytes TD(2) = B1 --> Y(i+1) = 1011, Protocol T = 1 ----- TA(3) = 7C --> IFSC: 124 TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5 TD(3) = 1F --> Y(i+1) = 0001, Protocol T = 15 - Global interface bytes following ----- TA(4) = 03 --> Clock stop: not supported - Class accepted by the card: (3G) A 5V B 3V + Historical bytes: + TCK = 99 (correct checksum) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 Japanese Chijou Digital B-CAS Card (pay TV) - この表示が出ない場合には、カードの接触などを確認する。 カードリーダーの劣化も考えられる。 *** Soft CAS の試行 ---- 現状成功していない。 [#i49df0d6] - softcas を倭族のサイトからダウンロード munakata@mythen:~/Download (master #)$ wget http://www.wazoku.net/softcas.zip --2017-01-02 12:59:58-- http://www.wazoku.net/softcas.zip www.wazoku.net (www.wazoku.net) をDNSに問いあわせています... 216.34.181.97 www.wazoku.net (www.wazoku.net)|216.34.181.97|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 31446 (31K) [application/octet-stream] `softcas.zip' に保存中 100% [================================================================================ ====================================>] 31,446 181KB/s 時間 0.2s 2017-01-02 12:59:59 (181 KB/s) - `softcas.zip' へ保存完了 [31446/31446] - 解凍 munakata@mythen:~/Download (master #)$ unzip softcas.zip Archive: softcas.zip inflating: softcas/Crypto.cpp inflating: softcas/Crypto.h inflating: softcas/Decoder.h inflating: softcas/Decoder-ECM.cpp inflating: softcas/Global.h inflating: softcas/Keyset.cpp inflating: softcas/Keyset.h inflating: softcas/softcas.sln inflating: softcas/softcas.vcxproj inflating: softcas/softcas.vcxproj.filters creating: softcas/Win32/ inflating: softcas/Win32/winscard.dll inflating: softcas/Win32/winscard.ini inflating: softcas/winscard.cpp creating: softcas/x64/ inflating: softcas/x64/winscard.dll inflating: softcas/x64/winscard.ini - 内容確認 munakata@mythen:~/Download (master #)$ cd softcas munakata@mythen:~/Download/softcas (master #)$ ls -l 合計 80 -rw-rw-r-- 1 munakata munakata 13209 4月 13 2016 Crypto.cpp -rw-rw-r-- 1 munakata munakata 296 4月 13 2016 Crypto.h -rw-rw-r-- 1 munakata munakata 1917 4月 13 2016 Decoder-ECM.cpp -rw-rw-r-- 1 munakata munakata 331 4月 13 2016 Decoder.h -rw-rw-r-- 1 munakata munakata 410 4月 13 2016 Global.h -rw-rw-r-- 1 munakata munakata 1084 4月 13 2016 Keyset.cpp -rw-rw-r-- 1 munakata munakata 486 9月 12 12:25 Keyset.h drwxrwxr-x 2 munakata munakata 4096 9月 12 12:27 Win32 -rw-rw-r-- 1 munakata munakata 1235 4月 13 2016 softcas.sln -rw-rw-r-- 1 munakata munakata 7834 9月 11 21:28 softcas.vcxproj -rw-rw-r-- 1 munakata munakata 1429 4月 13 2016 softcas.vcxproj.filters -rw-rw-r-- 1 munakata munakata 13080 9月 12 02:41 winscard.cpp drwxrwxr-x 2 munakata munakata 4096 9月 12 12:27 x64 - Makefile と winscard.cpp を追加ダウンロード munakata@mythen:~/Download/softcas (master #)$ wget -O Makefile http://pastebin.com/raw/FQdSixkB --2017-01-02 13:06:06-- http://pastebin.com/raw/FQdSixkB pastebin.com (pastebin.com) をDNSに問いあわせています... 104.20.208.21, 104.20.209.21 pastebin.com (pastebin.com)|104.20.208.21|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 特定できません [text/plain] `Makefile' に保存中 [ <=> ] 364 --.-K/s 時間 0s 2017-01-02 13:06:07 (21.5 MB/s) - `Makefile' へ保存終了 [364] munakata@mythen:~/Download/softcas (master #)$ wget -O winscard.cpp http://pastebin.com/raw/5144Ah9g --2017-01-02 13:04:33-- http://pastebin.com/raw/5144Ah9g pastebin.com (pastebin.com) をDNSに問いあわせています... 104.20.208.21, 104.20.209.21 pastebin.com (pastebin.com)|104.20.208.21|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 特定できません [text/plain] `winscard.cpp' に保存中 [ <=> ] 3,463 --.-K/s 時間 0s 2017-01-02 13:04:33 (142 MB/s) - `winscard.cpp' へ保存終了 [3463] - winscrad.cpp の編集 munakata@mythen:~/Download/softcas (master #)$ sed -i "/LONG SCardGetStatusChange/s/LPSCARD_READERSTATE_A/LPSCARD_READERSTATE/g" winscard.cpp munakata@mythen:~/Download/softcas (master #)$ sed -i "s/SCARD_IO_REQUEST g_rgSCardT1Pci;/const SCARD_IO_REQUEST g_rgSCardT1Pci= { SCARD_PROTOCOL_T1, sizeof(SCARD_IO_REQUEST) };/g" winscard.cpp - windows 用の ZIP ファイルを[[入手:https://bitly.com/KBSCl9+]] (Keys.cpp, Keys.h を入手するため) -- &ref(softcas.zip); - windows 用の ZIP ファイルを展開 munakata@mythen:~/Download/softcas (master #)$ cp ../softcas_win/Keys.h . munakata@mythen:~/Download/softcas (master #)$ cp ../softcas_win/Keys.cpp . - 改行コードの変換(CRLF → LF) munakata@mythen:~/Download/softcas (master #)$ nkf -Lu --overwrite *.cpp munakata@mythen:~/Download/softcas (master #)$ nkf -Lu --overwrite *.h munakata@mythen:~/Download/softcas (master #)$ nkf -Lu --overwrite Makefile - ディレクトリーの中味 (&ref(softcas.tgz);) munakata@mythen:~/Download/softcas (master #)$ ls -l 合計 80 -rw-rw-r-- 1 munakata munakata 13209 4月 13 2016 Crypto.cpp -rw-rw-r-- 1 munakata munakata 296 4月 13 2016 Crypto.h -rw-rw-r-- 1 munakata munakata 1917 4月 13 2016 Decoder-ECM.cpp -rw-rw-r-- 1 munakata munakata 331 4月 13 2016 Decoder.h -rw-rw-r-- 1 munakata munakata 410 4月 13 2016 Global.h -rw------- 1 munakata munakata 1834 1月 2 13:08 Keys.cpp -rw------- 1 munakata munakata 447 1月 2 13:08 Keys.h -rw-rw-r-- 1 munakata munakata 1084 4月 13 2016 Keyset.cpp -rw-rw-r-- 1 munakata munakata 486 9月 12 12:25 Keyset.h -rw-rw-r-- 1 munakata munakata 364 1月 2 13:06 Makefile drwxrwxr-x 2 munakata munakata 4096 9月 12 12:27 Win32 -rw-rw-r-- 1 munakata munakata 1235 4月 13 2016 softcas.sln -rw-rw-r-- 1 munakata munakata 7834 9月 11 21:28 softcas.vcxproj -rw-rw-r-- 1 munakata munakata 1429 4月 13 2016 softcas.vcxproj.filters -rw-rw-r-- 1 munakata munakata 3517 1月 2 13:07 winscard.cpp drwxrwxr-x 2 munakata munakata 4096 9月 12 12:27 x64 - make がエラーになり先に進めない状況 munakata@mythen:~/Download/softcas (master #)$ make g++ -g -fPIC -O2 -I /usr/include/PCSC -c -o Keys.o Keys.cpp Keys.cpp:11:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:19:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:27:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:35:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:43:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:51:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:59:1: error: too many initializers for ‘const Keyset_t’ }; ^ make: *** [Keys.o] エラー 1 Keys.cppのname("WOWOW"等)をcomment outすることでコンパイルできた。 *** &color(red){突然予約画面(番組表)が真っ白になってしまう問題}; [#m3848237] - 過去何回か経験があるが、何かの拍子に画面が真っ白になり何も表示されなくなる事があった。 - php.ini の error_reporting で明示的にエラー表示を抑制しているわけではない事は確認。 - デバッグ文を入れて調査した結果、 &color(red){ /raid_vol/www/html/epgrec/settings/bs_channel.php の中の array の閉じかっこが無くなていた事が原因と判明}; - php の仕様か、apache の仕様かわからないが、php の構文エラーがあると何も出力しなくなることが真っ白くなる理由だった *** sudo autoremove で pt3 ドライバーが勝手にアンインストールされたかも(2020-10-20) [#ne4a800e] /etc/kernel/prerm.d/dkms: dkms: removing: pt3_drv 0.0.1 (4.15.0-118-generic) (x86_64) -------- Uninstall Beginning -------- Module: pt3_drv Version: 0.0.1 Kernel: 4.15.0-118-generic (x86_64) ------------------------------------- Status: Before uninstall, this module version was ACTIVE on this kernel. pt3_drv.ko: - Uninstallation - Deleting from: /lib/modules/4.15.0-118-generic/updates/dkms/ - Original module - No original module was found for this module on this kernel. - Use the dkms install command to reinstall any previous module version. depmod... DKMS: uninstall completed. - とりあえず(リブートするまで?)デバイスは見えているので、このまま放置する [KGB] munakata:~$ ls -la /dev/pt* | grep video crw-rw-rw- 1 root video 238, 0 9月 26 10:11 /dev/pt3video0 crw-rw-rw- 1 root video 238, 1 9月 26 10:11 /dev/pt3video1 crw-rw-rw- 1 root video 238, 2 9月 26 10:11 /dev/pt3video2 crw-rw-rw- 1 root video 238, 3 9月 26 10:11 /dev/pt3video3 crw-rw-rw- 1 root video 237, 0 9月 26 10:11 /dev/pt3video4 crw-rw-rw- 1 root video 237, 1 9月 26 10:11 /dev/pt3video5 crw-rw-rw- 1 root video 237, 2 9月 26 10:11 /dev/pt3video6 crw-rw-rw- 1 root video 237, 3 9月 26 10:11 /dev/pt3video7 - リブートしてもデバイスは見えているので問題は無さそう[KGB] munakata:~$ date [KGB] munakata:~$ date 2020年 10月 28日 水曜日 09:33:11 JST [KGB] munakata:~$ ls -la /dev/pt* | grep video crw-rw-rw- 1 root video 238, 0 10月 27 12:14 /dev/pt3video0 crw-rw-rw- 1 root video 238, 1 10月 27 12:14 /dev/pt3video1 crw-rw-rw- 1 root video 238, 2 10月 27 12:14 /dev/pt3video2 crw-rw-rw- 1 root video 238, 3 10月 27 12:14 /dev/pt3video3 crw-rw-rw- 1 root video 237, 0 10月 27 12:14 /dev/pt3video4 crw-rw-rw- 1 root video 237, 1 10月 27 12:14 /dev/pt3video5 crw-rw-rw- 1 root video 237, 2 10月 27 12:14 /dev/pt3video6 crw-rw-rw- 1 root video 237, 3 10月 27 12:14 /dev/pt3video7
タイムスタンプを変更しない
#contents ** 準備 [#be19d941] *** PT3 [#pbfc2cee] - アンテナ接続 (PCIe コネクター側が BS/CS アンテナ端子[S]) -- &ref(PT3-Rev2-Standard-Bracket-587x144.jpg); *** スマートカードリーダ NTT-ME SCR3310-NTTCom [#g36ea766] -- &ref(NTT-ME SCR3310.jpg); *** B-CAS カード [#r93fc752] -- Yahoo オークションなどで探す ** インストール [#i6081bea] *** 必要なソフトウエア [#y178f92e] - [[Linux = Ubuntu 12.04-LTS (x86-64):http://www.ubuntulinux.jp/download/ja-remix]] - &ref(epgrec_20111001.tar.gz,center,epgrec); - &ref(epgdumpr2_20111001.tar.gz,center,epgdumpr2); - &ref(c44e16dbb0e2.zip,center,arib25); - &ref(pt1-drv_20111001.tar.gz,center,recpt1); - &ref(pt3_driver_20121119.tgz,center,pt3 ドライバー); ----> [[Source Forge:https://github.com/m-tsudo/pt3]] *** スマートカードリーダの認識 [#iea6a4f5] - スマートカードリーダにバグ回避 何も対策をせずにubuntu12.04をインストールして、SCR3310-NTTComを使おうとすると、録画に失敗する事がありますので、スマートカードリーダ関係のパッケージはバージョンを固定してインストールする必要がある。 -- もしも、pscsd等をインストールしてしまっていた場合には一度削除する $ server-admin@mythen:~$ sudo aptitude remove pcscd libpcsclite-dev libpcsclite1 libccid libpcsc-perl pcsc-tools -- 指定バージョンを入手するために aptitude のリポジトリを /etc/apt/sources.list に追加する deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe deb http://security.ubuntu.com/ubuntu maverick-security main universe deb-src http://security.ubuntu.com/ubuntu maverick-security main universe -- 指定パッケージを入手する &color(red){(パッケージのバージョンまで明示的に指定すること!)}; $ server-admin@mythen:~$ sudo apt-get update $ server-admin@mythen:~$ sudo apt-get install pcscd=1.5.5-3ubuntu2.1 libpcsclite1=1.5.5-3ubuntu2.1 libccid=1.3.11-1 pcsc-tools=1.4.16-1 -- インストール済みのパッケージの確認 server-admin@mythen:~$ sudo dpkg --list | grep "pcscd\|libpcsclite1\|libccid\|pcsc-tools" hi libccid 1.3.11-1 PC/SC driver for USB CCID smart card readers hi libpcsclite1 1.5.5-3ubuntu2.1 Middleware to access a smart card using PC/SC (library) hi pcsc-tools 1.4.16-1 Some tools to use with smart cards and PC/SC hi pcscd 1.5.5-3ubuntu2.1 Middleware to access a smart card using PC/SC (daemon side) -- バージョンを固定する為に[[wajig:http://linux.togaware.com/survivor/wajig.html]]をインストール server-admin@mythen:$ sudo apt-get install wajig -- バージョン固定する $ server-admin@mythen:~$sudo wajig hold pcscd $ server-admin@mythen:~$sudo wajig hold libpcsclite1 $ server-admin@mythen:~$sudo wajig hold libccid $ server-admin@mythen:~$sudo wajig hold pcsc-tools -- バージョン固定した結果を確認。 server-admin@mythen:~$ sudo dpkg --get-selections | grep hold libccid hold libpcsclite1 hold pcsc-tools hold pcscd hold - 正常に B-CAS カードを認識したか確認 server-admin@mythen:~$ sudo pcsc_scan PC/SC device scanner V 1.4.16 (c) 2001-2009, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.5.3 Scanning present readers... 0: SCM SCR 3310 NTTCom 00 00 Sat Dec 1 12:41:34 2012 Reader 0: SCM SCR 3310 NTTCom 00 00 Card state: Card inserted, Shared Mode, ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 + TS = 3B --> Direct Convention + T0 = F0, Y(1): 1111, K: 0 (historical bytes) TA(1) = 12 --> Fi=372, Di=2, 186 cycles/ETU 21505 bits/s at 4 MHz, fMax for Fi = 5 MHz => 26881 bits/s TB(1) = 00 --> VPP is not electrically connected TC(1) = FF --> Extra guard time: 255 (special value) TD(1) = 91 --> Y(i+1) = 1001, Protocol T = 1 ----- TA(2) = 81 --> Protocol to be used in spec mode: T=1 - Unable to change - defined by interface bytes TD(2) = B1 --> Y(i+1) = 1011, Protocol T = 1 ----- TA(3) = 7C --> IFSC: 124 TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5 TD(3) = 1F --> Y(i+1) = 0001, Protocol T = 15 - Global interface bytes following ----- TA(4) = 03 --> Clock stop: not supported - Class accepted by the card: (3G) A 5V B 3V + Historical bytes: + TCK = 99 (correct checksum) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 Japanese Chijou Digital B-CAS Card (pay TV) <---- ■ 正しく BS 赤カードを認識していることを確認 ■ *** arib25 ソフトのインストール [#o13788a4] wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip unzip c44e16dbb0e2.zip cd pt1-c44e16dbb0e2/arib25 make sudo make install *** recpt1 のインストール [#q34f3955] $ tar -zxvf pt1-drv_20111001.tar.gz $ cd pt1-7662d0ecd74b/recpt1 - pt1_dev.h を編集して PT3 を指定 (オリジナルは PT1 になっている) -- 編集済ファイル ----> &ref(pt1_dev.h); -- 編集内容 server-admin@mythen:~$ cat Downloads/pt1-7662d0ecd74b/recpt1/pt1_dev.h /* -*- tab-width: 4; indent-tabs-mode: nil -*- */ #ifndef _PT1_DEV_H_ #define _PT1_DEV_H_ char *bsdev[NUM_BSDEV] = { "/dev/pt3video1", "/dev/pt3video0", "/dev/pt3video5", "/dev/pt3video4", "/dev/pt3video9", "/dev/pt3video8", "/dev/pt3video13", "/dev/pt3video12" }; char *isdb_t_dev[NUM_ISDB_T_DEV] = { "/dev/pt3video2", "/dev/pt3video3", "/dev/pt3video6", "/dev/pt3video7", "/dev/pt3video10", "/dev/pt3video11", "/dev/pt3video14", "/dev/pt3video15" }; 以下は変更なし $ ./autogen.sh $ ./configure --enable-b25 $ make clean $ make $ sudo make install *** [[pt3 driver:https://github.com/m-tsudo/pt3]] のインストール [#q34f3955] <ドライバインストール時の注意事項>~ Ubuntu 10.10 からは標準ドライバ(DVB版)が使われるようになったらしいのですが、 以前より使われているchardev版の方を利用します。 $ sudo echo "blacklist earth-pt1" >> /etc/modprobe.d/blacklist.conf $ git clone https://github.com/m-tsudo/pt3.git $ cd pt3/ $ git log $ make clean ; make $ sudo make install *** 再起動して PT3 カードが正しく認識されていることを確認 [#p700cafe] $ server-admin@mythen:~$ ls -la /dev/pt* | grep video crw-rw-rw- 1 root video 249, 0 11月 24 09:11 /dev/pt3video0 crw-rw-rw- 1 root video 249, 1 11月 24 09:11 /dev/pt3video1 crw-rw-rw- 1 root video 249, 2 11月 24 09:11 /dev/pt3video2 crw-rw-rw- 1 root video 249, 3 11月 24 09:11 /dev/pt3video3 *** 録画試験 [#z81d4940] - まずここで実際の録画ファイルが再生できることを確認することが重要 - エラーがあればログが出るので原因を見つけやすいので - 自分は &color(red){アンテナ分配器が不良品で信号レベルが低い!}; ことをここで発見した server-admin@mythen:~$ recpt1 --b25 --strip 27 20 test.ts using B25... enable B25 strip pid = 3882 C/N = -nandB Recording... Recorded 21sec *** epgrecのインストール [#eafc9d02] - 必要なパッケージのインストール sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli mysql-server php5-mysql - epgdumpr2 のインストール (tsからepgデータを取得するコマンド) cd epgdumpr2 make clean ; make sudo cp epgdump /usr/local/bin - at.denyにApache実行ユーザ(www-data) が含まれていたら削除 -- 録画管理ソフトは Apacheの実行ユーザとして at コマンドを使って録画用のタスクを登録する。 -- at.denyにApache実行ユーザが書かれていた場合、これが実行できない。 -- /etc/at.deny に www-data が指定されていたら削除する。 - epgrec 用の DB の用意 mysql -uroot -p <--- mysqladmin を入力 -- DB name = epgrec -- user = epgrec -- pass = epgrecadmin server-admin@mythen:/$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 67 Server version: 5.5.41-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> drop database epgrec; Query OK, 0 rows affected (0.00 sec) mysql> create database epgrec; Query OK, 1 row affected (0.00 sec) mysql> grant all on epgrec.* to epgrec@localhost identified by 'epgrecadmin'; Query OK, 0 rows affected (0.02 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) - epgrec を /raid_vol/www/html/ の下に展開し、/raid_vol/www/html/pukiwiki にリンクする lrwxrwxrwx 1 root root 26 11月 18 16:08 epgrec -> /raid_vol/www/html/epgrec/ - epgrec の設定 -- 基本的な設定は web からできる (初回は自動で設定画面、 次回以降は左上の [環境設定]) -- 詳細の設定、動作の変更は 直接 php ファイルを編集する -- 全体の設定は config.php -- 録画フォーマットの設定ファイルは do-record.sh に追記可能 (mode0 は Full TS) --- config.php ---> &ref(config.php); --- do-record.sh ---> &ref(do-record.sh); - 録画ファイル名の指定 -- ファイル名の文字数を max 120文字に制限 -- %%~ を ー に変換 (対象文字列は CVS フォーマットで指定、なのでダブルクオートで囲ってみた)%% %PROCESS($TITLE$,$LIMIT$,120,$REPLACE$,"~","ー")%_%TYPE%_%CH% -- ~(にょろ)は実は二種類あったりする。単純に変換出来ないので下(番組名に変換してハードリンクを貼った際に「~」という文字があると Regza で検索エラーになる問題)にある強制文字変換のコード追加で対処することに方針変更 ** 動作確認済のイメージ [#qc6f4515] *** Ubuntu 18.04 (MVC) [#oe7d7cf5] -- &ref(epgrec_20201014.tgz); ** 運用 [#a024bb76] *** [[epgrec home:http://www.mda.or.jp/epgrec/index.php/%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8]] [#q6e5f5fb] *** epgrec で録画ファイルが削除できなくなったら [#i22bde10] epgrec で録画済ファイルを削除しようとしたときに、”Error過去の録画予約です”と表示され、削除できなくなることがある。 - データベースに接続 server-admin@mythen:~$ mysql -u root -p Enter password: <--- mysqladmin Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 185 Server version: 5.5.28-0ubuntu0.12.04.2 (Ubuntu) - epgrec 用のデーターベースを選択 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | epgrec | | gallery3 | | mysql | | performance_schema | | test | +--------------------+ 6 rows in set (0.00 sec) mysql> use epgrec Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed - 過去の録画で終了フラグが立っていないものを探す mysql> select id, complete from Recorder_reserveTbl where endtime < now(); +----+----------+ | id | complete | +----+----------+ | 2 | 0 | | 7 | 1 | | 17 | 0 | | 35 | 1 | +----+----------+ 7 rows in set (0.00 sec) - 該当するレコードの終了フラグを立てる mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update Recorder_reserveTbl set complete = 1 where id =2; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update Recorder_reserveTbl set complete = 1 where id =17; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> commit; Query OK, 0 rows affected (0.00 sec) - ステータスが変更されたことを確認 mysql> select id, complete from Recorder_reserveTbl where endtime < now(); +----+----------+ | id | complete | +----+----------+ | 2 | 1 | | 7 | 1 | | 17 | 1 | | 35 | 1 | | 36 | 1 | | 37 | 1 | | 43 | 1 | +----+----------+ 7 rows in set (0.00 sec) mysql> \q; Bye - あとは、epgrec の録画済一覧画面から通常通り削除する。 *** 番組名に変換してハードリンクを貼った際に「~」という文字があると Regza で検索エラーになる問題 [#l6e0107c] - [[問題の本質は 「~」 が二種類あり、コードが混乱していること:http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5]] - [[全角チルダとニ混同されているレ例が多い:http://ja.wikipedia.org/wiki/%E3%83%81%E3%83%AB%E3%83%80#.E5.85.A8.E8.A7.92.E3.83.81.E3.83.AB.E3.83.80]] - /raid_vol/www/html/epgrec/Reservation.class.php を編集して 「~」 を別の文字に置き換える $filename = preg_replace("/\x{301c}/u","_", trim($filename) ); // U+301C WAVEDASH $filename = preg_replace("/\x{ff5e}/u","_", trim($filename) ); // U+FF5E FULLWIDTH TIL -- http://d.hatena.ne.jp/akikoto/20110918/1316422430 -- http://d.hatena.ne.jp/aoshimak/20110418 *** [[epgrec で録画ファイルが削除できなくなったら2:http://www.dazzlingworld2.com/post_6500.html]] [#gc608f55] - 録画予約一覧のリストで削除したい番組を選択して、[変更]を押して録画ID を確認する。 - コマンドラインから recomplete.php [録画ID]を実行する server-admin@mythen:~$ cd /raid_vol/www/html/epgrec/ server-admin@mythen:/raid_vol/www/html/epgrec$ ./recomplete.php [録画ID] *** トップページにアクセスしても真っ白で何も表示されない [#q5e910e8] 何らかの理由でエラーが発生しているがphp.ini内のerror_reportingディレクティブにnoneなどが設定されているためにエラー表示が行われない状態です。ディストリビューションの一部(CentOSあたりがそう)はerror_reportingの設定をnoneにしているようです。まず、php.iniを探し(普通は/etc/php/などの下にありCLI、CGI、Apacheモジュールのそれぞれで異なるファイルが使われるので注意してください)error_reportingの右辺をAllなどに変更してWebサーバーを再起動させましょう。 その上でトップページにアクセスすればエラーメッセージが表示されるはずです。その表示からなにかわかるでしょう。 なお、error_reportingをnoneに設定するのは公開Webサーバーでエラーが表示されると見かけが悪いという理由によります(サーバー用のCentOSがそうしているのはたぶんそのため)。epgrecのようにパブリックには公開されていないWebサーバでnoneにする意味はなく、トラブルの原因をわからなくする素敵な役割しかありませんのでnoneにするのはやめた方がいいでしょう。 ** 障害対策 [#x233ca83] *** 録画エラーになった場合の確認項目 ⇒ &color(red){BCAS カードのリードエラーを確認するべき}; [#r414da98] munakata@mythen:~ (master #)$ sudo pcsc_scan PC/SC device scanner V 1.4.22 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.8.10 Using reader plug'n play mechanism Scanning present readers... 0: NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader [Vendor Interface] 00 00 Mon Jan 2 15:39:39 2017 Reader 0: NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader [Vendor Interface] 00 00 Card state: Card inserted, Shared Mode, ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 + TS = 3B --> Direct Convention + T0 = F0, Y(1): 1111, K: 0 (historical bytes) TA(1) = 12 --> Fi=372, Di=2, 186 cycles/ETU 21505 bits/s at 4 MHz, fMax for Fi = 5 MHz => 26881 bits/s TB(1) = 00 --> VPP is not electrically connected TC(1) = FF --> Extra guard time: 255 (special value) TD(1) = 91 --> Y(i+1) = 1001, Protocol T = 1 ----- TA(2) = 81 --> Protocol to be used in spec mode: T=1 - Unable to change - defined by interface bytes TD(2) = B1 --> Y(i+1) = 1011, Protocol T = 1 ----- TA(3) = 7C --> IFSC: 124 TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5 TD(3) = 1F --> Y(i+1) = 0001, Protocol T = 15 - Global interface bytes following ----- TA(4) = 03 --> Clock stop: not supported - Class accepted by the card: (3G) A 5V B 3V + Historical bytes: + TCK = 99 (correct checksum) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 Japanese Chijou Digital B-CAS Card (pay TV) - この表示が出ない場合には、カードの接触などを確認する。 カードリーダーの劣化も考えられる。 *** Soft CAS の試行 ---- 現状成功していない。 [#i49df0d6] - softcas を倭族のサイトからダウンロード munakata@mythen:~/Download (master #)$ wget http://www.wazoku.net/softcas.zip --2017-01-02 12:59:58-- http://www.wazoku.net/softcas.zip www.wazoku.net (www.wazoku.net) をDNSに問いあわせています... 216.34.181.97 www.wazoku.net (www.wazoku.net)|216.34.181.97|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 31446 (31K) [application/octet-stream] `softcas.zip' に保存中 100% [================================================================================ ====================================>] 31,446 181KB/s 時間 0.2s 2017-01-02 12:59:59 (181 KB/s) - `softcas.zip' へ保存完了 [31446/31446] - 解凍 munakata@mythen:~/Download (master #)$ unzip softcas.zip Archive: softcas.zip inflating: softcas/Crypto.cpp inflating: softcas/Crypto.h inflating: softcas/Decoder.h inflating: softcas/Decoder-ECM.cpp inflating: softcas/Global.h inflating: softcas/Keyset.cpp inflating: softcas/Keyset.h inflating: softcas/softcas.sln inflating: softcas/softcas.vcxproj inflating: softcas/softcas.vcxproj.filters creating: softcas/Win32/ inflating: softcas/Win32/winscard.dll inflating: softcas/Win32/winscard.ini inflating: softcas/winscard.cpp creating: softcas/x64/ inflating: softcas/x64/winscard.dll inflating: softcas/x64/winscard.ini - 内容確認 munakata@mythen:~/Download (master #)$ cd softcas munakata@mythen:~/Download/softcas (master #)$ ls -l 合計 80 -rw-rw-r-- 1 munakata munakata 13209 4月 13 2016 Crypto.cpp -rw-rw-r-- 1 munakata munakata 296 4月 13 2016 Crypto.h -rw-rw-r-- 1 munakata munakata 1917 4月 13 2016 Decoder-ECM.cpp -rw-rw-r-- 1 munakata munakata 331 4月 13 2016 Decoder.h -rw-rw-r-- 1 munakata munakata 410 4月 13 2016 Global.h -rw-rw-r-- 1 munakata munakata 1084 4月 13 2016 Keyset.cpp -rw-rw-r-- 1 munakata munakata 486 9月 12 12:25 Keyset.h drwxrwxr-x 2 munakata munakata 4096 9月 12 12:27 Win32 -rw-rw-r-- 1 munakata munakata 1235 4月 13 2016 softcas.sln -rw-rw-r-- 1 munakata munakata 7834 9月 11 21:28 softcas.vcxproj -rw-rw-r-- 1 munakata munakata 1429 4月 13 2016 softcas.vcxproj.filters -rw-rw-r-- 1 munakata munakata 13080 9月 12 02:41 winscard.cpp drwxrwxr-x 2 munakata munakata 4096 9月 12 12:27 x64 - Makefile と winscard.cpp を追加ダウンロード munakata@mythen:~/Download/softcas (master #)$ wget -O Makefile http://pastebin.com/raw/FQdSixkB --2017-01-02 13:06:06-- http://pastebin.com/raw/FQdSixkB pastebin.com (pastebin.com) をDNSに問いあわせています... 104.20.208.21, 104.20.209.21 pastebin.com (pastebin.com)|104.20.208.21|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 特定できません [text/plain] `Makefile' に保存中 [ <=> ] 364 --.-K/s 時間 0s 2017-01-02 13:06:07 (21.5 MB/s) - `Makefile' へ保存終了 [364] munakata@mythen:~/Download/softcas (master #)$ wget -O winscard.cpp http://pastebin.com/raw/5144Ah9g --2017-01-02 13:04:33-- http://pastebin.com/raw/5144Ah9g pastebin.com (pastebin.com) をDNSに問いあわせています... 104.20.208.21, 104.20.209.21 pastebin.com (pastebin.com)|104.20.208.21|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 特定できません [text/plain] `winscard.cpp' に保存中 [ <=> ] 3,463 --.-K/s 時間 0s 2017-01-02 13:04:33 (142 MB/s) - `winscard.cpp' へ保存終了 [3463] - winscrad.cpp の編集 munakata@mythen:~/Download/softcas (master #)$ sed -i "/LONG SCardGetStatusChange/s/LPSCARD_READERSTATE_A/LPSCARD_READERSTATE/g" winscard.cpp munakata@mythen:~/Download/softcas (master #)$ sed -i "s/SCARD_IO_REQUEST g_rgSCardT1Pci;/const SCARD_IO_REQUEST g_rgSCardT1Pci= { SCARD_PROTOCOL_T1, sizeof(SCARD_IO_REQUEST) };/g" winscard.cpp - windows 用の ZIP ファイルを[[入手:https://bitly.com/KBSCl9+]] (Keys.cpp, Keys.h を入手するため) -- &ref(softcas.zip); - windows 用の ZIP ファイルを展開 munakata@mythen:~/Download/softcas (master #)$ cp ../softcas_win/Keys.h . munakata@mythen:~/Download/softcas (master #)$ cp ../softcas_win/Keys.cpp . - 改行コードの変換(CRLF → LF) munakata@mythen:~/Download/softcas (master #)$ nkf -Lu --overwrite *.cpp munakata@mythen:~/Download/softcas (master #)$ nkf -Lu --overwrite *.h munakata@mythen:~/Download/softcas (master #)$ nkf -Lu --overwrite Makefile - ディレクトリーの中味 (&ref(softcas.tgz);) munakata@mythen:~/Download/softcas (master #)$ ls -l 合計 80 -rw-rw-r-- 1 munakata munakata 13209 4月 13 2016 Crypto.cpp -rw-rw-r-- 1 munakata munakata 296 4月 13 2016 Crypto.h -rw-rw-r-- 1 munakata munakata 1917 4月 13 2016 Decoder-ECM.cpp -rw-rw-r-- 1 munakata munakata 331 4月 13 2016 Decoder.h -rw-rw-r-- 1 munakata munakata 410 4月 13 2016 Global.h -rw------- 1 munakata munakata 1834 1月 2 13:08 Keys.cpp -rw------- 1 munakata munakata 447 1月 2 13:08 Keys.h -rw-rw-r-- 1 munakata munakata 1084 4月 13 2016 Keyset.cpp -rw-rw-r-- 1 munakata munakata 486 9月 12 12:25 Keyset.h -rw-rw-r-- 1 munakata munakata 364 1月 2 13:06 Makefile drwxrwxr-x 2 munakata munakata 4096 9月 12 12:27 Win32 -rw-rw-r-- 1 munakata munakata 1235 4月 13 2016 softcas.sln -rw-rw-r-- 1 munakata munakata 7834 9月 11 21:28 softcas.vcxproj -rw-rw-r-- 1 munakata munakata 1429 4月 13 2016 softcas.vcxproj.filters -rw-rw-r-- 1 munakata munakata 3517 1月 2 13:07 winscard.cpp drwxrwxr-x 2 munakata munakata 4096 9月 12 12:27 x64 - make がエラーになり先に進めない状況 munakata@mythen:~/Download/softcas (master #)$ make g++ -g -fPIC -O2 -I /usr/include/PCSC -c -o Keys.o Keys.cpp Keys.cpp:11:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:19:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:27:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:35:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:43:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:51:1: error: too many initializers for ‘const Keyset_t’ }; ^ Keys.cpp:59:1: error: too many initializers for ‘const Keyset_t’ }; ^ make: *** [Keys.o] エラー 1 Keys.cppのname("WOWOW"等)をcomment outすることでコンパイルできた。 *** &color(red){突然予約画面(番組表)が真っ白になってしまう問題}; [#m3848237] - 過去何回か経験があるが、何かの拍子に画面が真っ白になり何も表示されなくなる事があった。 - php.ini の error_reporting で明示的にエラー表示を抑制しているわけではない事は確認。 - デバッグ文を入れて調査した結果、 &color(red){ /raid_vol/www/html/epgrec/settings/bs_channel.php の中の array の閉じかっこが無くなていた事が原因と判明}; - php の仕様か、apache の仕様かわからないが、php の構文エラーがあると何も出力しなくなることが真っ白くなる理由だった *** sudo autoremove で pt3 ドライバーが勝手にアンインストールされたかも(2020-10-20) [#ne4a800e] /etc/kernel/prerm.d/dkms: dkms: removing: pt3_drv 0.0.1 (4.15.0-118-generic) (x86_64) -------- Uninstall Beginning -------- Module: pt3_drv Version: 0.0.1 Kernel: 4.15.0-118-generic (x86_64) ------------------------------------- Status: Before uninstall, this module version was ACTIVE on this kernel. pt3_drv.ko: - Uninstallation - Deleting from: /lib/modules/4.15.0-118-generic/updates/dkms/ - Original module - No original module was found for this module on this kernel. - Use the dkms install command to reinstall any previous module version. depmod... DKMS: uninstall completed. - とりあえず(リブートするまで?)デバイスは見えているので、このまま放置する [KGB] munakata:~$ ls -la /dev/pt* | grep video crw-rw-rw- 1 root video 238, 0 9月 26 10:11 /dev/pt3video0 crw-rw-rw- 1 root video 238, 1 9月 26 10:11 /dev/pt3video1 crw-rw-rw- 1 root video 238, 2 9月 26 10:11 /dev/pt3video2 crw-rw-rw- 1 root video 238, 3 9月 26 10:11 /dev/pt3video3 crw-rw-rw- 1 root video 237, 0 9月 26 10:11 /dev/pt3video4 crw-rw-rw- 1 root video 237, 1 9月 26 10:11 /dev/pt3video5 crw-rw-rw- 1 root video 237, 2 9月 26 10:11 /dev/pt3video6 crw-rw-rw- 1 root video 237, 3 9月 26 10:11 /dev/pt3video7 - リブートしてもデバイスは見えているので問題は無さそう[KGB] munakata:~$ date [KGB] munakata:~$ date 2020年 10月 28日 水曜日 09:33:11 JST [KGB] munakata:~$ ls -la /dev/pt* | grep video crw-rw-rw- 1 root video 238, 0 10月 27 12:14 /dev/pt3video0 crw-rw-rw- 1 root video 238, 1 10月 27 12:14 /dev/pt3video1 crw-rw-rw- 1 root video 238, 2 10月 27 12:14 /dev/pt3video2 crw-rw-rw- 1 root video 238, 3 10月 27 12:14 /dev/pt3video3 crw-rw-rw- 1 root video 237, 0 10月 27 12:14 /dev/pt3video4 crw-rw-rw- 1 root video 237, 1 10月 27 12:14 /dev/pt3video5 crw-rw-rw- 1 root video 237, 2 10月 27 12:14 /dev/pt3video6 crw-rw-rw- 1 root video 237, 3 10月 27 12:14 /dev/pt3video7
テキスト整形のルールを表示する
添付ファイル:
epgrec_20201014.tgz
8件
[
詳細
]
softcas.zip
445件
[
詳細
]
pt1-drv_20111001.tar.gz
20件
[
詳細
]
epgdumpr2_20111001.tar.gz
24件
[
詳細
]
NTT-ME SCR3310.jpg
75件
[
詳細
]
pt1_dev.h
36件
[
詳細
]
config.php
29件
[
詳細
]
softcas.tgz
48件
[
詳細
]
c44e16dbb0e2.zip
23件
[
詳細
]
pt3_driver_20121119.tgz
21件
[
詳細
]
epgrec_20111001.tar.gz
27件
[
詳細
]
PT3-Rev2-Standard-Bracket-587x144.jpg
42件
[
詳細
]