- AMD Ryzen 3 CPU
- PX4-Q3PX4 (DTV x4, BS|CS x4)
- カードリーダー
- Ubuntu 22.04 LTS
- EPGStationでTSを視聴(Windows:VLC,iOS:Infuse)、録画予約
- 録画予約は「MP4 1920x1080 CPU, TS削除」
- MP4にはCMの区切りにチャプターを付ける(CMは削除しない)
- ソフトウェアエンコード
- 録画データはEPGStation(Windows:VLC, iOS:Infuse)とSambaでMP4を視聴
- 死活管理は行わない。録画エラーが発生したらDiscordで報告
- LANのみ
- language: english
- keyboard: englist
- hostname: m1
- repository: http://ftp.riken.go.jp/Linux/ubuntu/
Filesystem Size Used Avail Use% Mounted on
udev 2.9G 0 2.9G 0% /dev
tmpfs 594M 1.4M 593M 1% /run
/dev/mapper/ubuntu--vg-ssdub0--root 150G 6.4G 143G 5% /
/dev/sda2 976M 104M 805M 12% /boot
/dev/sda1 511M 7.8M 504M 2% /boot/efi
sudo apt update
sudo apt -y upgrade
sudo apt -y install avahi-daemon autoconf build-essential cmake dkms dump ffmpeg firewalld git htop jq libavcodec-dev libavformat-dev libavutil-dev libccid libpcsclite-dev libpcsclite1 libtool linux-headers-generic mariadb-server nano pcscd pkg-config ripgrep samba smartmontools snapper sshpass tmux unzip zsh icu-devtools
Netplan: /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
enp5s0:
addresses:
- 192.168.100.22/24
gateway4: 192.168.100.1
nameservers: {}
version: 2
DNS:/etc/systemd/resolved.conf
DNS=192.168.100.1 8.8.8.8 8.8.4.4
sudo visudo
Defaults timestamp_timeout = 30
EPGStationはUTC非対応なので、JSTにする。
date
sudo timedatectl set-timezone Asia/Tokyo
date
git clone https://github.com/nns779/px4_drv -b next
cd px4_drv/fwtool
make
wget http://plex-net.co.jp/download/pxq3pe4v1.4.zip
unzip -oj pxq3pe4v1.4.zip x64/PXQ3PE4.sys
./fwtool PXQ3PE4.sys it930x-firmware.bin
sudo cp it930x-firmware.bin /lib/firmware/
cd ..
DKMSを使う場合
sudo cp -a ./ /usr/src/px4_drv-0.2.1
sudo dkms add px4_drv/0.2.1
sudo dkms install px4_drv/0.2.1
sudo modprobe px4_drv
usb_alloc_coherent() failed
対策
echo 'options px4_drv max_urbs=3' | sudo tee /etc/modprobe.d/px4_drv.conf
wget http://ludovic.rousseau.free.fr/softwares/pcsc-perl/pcsc-perl-1.4.14.tar.bz2
cd pcsc-perl-1.4.14
perl Makefile.PL
make
sudo make install
cd
wget http://ludovic.rousseau.free.fr/softwares/pcsc-tools/pcsc-tools-1.5.7.tar.bz2
tar xf pcsc-tools-1.5.5.tar.bz2
cd pcsc-tools-1.5.5
./configure
make
sudo make install
sudo systemctl enable --now pcscd
sudo systemctl status pcscd
sudo pcsc_scan
> Japanese Chijou Digital B-CAS Card (pay TV)
git clone https://github.com/stz2012/libarib25
cd libarib25
cmake .
make
sudo make install
echo '/usr/local/lib64' | sudo tee /etc/ld.so.conf.d/usr-local-lib64.conf
sudo ldconfig
git clone https://github.com/stz2012/recpt1
cd recpt1/recpt1
./autogen.sh
./configure --enable-b25
make
sudo make install
sudo recpt1 --b25 --strip BS09_0 10 bs11.ts
sudo recpt1 --b25 --strip 16 10 16.ts
in client, type
scp m1:bs11.ts .
Node.jsのバージョンは16にする。
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install pm2 -g
sudo pm2 install pm2-logrotate
sudo npm install mirakurun -g --unsafe-perm --production
sudo mkdir -p /usr/local/var/db/mirakurun
echo [] | sudo tee /usr/local/var/db/mirakurun/programs.json
sudo mkdir /usr/local/etc/mirakurun
sudo chmod -R go+rw /usr/local/etc/mirakurun
sudo cp tuners.yml /usr/local/etc/mirakurun/tuners.yml
sudo pm2 restart mirakurun-server --node-args --max_old_space_size=1024
sudo pm2 logs mirakurun-server
curl -X PUT "http://localhost:40772/api/config/channels/scan"
sudo systemctl start mariadb
sudo systemctl status mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
Remove anonymouse users: y
Disallow root login remotely: n
Remove test database and access to it: y
Reload privilege table now: y
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mariadb]
character-set-server = utf8mb4
sudo nano /etc/mysql/mariadb.conf.d/50-client.cnf
[client-mariadb]
default-character-set = utf8mb4
sudo systemctl restart mariadb
sudo mysql -u root -p
show variables like "chara%";
create user 'noyuno'@'localhost' identified by '';
create database epgstation;
grant all on epgstation.* to 'noyuno'@'localhost';
パスワード変更
set password for noyuno@localhost = PASSWORD('password');
sudo firewall-cmd --list-all --zone public 130u
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client grafana http minidlna rdp samba ssh vnc-server
ports: 81/tcp 81/udp 3000/tcp 9090/tcp 8200/tcp 9000/tcp 8024/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
sudo systemctl enable --now firewalld
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-port=81/tcp --permanent
sudo firewall-cmd --zone=public --add-port=81/udp --permanent
sudo firewall-cmd --zone=public --add-port=8889/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8889/udp --permanent
sudo firewall-cmd --zone=public --add-port=5050/tcp --permanent # notifyd
sudo firewall-cmd --zone=public --add-port=40772/tcp --permanent # mirakurun
sudo firewall-cmd --zone=public --add-port=8123/tcp --permanent # private unlock check
sudo firewall-cmd --permanent --zone=public --add-service=samba
sudo firewall-cmd --add-source=192.168.100.1 --zone=drop --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
sudo firewall-cmd --list-all --zone=drop
sudo reboot
notifydを動かすためにマスカレードの設定を行う
snapper
sudo snapper -c root create-config /
sudo snapper -c root set-config ALLOW_GROUPS=noyuno ALLOW_USERS=noyuno SYNC_ACL=yes TIMELINE_LIMIT_DAILY=1 TIMELINE_LIMIT_HOURLY=1 TIMELINE_LIMIT_MONTHLY=1
sudo snapper -c tv create-config /mnt/hddts0-plain0/tv
sudo snapper -c tv set-config ALLOW_GROUPS=noyuno ALLOW_USERS=noyuno SYNC_ACL=yes TIMELINE_LIMIT_DAILY=1 TIMELINE_LIMIT_HOURLY=1 TIMELINE_LIMIT_MONTHLY=1
sudo snapper -c private create-config /mnt/ssdki3-crypt0/private
sudo snapper -c private set-config ALLOW_GROUPS=noyuno ALLOW_USERS=noyuno SYNC_ACL=yes TIMELINE_LIMIT_DAILY=1 TIMELINE_LIMIT_HOURLY=1 TIMELINE_LIMIT_MONTHLY=1
sudo gdisk /dev/sdX
> o y
> n 8e00
cryptsetup benchmark
LVMパーティション作成
sudo vgcreate hddsg0 /dev/sdX1
sudo lvcreate -L 4T /dev/mapper/hddsg0 -n plain0
sudo lvcreate -L 800G /dev/mapper/hddsg0 -n crypt0
sudo mkfs.btrfs /dev/mapper/hddsg0-plain0
sudo cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/mapper/hddsg0-crypt0
sudo cryptsetup open /dev/mapper/hddsg0-crypt0 hddsg0-crypt0-data
sudo mkfs.btrfs /dev/mapper/hddsg0-crypt0-data
sudo mkdir /mnt/hddsg0-plain0
sudo mount -onoatime /dev/mapper/hddsg0-plain0 /mnt/hddsg0-plain0
sudo mkdir /mnt/hddsg0-crypt0
sudo mount -onoatime,compress=zstd /dev/mapper/hddsg0-crypt0-data /mnt/hddsg0-crypt0
Btrfsサブボリューム作成
sudo btrfs subvolume create /mnt/hddsg0-plain0/tv
sudo btrfs subvolume create /mnt/hddsg0-crypt0/private
snapper
sudo snapper -c tv create-config /mnt/hddsg0-plain0/tv
sudo snapper -c private create-config /mnt/hddsg0-crypt0/private
シンボリックリンクを作成。
sudo ln -sfnv /mnt/hddsg0-data0/active/tv /mnt/data/tv
fstabに追加
/dev/mapper/hddsg0-plain0 /mnt/hddsg0-plain0 btrfs noatime 0 0
sudo cp disk/smb.conf /etc/samba/smb.conf
sudo systemctl enable --now smbd nmbd
sudo pdbedit -a noyuno
sudo pdbedit -L
ごみ箱を使うには、Windows側から次のレジストリをインポートする必要がある。
- disk/admin.reg : 管理者として結合
- disk/user.reg : 一般ユーザとして結合
Tailscaleをインストール
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
バックアップ
sudo nasbackup
Node.jsのバージョンは16にする。
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation
git checkout v2.6.20
npm run all-install
npm run build
cd
データベースを復元
npm run restore /mnt/hddsg0-plain0/active/backup/epgstation/database
git clone https://github.com/noyuno/tv
cd tv
git submodule update --init --recursive
./install
EPGStation/config.json.example
をコピーしてパスワード部分を編集する!
sudo pm2 start dist/index.js --name "epgstation"
sudo pm2 save
sudo pm2 logs epgstation
cd notifyd
pip3 install --user -r notifyd/requirements.txt
nano .env # DISCORD_TOKENを入力
sudo pm2 start notifyd/main.py --interpreter python3 --name notifyd --user noyuno
curl localhost:5050
> notifyd
> hello
curl -sLO http://prdownloads.sourceforge.net/argtable/argtable2-13.tar.gz
tar xf argtable2-13.tar.gz
./configure
make
sudo make install
cd
git clone git://github.com/erikkaashoek/Comskip
cd Comskip
./autogen.sh
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
make
sudo make install
cd
アンテナケーブルの接点不良。アンテナケーブルがねじ式でないと外れやすい。
recpt1を絶対パスで指定。sudoのsecure_path
に/usr/local/bin
を入れても無意味。
「ツール>設定>すべて」にチェック。「ビデオ>出力モジュール」の「ビデオ出力モジュール」が「Direct3D11ビデオ出力」になっていると乱れるので、「Direct3D9ビデオ出力」にする
Wi-Fiの接続が途切れるのが原因
journalctl -f
Jan 18 21:59:51 tv.lan wpa_supplicant[1347]: wlo2: WPA: Group rekeying completed with 00:23:b1:99:1f:1f [GTK=CCMP]
Jan 18 21:59:55 tv.lan systemd[1]: pm2-root.service: Start operation timed out. Terminating.
Jan 18 21:59:56 tv.lan systemd[1]: pm2-root.service: Failed with result 'timeout'.
Jan 18 21:59:56 tv.lan systemd[1]: Failed to start PM2 process manager.
Jan 18 21:59:56 tv.lan systemd[1]: pm2-root.service: Service RestartSec=100ms expired, scheduling restart.
Jan 18 21:59:56 tv.lan systemd[1]: pm2-root.service: Scheduled restart job, restart counter is at 129.
Jan 18 21:59:56 tv.lan systemd[1]: Stopped PM2 process manager.
サーバは有線でつなげるべき
時間が正しいか確認する。UTCは非対応。
「組織のセキュリティポリシーによって非認証のゲストアクセスがブロックされているためこの共有フォルダーにアクセスできません」と表示される|Q&A | IODATA アイ・オー・データ機器
sudo firewall-cmd --set-log-denied all
journalctl -xef
sudo nmcli c
sudo nmcli c m docker0 connection.zone trusted
#sudo nmcli c m br-0ce92c3e48f5 connection.zone internal
sudo nmcli c m br-dd5bc31eebee connection.zone trusted
sudo firewall-cmd --change-interface=br-dd5bc31eebee --zone trusted --permanent
sudo iptables -I DOCKER -i eno1 -j DROP
echo 'iptables -I DOCKER -i eno1 -j DROP' | sudo tee -a /etc/rc.d/rc.local
sudo chmod +x /etc/rc.d/rc.local
docker-compose up
curl $(docker inspect $(docker ps -qf name=notifyd) | jq -r '.[].NetworkSettings.Networks.notifyd_default.IPAddress'):5050
> notifyd
> hello
sudo firewall-cmd --add-rich-rule='rule family=ipv4 source not address=127.0.0.1 destination address=172.19.0.0/16 drop'
sudo firewall-cmd --set-log-denied off
sudo firewall-cmd --reload
iperfを入れて帯域幅計測
curl -O https://downloads.es.net/pub/iperf/iperf-3.7.tar.gz
tar xf iperf-3.7.tar.gz
cd iperf-3.7
./configure
make
sudo make install
sudo ldconfig
sudo firewall-cmd --add-port=5201/tcp --zone=public
sudo firewall-cmd --add-port=5201/udp --zone=public
iperf3 -s
.\iperf3 -c 192.168.100.22
- iPad/iPhoneのストリーミング視聴は無変換-VLCではなくHLS-Safariが良い
- ルータを初期化してみる(治った実績あり)
- Infuse6はSMB3のバグがあり、転送速度が遅い。SMB2を強制する。
10. docker-compose build
を実行すると ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.11/main: temporary error (try again later)
DockerデーモンのDNSを設定する
/etc/docker/daemon.json
{
"dns": ["8.8.8.8"]
}
モジュールの設定を変更する。/etc/modprobe.d/px4_drv.conf
を新規作成して、次のとおり設定する。
options px4_drv max_urbs=4
iptables-persistent
に乗り換える。
sudo apt install iptables-persistent