mNEFOのメモ帳

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

SST-ES02-USB導入

我が家のPCは埃対策で高いところに置いてある。

なのでどうしてもゲーミングねこ様が発生する。電源ボタンが側面にあるケースなら問題ないが上面についているNZXT H9 FLOWの場合、悲しい事故が頻発する。

ファンが止まってしまっている所に注目

そこで電源ボタンを無線式にする、SST-ES02-USBを導入した。構造はいたってシンプルで2.4GHz無線を利用し電源ON信号を送る。送信側はボタン電池を、受信側はUSB内部ヘッダから電源を供給する。受信側は電源供給のみなのでOSからは認識されたりはしない。また、ケーブルは分岐線もあるのでPC本体の電源ボタンを使用したい場合も接続可能。

箱 表
箱 裏
内容物






動作の様子。赤LEDが反応した後に電源が入る。

YMTC232層耐久テスト@2か月経過

YMTC232層NAND採用のSSDを録画鯖のTS一時置き場に使用して耐久試験をしている。メーカーは確かMonsterStorage。
これは2か月経ったSMART情報。169TB書き込み済み(TBW 2000TB この勢いだと2年で尽きる)。特に異常なし。

mugi@rec:~$ sudo smartctl -a /dev/nvme0
[sudo] password for mugi: 
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.2.0-24-generic] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       MS950G75PCIe4 2048G
Serial Number:                      30099591665
Firmware Version:                   SN11273
PCI Vendor/Subsystem ID:            0x1e4b
IEEE OUI Identifier:                0x000000
Total NVM Capacity:                 2,048,408,248,320 [2.04 TB]
Unallocated NVM Capacity:           0
Controller ID:                      0
NVMe Version:                       1.4
Number of Namespaces:               1
Namespace 1 Size/Capacity:          2,048,408,248,320 [2.04 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            000000 0000000002
Local Time is:                      Sun Sep  3 01:18:14 2023 JST
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x001f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat
Log Page Attributes (0x02):         Cmd_Eff_Lg
Maximum Data Transfer Size:         128 Pages
Warning  Comp. Temp. Threshold:     90 Celsius
Critical Comp. Temp. Threshold:     95 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     6.50W       -        -    0  0  0  0        0       0
 1 +     5.80W       -        -    1  1  1  1        0       0
 2 +     3.60W       -        -    2  2  2  2        0       0
 3 -   0.0500W       -        -    3  3  3  3     5000   10000
 4 -   0.0025W       -        -    4  4  4  4     8000   45000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        42 Celsius
Available Spare:                    100%
Available Spare Threshold:          1%
Percentage Used:                    8%
Data Units Read:                    300,903,383 [154 TB]
Data Units Written:                 331,248,563 [169 TB]
Host Read Commands:                 1,198,648,169
Host Write Commands:                399,975,565
Controller Busy Time:               10,500
Power Cycles:                       44
Power On Hours:                     1,673
Unsafe Shutdowns:                   5
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               42 Celsius
Temperature Sensor 2:               41 Celsius

Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged

cablemod試してみた

メインマシンの中身をまあまあこだわったのでケーブルにもこだわることにした。
cablemod.com
ここに各社電源の互換性リストがある。私はSeasonicなのでそれに合う黒を選択。
ビフォー

アフター

裏配線もすっきり

全体

現在のメインマシン

  • ケース:NZXT H9 FLOW
  • マザーボード:Proart X670E
  • CPU:7950X
  • クーラー:EK Nucleus AIO 360 dark
  • メモリ:Gskill DDR5 6000 2x32GB
  • SSD:SK Hynix P41 2TB・・・Windows
  • SSD:XPG S70 2TB・・・Steam
  • SSD:P3 Plus 4TB・・・キャプチャ
  • SSD:MP600 1TB・・・データバックアップ
  • SSD:Hayane HE70 2TB・・・システムバックアップ
  • グラフィック:Manli RTX 4070Ti
  • ケースファン:Arctic P12 PWM PST White x10(トップ3、ボトム3、サイド3、リア1)
  • 電源:Seasonic SSR-850TR
  • オーディオ:ZG01
  • キャプチャ:LIVE GAMER EXTREME 3

コンセプトは光らないマシン。元々はO11 airを使っていたが、O11は底面ファンを設置するとマザーボードの下部のクリアランスがきついのでH9 FLOWに換えた。今回は埃が目立たない白にした。ほぼ満足だが、リアファンのケーブルが筐体に固定してあった(筐体の板金曲げの爪にしてある)のが不満点。マザーはX670Eで10gbeを使えるやつで一番安いやつ(AQC 113CSが使われている。これだけ高いマザーならIntel X550とか710載せてほしい)。クーラーはAIOでかなり冷えると噂。トップに配置しプッシュプル構成。メモリはDDR5 6000の適当な奴。HDDはいらないのでオールSSD。グラフィックはProart RTX 4070Tiで揃えたかったがすでに買ってしまったのでこれ。ケースファンのP12 PWM PSTの黒は国内でもいくらでも手に入るが白はなかったのでarctic.deから個人輸入した。ゴムブッシュで固定しようかと思ったがケース側の穴が大きくすぐ取れてしまう為いつものスクリュー式にした。







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)くらいにしておくといいかも。