#author("2020-10-28T09:44:34+09:00","","")
#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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS