ラベル pt2 の投稿を表示しています。 すべての投稿を表示
ラベル pt2 の投稿を表示しています。 すべての投稿を表示

2019年6月8日土曜日

2018年10月28日日曜日

カーネルアップデート時のドライバーモジュールアップデートの自動化

2018 Dec. 31.
2018 Dec. 23.
2018 Nov. 14.
2018 Oct. 28.

【TVチューナー PT2 の例】

dkmsパッケージインストール

# apt update && apt install dkms

ソースファイル配置

$ cd PT2/DRIVER/SOURCE/driver/
$ make clean
$ sudo cp -r ./* /usr/src/pt1-17b4f7b5dccb/

dkms設定

/usr/src/pt1-17b4f7b5dccb/dkms.conf を次の内容で作成する。
PACKAGE_NAME="pt1"
PACKAGE_VERSION="17b4f7b5dccb"
CLEAN="make clean"
MAKE="make"
BUILT_MODULE_NAME="pt1_drv"
DEST_MODULE_LOCATION="/kernel/drivers/video/"
AUTOINSTALL="YES"
 

ドライバーインストール

"# make install"でインストールされたファイルを削除する。
  PT2/DRIVER/SOURCE/driver/Makefileに記述された "install: $(TARGET)"セクションの
  install -m 644 $(TARGET) /lib/modules/`uname -r`/kernel/drivers/video
  でインストールされた
  /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko
  を削除する。
 
# dkms install -m pt1 -v 17b4f7b5dccb 
 

インストール確認

# dkms status | grep pt1
pt1, 17b4f7b5dccb, 4.15.0-38-generic, x86_64: installed

ドライバーファイルの配置場所
 /lib/modules/`uname -r`/updates/dkms/pt1_drv.ko 
 

ドライバ読み込み確認

$ lsmod | grep pt1_drv
$ ls -l /dev/pt1*

ドライバ読み込み

# modprobe pt1_drv
 

アンインストール

# dkms uninstall -m pt1 -v 17b4f7b5dccb
 

ソースパッケージの登録削除

# dkms remove -m pt1 -v 17b4f7b5dccb --all

2018年5月19日土曜日

pt2/recpt1でのBS102の録画コマンド

2018 May 19.


101チャンネルの102プログラムを指定する。
$ recpt1 --b25 --strip --sid 102 101 SECONDS OUTFILE.ts

2016年11月26日土曜日

epgrec UNA インストール

2019 Nov. 02.
2019 Oct. 22.
2019 Oct. 20.
2019 Oct. 17.
2018 Sep. 15.
2018 Sep. 09.
2018 Sep. 08.
2017 Feb. 05.
2016 Nov. 26.

pt2, recpt1をインストール


FFMPEG インストール

# apt install ffmpeg

httpサーバー、mysql、phpをインストール

nginx + mysql + php こちらのページを参照

lampインストール
  # tasksel
      lamp を選択してapache2 mysql phpをインストール

atをインストール

# apt install at

ユーザー設定等

/etc/group に www-dataがなければ追加する

/etc/at.deny から www-data を削除する

  # sed -i 's/www-data//g' /etc/at.deny

www-dataのログインシェルを(/usr/sbin/nologin から)/bin/bash にする
 

PHP設定

関連パッケージインストール
 PHP6以前
      # apt  install php-mbstring php-xml

 PHP7
      # apt  install php-mbstring php-xml php7.2-mysql

php.inoファイルの編集
     Apacheで動くPHPの php.ini は /etc/phpDIR/apache2/php.ini にある。
     コマンドラインで動くPHPの php.ini は /etc/phpDIR/cli/php.ini にある。
  FastCGI版の PHPの php.ini は /etc/phpDIR/fpm/php.ini にある。


  php.ini のパスの確認
    次の1行の内容の/var/www/html/phpinfo.phpファイルを作成する
      <?php phpinfo(); ?>

    http://EPGREC-SERVER/phpinfo.php でPHPの設定状況を表示し、
    php.iniのパスを確認する。
     Loaded Configuration File  /etc/php/PATH/php.ini

  /etc/php/PATH/php.ini を編集する
    php.ini の disable_functionsを無効にする。
      ;disable_functions =
      (行頭にセミコロンを付けるとコメント行になる) 


    php.ini の timezoneを"Asia/Tokyo"に設定する。
        ( hydrocul.github.io/wiki/blog/2013/0625-php-ini-location-ubuntu.html )
      ;date.timezone =       設定前
      date.timezone = "Asia/Tokyo" 設定後

# service  php-fpm restart
# service HTTP-SERVER restart

mysql設定

sql-modeの指定をしない(strict制約をしない)。sql_mode=''
・書き出し先ディレクトリ制約をしない。secure-file-priv = ""
 
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 ↓
[mysqld]
sql_mode=''
secure-file-priv = ""


# systemctl restart mysql.service


epgrecデータベース作成

  $ mysql -p -u root
  mysql> create database epgrec_una;
  mysql> grant all on epgrec_una.* to epgrec_una@"%" identified by 'パスワード';
  mysql> grant file on *.* to epgrec_una@"%" IDENTIFIED BY 'パスワード';
  mysql> flush privileges;
  mysql> quit

epgrec UNA用epgdump インストール

epgrec UNA用epgdump ダウンロード
 epgrec UNA用epgdump 160127版 www1.axfc.net/u/3608680?key=UNAUNA

$ cd YOUR/DOWNLOAD/DIR
$ tar zvxf epgdumpUNA160127.tar.gz
$ cd epgdump
$ make
$ sudo  make install
 

確認
 recpt1から出力したTSファイルから番組表を取得
 (16はチャンネル番号なので適当に。100は録画秒数)
    $ recpt1 --b25 --strip 16 100 16.ts
    $ epgdump 16 16.ts tv16.xml -xml
 xmlファイルの作成を確認
    $ cat tv16.xml

epgrec UNA インストール 

( http://d.hatena.ne.jp/katauna/ より)
ファイルダウンロード
  • epgrecUNA 人柱版(2015/11/14)
  • epgrecUNA 151114版用 fix1
  • epgrecUNA 151114版用 fix2
  • 地震テロップ対応ファイル

 ダウンロード時に必要なキーワードは4ファイルとも同じ。
 全角で○○○(天△△との食べxxxの「○○○」)


epgrecUNA 人柱版(2015/11/14)
http://d.hatena.ne.jp/katauna/touch/20151114/1447500516
から
https://www1.axfc.net/u/3566746
に遷移し、キーワード ○○○ として
3566746.gz(epgrecUNA_151114.tar.gz)
をダウンロードする

epgrecUNA 151114版用 fix1
http://d.hatena.ne.jp/katauna/touch/20151205/1449313773
から
https://www1.axfc.net/u/3578126
に遷移し、キーワード ○○○ として
3578126.gz(epgrecUNA151114Fix1.tar.gz)
をダウンロードする


epgrecUNA 151114版用 fix2
http://d.hatena.ne.jp/katauna/touch/20160411/1460383655
から
https://www1.axfc.net/u/3650284
に遷移し、キーワード ○○○ として
3650284.gz(epgrecUNA151114Fix2.tar.gz)
をダウンロードする


地震テロップ対応ファイル
http://d.hatena.ne.jp/katauna/touch/20160425/1461516298
から
http://www1.axfc.net/u/3658547
へ遷移し、キーワード ○○○ としてダウンロード
3658547.gz(quake_alert_fix1.tar.gz)
をダウンロードする

インストール

(1)epgrecUNA_151114.tar.gz、epgrecUNA151114Fix1.tar.gz、epgrecUNA151114Fix2.tar.gz を同じディレクトリに置く

(2)tar.gzファイルを 同じディレクトリで順次解凍する
  $ cd DIR
  $ tar -zxvf epgrecUNA_151114.tar.gz
  $ tar -zxvf epgrecUNA151114Fix1.tar.gz
  $ tar -zxvf epgrecUNA151114Fix2.tar.gz
 
(3)地震テロップ対応
  quake_alert_fix1.tar.gzを任意のディレクトリに置く
  quake_alert_fix1.tar.gzを解凍する
   $ cd QUAKE-DIR
   $ tar -zxvf quake_alert_fix1.tar.gz
      recomplete.phpが取り出される
 
  recomplete.phpの17行目を適切な地域名に変更する。

  recomplete.phpをepgrecフォルダに置く(既存ファイルと入れ替える)
   $ mv QUAKE-DIR/recomplete.php /DIR/epgrec/recomplete.php
 
(4)do-record.shを自分用に編集する(そのまま利用してもよい)
  $ cp -p do-record.sh.sample do-record.sh
    do-record.shを編集する。 

(5)templates/programTable.html を修正する
  ( eco.senritu.net/ubuntu16-04-lts_epgrec_una_setup/ より)
    --- templates/programTable.html.original 2017-02-11 07:56:46.621185357 +0900
    +++ templates/programTable.html 2017-02-11 08:02:42.645249529 +0900
    @@ -663,7 +663,7 @@
     {/if}
     {if $prg_cnt >= 300}<div>表示最大300件まで</div>{/if}
     {if $do_keyword}
    -{if $k_category != 15 || $k_sub_genre>=0x3f }
    +{if $k_category != 15 || $k_sub_genre>=63 }
     {if $do_keyword || $prg_cnt < 300}
     <div>
     <fieldset>
    @@ -676,7 +676,7 @@
       <b> 局:</b>{$k_station_name}
       <b> ジャンル({if $first_genre == 1}第一{else}全保持{/if}):</b>{if $k_category == 0}すべて{else}{$k_category_name}{/if}
       <b>サブジャンル:</b><script type="text/javascript">sub_genre_view({$k_category}, {$k_sub_genre});</script>
    -  <b> 曜日:</b>{if $weekofday == 0x7f}なし{else}{$wds_name}{/if}
    +  <b> 曜日:</b>{if $weekofday == 127}なし{else}{$wds_name}{/if}
       <b> 時間帯:</b>{if $prgtime == 24}なし{else}{$prgtime}時から{$period}時間{/if}
       <b> 件数:</b>{$prg_cnt}<br>
     </fieldset>

(6)config.phpの編集
  地上デジタルチャンネルマップを設定

    -define( "TUNER_UNIT1", 0 );
      // 第一チューナーの各放送波の論理チューナ数(地上波・衛星波で共用 ex.PT1が1枚なら2)
    +define( "TUNER_UNIT1", 2 );
      // 第一チューナーの各放送波の論理チューナ数(地上波・衛星波で共用 ex.PT1が1枚なら2)


  その他はデフォルトでも動く。


(7)BSチャンネル情報を修正
        $ vi settings/bs_channnel.php
  不要なチャンネルはコメントアウトするのではなく、ハッシュの値( => の右値)を "NC" にする。

(8)epgrecフォルダをhttpサーバードキュメントルートにコピーする
        $ sudo cp -a DIR/epgrec/* /var/www/html/epgrec_una/
    $  sudo chown -R www-data:www-data /var/www/html/epgrec_una

(9)ファイル属性を設定する
  # su - www-data
  $ cd /var/www/html/epgrec_una
  $ chmod 777 cache templates_c video thumbs settings
  $ chmod 666 thumbs/index.html video/index.html
  $ chmod 755 do-record.sh
 
(10)videoディレクトリを自分用に設定する

初期設定

  http://localhost/epgrec_una/ にアクセスして設定。

番組情報取得cron設定

  # cp /var/www/html/epgrec_una/cron.d/shepherd /etc/cron.d/

  /etc/cron.d/shepherd を編集
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    29 */2 * * *   www-data /mnt/apache/epgrec/shepherd.php

epgrec UNAの再初期設定

mysql上のデータベースを削除し、再作成する。
 settings/config.xml を削除する。
 settings/bs_channnel.php を再設定する。
 http://localhost/epgrec_una/ にアクセスして再設定する。


epgrec UNAはデフォルトでは127.0.0.1と192.168.0.0/16以外からの設定変更は拒否するようになっている(config.phpのSETTING_CHANGE_GIP)

do-record.shのテスト。
$ OUTPUT=test.ts CHANNEL=14 DURATION=30 TUNER=0
TUNER_UNIT=2 MODE=0 TYPE=GR /var/www/epgrec/do-record.sh

2016年11月6日日曜日

TV受信 pt2 recpt1 インストール

2019 Nov. 03.
2019 Oct. 27.
2019 Oct. 12.
2019 Apr. 27.
2018 Sep. 04.
2018 Aug. 14.
2018 May 24.
2017 Jan. 15.
2016 Nov. 06.

https://tech.nosuz.jp/2016/05/record-braodcast-by-pt2/#pt2_config より

準備

チューナーカード pt2
ICカードリーダー SCR3310-NTTCom
B-CASカード
TVアンテナ信号分波器
TVアンテナ信号分配器
同軸ケーブル

pt2装着確認

$ lspci
  "01:0a.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01)"を確認

PT2への信号入力(ケーブル接続)

地上波・BS波混合信号を分波器で地上波とBS波に分ける。
分離した地上波とBS波のそれぞれを分配器で必要な数(PT2、テレビ、録画機等)に分けて、それぞれを接続する。
少なくとも、PT2用に地上波を2つ、BS波を2つに分配する必要があり、その場合、2分配器が2個必要となる。
分波器を経由せず、分配器だけでも機能するが信号が弱くなって映像が不良となる恐れがある。

pcscカードリーダドライバ インストール

 $ sudo aptitude install pcscd pcsc-tools libccid libpcsclite1 libpcsclite-dev
$ pcsc_scan
    "Japanese Chijou Digital B-CAS Card"を確認し ctrl+c

    PT2アンテナ端子配置
  S1 BS (PCケース上蓋側)
  T1 地上
  S2 BS
  T2 地上 (マザーボード側)

 

 PT2ドライバ インストール

$ sudo aptitude install gcc libelf-dev

$ lsmod | grep earth_pt1
    earth_pt1
    dvb_core

$ sudo rmmod earth_pt1
$sudo echo -e "\n# for pt2-character-device install\nblacklist earth_pt1" >> /etc/modprobe.d/blacklist.conf

hg.honeyplanet.jp/pt1/ から最新版recpt1を入手する。
  $ wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
$ tar axvf tip.tar.bz2
$ cd pt1-xxxxxxxx/driver

アンテナへの電源供給設定
pt1_pci.c のlnb値設定を
電源不要(マンションケーブル等)なら 0
パラボラアンテナなら1もしくは2
にする
static int lnb = 0; /* LNB OFF:0 +11V:1 +15V:2 */


( $ make clean )
$ make
$ sudo make install
$ sudo modprobe pt1_drv
$ ls -l /dev/pt1*
  crw-rw-rw- 1 root video 245, 0 11月  6 16:40 /dev/pt1video0
  crw-rw-rw- 1 root video 245, 1 11月  6 16:40 /dev/pt1video1
  crw-rw-rw- 1 root video 245, 2 11月  6 16:40 /dev/pt1video2
  crw-rw-rw- 1 root video 245, 3 11月  6 16:40 /dev/pt1video3

$ sudo vim /etc/group
   videoグループにpt2利用ユーザを追加。

 

 ドライバの削除と組み込み

# rmmod pt1_drv
# modprobe pt1_drv

録画ソフトrecpt1インストール

 

 arib-b25インストール

$ sudo aptitude install zip pkg-config libpcsclite-dev pkg-config
$ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
$ unzip c44e16dbb0e2.zip
$ cd pt1-c44e16dbb0e2/arib2
( $ make clean )
$ make
$ sudo make install

recpt1(httpサーバー版)インストール

$ sudo aptitude install autoconf automake

(d.hatena.ne.jp/katauna/20160123/1453544494 より)
http://www1.axfc.net/u/3606217?key=UNAUNA から httpサーバー版パッチをダウンロードする。
得られた recpt1-http.diff ファイルをドライバインストールの時の c8688d7d6382/recpt1/ に置く。

  $ cd c8688d7d6382/recpt1/
  $ patch < recpt1-http.diff
          --- pt1-c8688d7d6382/recpt1/Makefile.in 2013-10-01 16:36:12.000000000 +0900
          +++ V4/recpt1/Makefile.in       2016-01-23 21:00:00.000000000 +0900
          @@ -7,7 +7,8 @@
          TARGET = recpt1
          TARGET2 = recpt1ctl
          TARGET3 = checksignal
          -TARGETS = $(TARGET) $(TARGET2) $(TARGET3)
          +TARGET4 = tssplitter_lite
          +TARGETS = $(TARGET) $(TARGET2) $(TARGET3) $(TARGET4)
          RELEASE_VERSION = "1.2.0"
          etc...

4k, 8k 放送開始対応のコード修正(BS103受信対策)

pt1_dev.hとrecpt1core.cを下記サイトに従って修正する。
   https://qiita.com/amori/items/acaf7a2b7db7f318c3b8
   http://hg.honeyplanet.jp/pt1/
   http://hg.honeyplanet.jp/pt1/rev/5e4290a4cd01
   http://hg.honeyplanet.jp/pt1/rev/75423932bfaa
   http://hg.honeyplanet.jp/pt1/rev/42f838632c32

インストール

  ( $ make clean )
  $ ./autogen.sh
  $ ./configure --enable-b25
  $ make
  $ sudo make install
  $ checksignal 14    // 14 はチャンネル番号
       device = /dev/pt1video2
       C/N = 32.969146dB

  信号受信を確認し ctrl+c

地上波ディタル放送録画
  $ recpt1 --b25 --strip --sid hd 14 15 tv14.ts

動画閲覧
  $ vlc tv14.ts

BS放送録画
  $ recpt1 --b25 --strip --sid hd 103 15 tv103.ts

動画閲覧
  $ vlc tv103.ts

recpt1 + vlc でリアルタイム視聴

recpt1を起動し、次にvlcを起動する。
  $ recpt1 --b25 --strip --sid hd --http 8888 - /dev/null

  vlcを起動し、「ファイル」→「ネットワークストリームを開く」でネットワークアドレスに
  http://127.0.0.1:8888/xx (xxは地デジのチャンネル)
  を入力すると映像が表示される。
  「ツール」→「設定」→「ビデオ」から、デフォルトのデインターレースモードを「自動」にしておく。

  recpt1の終了は ctrl + c