mNEFOのメモ帳

ツイッターとかに書ききれなかったメモの集まり

glancesのwebが空白で動かない問題

2023/10/22 追記 やっぱりシステム更新とかなんやかんやしてるうちにおかしくなったのでこの作業は必要。
2023/10/09 追記 Ubuntu server 23系では修正されている

つまるところはこれ

https://github.com/nicolargo/glances/issues/2021

Debianのパッケージングの問題で毎回起こる模様。

なのでapt installした後に毎回、

sudo cp -r glances-${GLANCES_VERSION}/glances/outputs/static/public/ /usr/lib/python3/dist-packages/glances/outputs/static/

をする必要がある模様。

あとは /usr/lib/systemd/system/glances.serviceを変更して、

[Service]
#ExecStart=/usr/bin/glances -s -B 127.0.0.1
ExecStart=/usr/bin/glances -w

とする。あとはsudo ufw allow 61208とsudo ufw reloadとsudo systemctl enable glances.serviceとsudo systemctl start glances.serviceをして完了。

スクリーンショット

Ubuntu Serverとdocker-mirakurun-epgstationとPX-MLT8PEで作る全録サーバー

内容

recpt1(px-mlt8peなので)を使ってdocker-mirakurun-epgstationを動かす。

環境

中身

ハマりポイントはマザーボードUSB2.0ヘッダに使われているGL850Gとキャプチャに相性が有るのか、帯域不足なのか分からないが16ch全録するとドロップしまくるので、一枚目だけGL850Gへ接続し、もう一枚を他のUSBヘッダに接続した。 またアンテナ線2系統のうち片方が断線しかけで信号レベルが低かった。checksignalしましょう。

Ubuntu Serverインストール

Ubuntu Server(LTSではない方。23系でないとカーネルが古くてzen4のCPU温度が取れない) をDLしてRufusUSBメモリに。
Ubuntu Server をインストール。IPをスタティックにする以外は特になし。

タイムゾーンを設定

sudo timedatectl set-timezone Asia/Tokyo

環境更新

sudo apt update と upgrade してreboot

lsusb でチューナーとリーダを確認

Bus 001 Device 003: ID 0e8d:0616 MediaTek Inc. Wireless_Device
Bus 001 Device 004: ID 04e6:5116 SCM Microsystems, Inc. SCR331-LC1 / SCR3310 SmartCard Reader
Bus 001 Device 002: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
Bus 001 Device 010: ID 0511:0252 N'Able (DataBook) Technologies, Inc. PXML͔8PE
Bus 001 Device 009: ID 0511:0253 N'Able (DataBook) Technologies, Inc. PXML͔8PE
Bus 001 Device 008: ID 0511:0253 N'Able (DataBook) Technologies, Inc. PXML͔8PE
Bus 001 Device 007: ID 0511:0252 N'Able (DataBook) Technologies, Inc. PXML͔8PE

必要パッケージ

sudo apt install dkms git nfs-common unzip docker-compose docker libpcsclite-dev pcscd pcsc-tools libccid autoconf automake build-essential cmake curl libssl-dev libtool libboost-all-dev pkg-config yasm tree lm-sensors glances smartmontools cpufrequtils
sudo apt install -y linux-headers-$(uname -r)

UIDとGIDの設定

uidをNFSサーバーのユーザーに合わせる(我が家には他のLinuxサーバーが有るのでそれに合わせて1003とか、 /etc/passwdをいじってリブート、その後ホームのchownを忘れずに。)
video(44)とdocker(119)グループに追加する(usermod -aG video mnefo, usermod -aG docker mnefo)

cd /home
sudo chown -R mnefo:mnefo mnefo

docker-mirakurun-epgstationの設定

ドライバの用意

https://github.com/tsukumijima/px4_drv

wget https://github.com/tsukumijima/px4_drv/releases/download/v0.4.1/px4-drv-dkms_0.4.1_all.deb
sudo apt install -y ./px4-drv-dkms_0.4.1_all.deb
rm ./px4-drv-dkms_0.4.1_all.deb
sudo modprobe px4_drv
# ls /dev/ とかしてpxmlt8videoX があるのを確認

NFSとその他のfstab設定例

エンコードしたものをNFSに、生のTSファイルを別のSSDへ。

/etc/fstab の例
192.168.1.19:/home/mnefo/recorded/encoded /home/recorded/encoded nfs defaults 0 0
/dev/nvme1n1p1 /home/recorded/raw ext4 defaults 0 0

docker-epgstation-mirakurun

curl -sf https://raw.githubusercontent.com/l3tnun/docker-mirakurun-epgstation/v2/setup.sh | sh -s cd docker-mirakurun-epgstation

標準のdocker-compose.ymlは/dev/dvbを使うのでエラーが起きるので編集。mirakurunのスタートアップスクリプトのためにoptを追加、デバイスをPX-MLT8PE用に追加、カードリーダのデバイスを追加(上のlsusbから)、レコード用ディレクトリの追加。

docker-compose.ymlを編集
        volumes:
            - ./mirakurun/conf:/app-config
            - ./mirakurun/data:/app-data
            - ./mirakurun/opt/:/opt
        devices:
            - /dev/bus:/dev/bus
            - /dev/pxmlt8video0:/dev/pxmlt8video0
            - /dev/pxmlt8video1:/dev/pxmlt8video1
            - /dev/pxmlt8video2:/dev/pxmlt8video2
            - /dev/pxmlt8video3:/dev/pxmlt8video3
            - /dev/pxmlt8video4:/dev/pxmlt8video4
            - /dev/pxmlt8video5:/dev/pxmlt8video5
            - /dev/pxmlt8video6:/dev/pxmlt8video6
            - /dev/pxmlt8video7:/dev/pxmlt8video7
            - /dev/pxmlt8video8:/dev/pxmlt8video8
            - /dev/pxmlt8video9:/dev/pxmlt8video9
            - /dev/pxmlt8video10:/dev/pxmlt8video10
            - /dev/pxmlt8video11:/dev/pxmlt8video11
            - /dev/pxmlt8video12:/dev/pxmlt8video12
            - /dev/pxmlt8video13:/dev/pxmlt8video13
            - /dev/pxmlt8video14:/dev/pxmlt8video14
            - /dev/pxmlt8video15:/dev/pxmlt8video15
            - /dev/bus/usb/001/004

        volumes:
            - ./epgstation/config:/app/config
            - ./epgstation/data:/app/data
            - ./epgstation/thumbnail:/app/thumbnail
            - ./epgstation/logs:/app/logs
            - /home/recorded:/app/recorded

tuners.yml を作る

- name: PX-MLT8PE_0
  types:
    - GR
    - BS
  decoder: arib-b25-stream-test
  isDisabled: false
  command: recpt1 --device /dev/pxmlt8video0 <channel> - -
これを0~15まで

arib25とrecpt1

docker-mirakurun-epgstaionのmirakurunは弄り様がないのが、スタートアップスクリプトは実行可能なので設定する。chmod +xもわすれずに。

mkdir -p mirakurun/opt/bin
vi mirakurun/opt/bin/startup

#!/bin/bash

if !(type "recpt1" > /dev/null 2>&1); then
  apt-get update
  apt-get install -y --no-install-recommends git autoconf automake cmake

  cd /tmp
  git clone https://github.com/stz2012/libarib25.git
  cd libarib25
  cmake . -DCMAKE_INSTALL_PREFIX=/opt
  make
  make install
  ldconfig

  cd /tmp
  git clone https://github.com/stz2012/recpt1.git
  cd recpt1/recpt1
  ./autogen.sh
  ./configure --enable-b25 --prefix /opt
  make
  make install
fi

recpt1 -v

起動

docker-compose down
docker-compose run --rm -e SETUP=true mirakurun
docker-compose up -d

チャンネルスキャン
mirakurunの再起動は http://localhost:40772/ の右上

curl -X PUT "http://localhost:40772/api/config/channels/scan" 地上波
curl -X PUT "http://localhost:40772/api/config/channels/scan?type=BS&setDisabledOnAdd=true&refresh=false" BS

もう一度 mirakurun再起動。EPGが取れるまでしばし休憩。あとはepgstationの録画設定をして完了。
mirakurunのEPG更新は10分(600,000msec)くらいにしておくといいかも。