物欲の塊

炸裂する物欲を書き散らすためのブログ。このブログの内容によって起こったいかなる損害も保障しません。

録画サーバの構築 インストール編(1/2)

録画サーバの構築編です。

OSはUbuntu 18.04にしました。

Ubuntu

Ubuntu Desktop 18.04 LTSを以下からダウンロードしてUSBインストーラを作成。 jp.ubuntu.com

まぁデスクトップ環境は必須でないので、Serverでもよいと思います。 インストールが終わったら、古いパッケージを更新しましょう。

$ sudo apt update
$ sudo apt upgrade

別マシンからSSHしたい場合はsshdをインストールする。

$ sudo apt install openssh-server

別マシンからSSHする。

$ ssh user1@録画サーバのIP

固定IPアドレスに変更したい場合

DHCPから固定IPアドレスに変えたい場合は、以下のとおり。

まずデバイス名を調べる

$ ip a 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 2c:fd:a1:e2:01:dd brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.2/24 brd 10.0.1.255 scope global enp0s31f6
       valid_lft forever preferred_lft forever
    inet6 fe80::2efd:a1ff:fee2:1dd/64 scope link
       valid_lft forever preferred_lft forever

以下のファイルを編集し再起動してください。

  • /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s31f6:
      dhcp4: no
      dhcp6: no
      addresses: [10.0.1.5/24]
      gateway4: 10.0.1.1
      nameservers:
        addresses: [10.0.1.1]

再起動後に、再度ip aで正しくIPアドレスが設定されているか確認してください。

PLEX非公式ドライバ(px4_drv)

まずは、ドライバと録画コマンドをインストールしていきます。

以下の非公式ドライバをインストールします。

github.com

手順はこちらのブログ記事を参考にしました。

www.jifu-labo.net

Q3PE4を使っていますが、W3U4想定の手順になっていますが、問題なく使えました。

ドライバのインストールはこちらの手順ではなく、上記ブログのとおり以下のスクリプトを作りました。

  • dkms.install
#!/bin/sh

. ./dkms.conf
cp -a $(pwd) /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
dkms add -m $PACKAGE_NAME -v $PACKAGE_VERSION
dkms build -m $PACKAGE_NAME -v $PACKAGE_VERSION
dkms install -m $PACKAGE_NAME -v $PACKAGE_VERSION
  • dkms.unintall
#!/bin/sh

. ./dkms.conf
dkms remove -m $PACKAGE_NAME -v $PACKAGE_VERSION --all
rm -vrf /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION

実行権限をつけるなら以下のとおり。

$ chmod 755 ./dkms.install
$ chmod 755 ./dkms.uninstall

インストールは以下のとおり。

$ sudo ./dkms.install

ドライバを更新する際は以下のとおり。

$ git pull
$ sudo ./dkms.uninstall
$ sudo ./dkms.install

libarib25

libarib25はARIB STD-B25 仕様確認テストプログラムです。B-CASカードを利用するのに必須なライブラリです。仕様確認といいつつ実用に耐えれます。

github.com

$ cmake .
$ make
$ sudo make install

recpt1

録画コマンド recpt1は(PLEX社配布のもの)http://plex-net.co.jp/download/linux/Linux_Driver.zip でもいいですが、STZ版をインストールしました(stz2012/recpt1にはdriverもありますがPT1用みたいなので無視してください)。

github.com

$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install

変更は以下です。無関係なデバイスの削除やコマンド名(サフィックス)の修正などです。

diff --git a/recpt1/Makefile.in b/recpt1/Makefile.in
index 5bf8f68..ec9c771 100644
--- a/recpt1/Makefile.in
+++ b/recpt1/Makefile.in
@@ -4,9 +4,9 @@ exec_prefix = @exec_prefix@
 bindir = @bindir@
 CC = @CC@

-TARGET = recpt1
-TARGET2 = recpt1ctl
-TARGET3 = checksignal
+TARGET = recpt1_px4
+TARGET2 = recpt1ctl_px4
+TARGET3 = checksignal_px4
 TARGETS = $(TARGET) $(TARGET2) $(TARGET3)
 RELEASE_VERSION = "c8688d7d6382_with_http_server_RC4 by stz2012"

diff --git a/recpt1/pt1_dev.h b/recpt1/pt1_dev.h
index 60369c7..e724c92 100644
--- a/recpt1/pt1_dev.h
+++ b/recpt1/pt1_dev.h
@@ -3,36 +3,12 @@
 #define _PT1_DEV_H_

 char *bsdev[NUM_BSDEV] = {
-    "/dev/pt1video1",
-    "/dev/pt1video0",
-    "/dev/pt1video5",
-    "/dev/pt1video4",
-    "/dev/pt1video9",
-    "/dev/pt1video8",
-    "/dev/pt1video13",
-    "/dev/pt1video12",
-    "/dev/pt3video1",
-    "/dev/pt3video0",
-    "/dev/pt3video5",
-    "/dev/pt3video4",
     "/dev/px4video0",
     "/dev/px4video1",
     "/dev/px4video4",
     "/dev/px4video5"
 };
 char *isdb_t_dev[NUM_ISDB_T_DEV] = {
-    "/dev/pt1video2",
-    "/dev/pt1video3",
-    "/dev/pt1video6",
-    "/dev/pt1video7",
-    "/dev/pt1video10",
-    "/dev/pt1video11",
-    "/dev/pt1video14",
-    "/dev/pt1video15",
-    "/dev/pt3video2",
-    "/dev/pt3video3",
-    "/dev/pt3video6",
-    "/dev/pt3video7",
     "/dev/px4video2",
     "/dev/px4video3",
     "/dev/px4video6",
diff --git a/recpt1/recpt1.h b/recpt1/recpt1.h
index 0e1e9ce..cc9cc3d 100644
--- a/recpt1/recpt1.h
+++ b/recpt1/recpt1.h
@@ -2,8 +2,8 @@
 #ifndef _RECPT1_H_
 #define _RECPT1_H_

-#define NUM_BSDEV       16
-#define NUM_ISDB_T_DEV  16
+#define NUM_BSDEV       4
+#define NUM_ISDB_T_DEV  4
 #define CHTYPE_SATELLITE    0        /* satellite digital */
 #define CHTYPE_GROUND       1        /* terrestrial digital */
 #define MAX_QUEUE           8192

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

$ sudo apt install pcscd pcsc-tools libpcsclite-dev

動作確認の前に、カードリーダをUSB接続後にB-CASカードをセットし、再起動しましょう。

$ pcsc_scan
PC/SC device scanner
V 1.5.2 (c) 2001-2017, Ludovic Rousseau <ludovic.rousseau@free.fr>
Using reader plug'n play mechanism
Scanning present readers...
0: SCM Microsystems Inc. SCR 3310 [CCID Interface] (XXXXXXXXXX) 00 00
...
  Japanese Chijou Digital B-CAS Card (pay TV)

Japanese Chijou Digital B-CAS Card (pay TV)という文字列が表示されればOK。

そのうえで、以下のコマンドを実行し、TSファイルが生成されればOKです。WindowsMacのマシンに転送し、TSファイルが再生できるかも確認しましょう。

$ recpt1_px4 --b25 --strip 27 10 ~/test.ts

うまく録画されていないときは、確認 のとおりに確認してみてください。

長くなったので、続きは別エントリに。