docker-mirakurun-epgstation  のチューナーカードを PX-MLT8PE に換装

「PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい」
https://qiita.com/nanbuwks/items/640ee4405e1fdd2ca497

では PX-Q3PE4 を使い、Ubuntu20.04上にDockerで録画環境を構築しました。

PX-Q3PE4 は 2枚購入し、ゆくゆくは地デジx8 衛星x8 同時録画可能にしようかと思ってましたが・・・・1枚は不良、もう1枚もなんだか調子が悪い?

衛星放送がDropが多くて視聴に支障が出るレベルです。

試しにチューナーを変えてみました。
PLEX の PX-MLT8PE です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/785397eb-1d6f-e134-4cc9-adc7ea5e3d98.png)

この記事は、PX-MLT8PE を使ってトラブルシュートする経緯です。(今後書き足していきます。)
# 環境

- Ubnuntu  20.04
- ドライバ
  - https://github.com/nns779/px4_drv

# 設定変更なしで動作

デバイスファイルが変更になるのでは? と思ったが、px4video[n] のままだった

```
$ ls -alh /dev/px*
crw-rw-r-- 1 root video 234, 0  1月  2 15:15 /dev/px4video0
crw-rw-r-- 1 root video 234, 1  1月  2 15:15 /dev/px4video1
crw-rw-r-- 1 root video 234, 2  1月  2 15:15 /dev/px4video2
crw-rw-r-- 1 root video 234, 3  1月  2 15:15 /dev/px4video3
crw-rw-r-- 1 root video 234, 4  1月  2 15:15 /dev/px4video4
crw-rw-r-- 1 root video 234, 5  1月  2 15:15 /dev/px4video5
crw-rw-r-- 1 root video 234, 6  1月  2 15:15 /dev/px4video6
crw-rw-r-- 1 root video 234, 7  1月  2 15:15 /dev/px4video7

```
そのまま、PX-Q3PE4と同じ使い心地で使用できました。

:::note
2023/11/22 追記

別の環境で換装したら、以下のようになりました。

```
$ ls -alh /dev/px*
crw-rw-r-- 1 root video 234, 0 11月 22 22:05 /dev/pxmlt8video0
crw-rw-r-- 1 root video 234, 1 11月 22 22:05 /dev/pxmlt8video1
crw-rw-r-- 1 root video 234, 2 11月 22 22:05 /dev/pxmlt8video2
crw-rw-r-- 1 root video 234, 3 11月 22 22:05 /dev/pxmlt8video3
crw-rw-r-- 1 root video 234, 4 11月 22 22:05 /dev/pxmlt8video4
crw-rw-r-- 1 root video 234, 5 11月 22 22:05 /dev/pxmlt8video5
crw-rw-r-- 1 root video 234, 6 11月 22 22:05 /dev/pxmlt8video6
crw-rw-r-- 1 root video 234, 7 11月 22 22:05 /dev/pxmlt8video7

```
この換装のときは、旧ドライバを`$ sudo  make uninstall` してから新ドライバを `$ sudo make install` し直しました。それが原因かな?


:::

換装前に調子の悪かった BS12 も視聴できたので受信感度を調べてみました。


# 換装前の受信感度

```
# checksignal --device /dev/px4video5 171 # BS12
device = /dev/px4video5
C/N = 5.899209dB^C
SIGINT received. cleaning up...
# checksignal --device /dev/px4video5 231 # 放送大学
device = /dev/px4video5
C/N = 13.987986dB^C
SIGINT received. cleaning up...
# checksignal --device /dev/px4video5 101 # NHK BS1
device = /dev/px4video5
C/N = 17.303457dB^C
SIGINT received. cleaning up...
# checksignal --device /dev/px4video5 231 # 放送大学を再度
device = /dev/px4video5
C/N = 17.090128dB^C
SIGINT received. cleaning up...
```


# 換装後の受信感度

```
# checksignal --device /dev/px4video4 101 # NHK BS1
device = /dev/px4video4
C/N = 17.943447dB^C
SIGINT received. cleaning up...
# checksignal --device /dev/px4video4 231 # 放送大学
device = /dev/px4video4
C/N = 17.516788dB^C
SIGINT received. cleaning up...
# checksignal --device /dev/px4video4 171 # BS12
device = /dev/px4video4
C/N = 5.359610dB^C
```

あまり変わりないかな?



# tuners.yml を変更

```
- name: adapter_px0_0
  types:
    - BS
    - CS
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_1
  types:
    - BS
    - CS
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_2
  types:
    - GR
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_3
  types:
    - GR
.
.
.
```

となっているのを、


```
- name: adapter_px0_0
  types:
    - BS
    - CS
    - GR
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_1
  types:
    - BS
    - CS
    - GR
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_2
  types:
    - BS
    - CS
    - GR
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_3
  types:
    - BS
    - CS
    - GR
.
.
.

```
と変更しました。
反映は docker 起動し直しでOKかな?


# テスト


であるはずなのであるが・・・

```
# checksignal --device /dev/px4video5 171 # BS12
device = /dev/px4video5
C/N = 5.467529dB^C
SIGINT received. cleaning up...
# checksignal --device /dev/px4video5 27 # NHK総合
No signal. Still trying: /dev/px4video5
No signal. Still trying: /dev/px4video5
No signal. Still trying: /dev/px4video5
.
.
.
```
/devpx4video5 で地上波が受信できませんね。
ドライバを入れ替えないといけないかな?

とりあえず tuner.yml はもとに戻して、しばらく使ってみることにしました。

# ちゃんとした換装

(2023/09/30 追記)


旧ドライバをアンインストール、新ドライバをインストールし直すと、以下のように正しくデバイスファイルができました。

```
$ ls -alh /dev/px*
crw-rw-r-- 1 root video 234, 0 11月 22 22:05 /dev/pxmlt8video0
crw-rw-r-- 1 root video 234, 1 11月 22 22:05 /dev/pxmlt8video1
crw-rw-r-- 1 root video 234, 2 11月 22 22:05 /dev/pxmlt8video2
crw-rw-r-- 1 root video 234, 3 11月 22 22:05 /dev/pxmlt8video3
crw-rw-r-- 1 root video 234, 4 11月 22 22:05 /dev/pxmlt8video4
crw-rw-r-- 1 root video 234, 5 11月 22 22:05 /dev/pxmlt8video5
crw-rw-r-- 1 root video 234, 6 11月 22 22:05 /dev/pxmlt8video6
crw-rw-r-- 1 root video 234, 7 11月 22 22:05 /dev/pxmlt8video7

```
これにあわせて、各設定を変更していきます。


# tuners.yml を変更

```
- name: adapter_px0_0
  types:
    - BS
    - CS
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_1
  types:
    - BS
    - CS
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_2
  types:
    - GR
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_3
  types:
    - GR
.
.
.
```

となっているのを、


```
- name: adapter_px0_0
  types:
    - BS
    - CS
    - GR
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_1
  types:
    - BS
    - CS
    - GR
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_2
  types:
    - BS
    - CS
    - GR
  command: recpt1 <channel> - -
  decoder: arib-b25-stream-test
- name: adapter_px0_3
  types:
    - BS
    - CS
    - GR
.
.
.

```
と変更しました。

docker-compose.yml を編集します。

```
 /dev/px4video0:/dev/px4video0
```
などとなっているところを

```
 /dev/pxmlt8video0:/dev/px4video0
```

 と変更しました。

 ```
  $ docker-compose up -d --build
```

 とすると、
```

 Building mirakurun
[+] Building 104.1s (14/14) FINISHED                                                                                     docker:default
 => [internal] load build definition from Dockerfile                                                                               0.0s
 => => transferring dockerfile: 1.38kB                                                                                             0.0s
 => WARN: Empty continuation line found in: RUN apt-get update &&     apt-get upgrade -y &&     apt-get install -y --no-install-r  0.0s
 => [internal] load .dockerignore                                                                                                  0.0s
 => => transferring context: 202B                                                                                                  0.0s
 => [internal] load metadata for docker.io/library/node:18.15.0-buster-slim                                                        1.6s
 => [internal] load metadata for docker.io/library/node:18.15.0-buster                                                             1.7s
 => [build 1/4] FROM docker.io/library/node:18.15.0-buster@sha256:923970553877d588977a835160f2f40a295fd788838c0a88e41e91bc1b6274e  0.0s
 => [stage-1 1/4] FROM docker.io/library/node:18.15.0-buster-slim@sha256:8fc14971a14387a8b2cbeeddbd2298f73d8e2346dc24648096ca24e5  0.0s
 => [internal] load build context                                                                                                  0.0s
 => => transferring context: 11.92kB                                                                                               0.0s
 => CACHED [build 2/4] WORKDIR /app                                                                                                0.0s
 => [build 3/4] ADD . .                                                                                                            0.1s
 => [build 4/4] RUN apt-get update &&     apt-get upgrade -y &&     apt-get install -y --no-install-recommends build-essential &  91.6s
 => CACHED [stage-1 2/4] WORKDIR /app                                                                                              0.0s 
 => CACHED [stage-1 3/4] RUN apt-get update &&     apt-get upgrade -y &&     apt-get install -y --no-install-recommends         c  0.0s 
 => [stage-1 4/4] COPY --from=build /usr/local/lib/node_modules/mirakurun /app                                                     3.8s 
 => exporting to image                                                                                                             3.0s 
 => => exporting layers                                                                                                            3.0s 
 => => writing image sha256:0d3cbf15e14294fdf30d398a286549ae999d4a901dec68e0c1eb9bf5b117affa                                       0.0s 
 => => naming to docker.io/chinachu/mirakurun                                                                                      0.0s

 1 warning found (use --debug to expand):
 - Empty continuation line found in: RUN apt-get update &&     apt-get upgrade -y &&     apt-get install -y --no-install-recommends         ca-certificates         make         gcc         g++         pkg-config         pcscd         libpcsclite-dev         libccid         libdvbv5-dev         pcsc-tools         dvb-tools         &&     apt-get install -y --no-install-recommends         build-essential         libtool         autoconf         git         automake &&    git clone https://github.com/stz2012/recpt1 /tmp/recpt1 &&     cd /tmp/recpt1/recpt1 &&     ./autogen.sh &&     ./configure &&     make &&     make install &&     apt-get autoremove -y &&     apt-get clean &&     rm -rf /var/lib/apt/lists/*
Building epgstation
[+] Building 548.3s (6/6) FINISHED                                                                                       docker:default
 => [internal] load .dockerignore                                                                                                  0.0s
 => => transferring context: 75B                                                                                                   0.0s
 => [internal] load build definition from debian.Dockerfile                                                                        0.0s
 => => transferring d








 .
 .
 .



 => => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1                                          0.0s
 => [2/2] RUN apt-get update &&     apt-get -y install make gcc git g++ automake curl wget autoconf build-essential libass-dev   519.3s
 => exporting to image                                                                                                             3.6s
 => => exporting layers                                                                                                            3.6s
 => => writing image sha256:aa84b70e46afa3878869cfd3f40149abba6f78e9d53fd78d7cc39287561898f0                                       0.0s 
 => => naming to docker.io/library/docker-mirakurun-epgstation_epgstation                                                          0.0s 
docker-mirakurun-epgstation_mysql_1 is up-to-date                                                                                       
Recreating docker-mirakurun-epgstation_mirakurun_1 ... done
Recreating docker-mirakurun-epgstation_epgstation_1 ... done
```

ちょっと待っていると、ビルドが終わり動作しました。