Ubuntu16.04 EPGStation のインストール
・Mirakurun のインストール
http://d.hatena.ne.jp/kt_hiro/20180121/1471144786
・MySQLのインストールと設定(EPGStation で MySQL を使う場合)
# apt install mysql-server # mysql -u root -p mysql> CREATE DATABASE epgstation CHARACTER SET utf8; ※epgstationという名前のDBを作る mysql> GRANT ALL ON epgstation.* TO epgstation@localhost IDENTIFIED BY 'epgstation'; ※ユーザ名:epgstation、パスワード:epgstation のユーザを作り、DB:epgstation の操作権限を与える mysql> quit
・EPGStation のインストール
公式ドキュメント:https://github.com/l3tnun/EPGStation
・デフォルトでは recorded フォルダに録画ファイルが格納されるので、必要に応じて変更すること ・TSを変換して視聴する場合は ffmpeg をインストールしてパスを指定すること
・自動起動設定
# pm2 start dist/server/index.js --name=EPGStation # pm2 save
Ubuntu16.04 recpt1/recdvb + Mirakurun + Chinachu Gamma のインストール
・必要パッケージのインストール
# apt install autoconf build-essential curl git-core libccid libpcsc-perl libpcsclite-dev libpcsclite1 libssl-dev libtool linux-headers-`uname -r` mercurial pcsc-tools pcscd pkg-config yasm
・カードリーダの動作確認
# pcsc_scan
・arib25(放送波のデコード)のインストール
# cd /usr/local/src/ # wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip # unzip c44e16dbb0e2.zip # cd pt1-c44e16dbb0e2/arib25 # make # make install
・ドライバと録画プログラムのインストール
PT3 を使う場合
1. PT3専用ドライバ、recpt1
2. DVBドライバ(Linux標準ドライバ)、recdvb をインストールする
PX-S1UD を使う場合
3. PX-S1UDファームウェア、recdvb をインストールする
PT3専用ドライバのインストール
# cd /usr/local/src/ # git clone https://github.com/m-tsudo/pt3.git # cd pt3/ # make # make install # echo "blacklist earth-pt3" >> /etc/modprobe.d/blacklist.conf # modprobe pt3_drv # reboot # ls /dev/ | grep pt3 ※デバイスが存在することを確認
PX-S1UDファームウェアのインストール
# cd /usr/local/src/ # wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip # unzip PX-S1UD_driver_Ver.1.0.1.zip # cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/
recpt1 のインストール
# cd /usr/local/src/ # git clone https://github.com/stz2012/recpt1.git # cd recpt1/recpt1 # ./autogen.sh # ./configure --enable-b25 # make # make install # adduservideo ※videoグループに追加しておかないとPT3を使用できない # recpt1 --b25 --strip 22 10 test.ts --device /dev/pt3video2 ※録画できることを確認 デバイス:video0/1:衛星放送 video2/3:地上デジタル チャネル:22ch 録画時間:10秒
recdvb のインストール
# cd /usr/local/src/ # wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.1.tgz # tar xvzf recdvb-1.3.1.tgz # cd recdvb-1.3.1 # ./autogen.sh # ./configure --enable-b25 # make # make install # adduser <recdvbコマンドを使いたいユーザ> video ※videoグループに追加しておかないとPX-S1UDを使用できない # recdvb --b25 --strip 22 10 test.ts ※録画できることを確認
・Mirakurun のインストール
事前準備として node.js、npm をインストールする
https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2
公式ドキュメントに従い Mirakurun をインストールする
https://github.com/Chinachu/Mirakurun/blob/master/README.md
Mirakurunでスクランブル解除する場合は arib-b25-stream-test をインストール
※録画コマンドで --b25 オプションを使う場合は不要
# npm install arib-b25-stream-test -g --unsafe
PT3 で recpt1 を使う場合には下記を変更
# mirakurun config tuners - name: PT3-S1 recpt1 --b25 --device /dev/pt3video0 <channel> - - isDisabled: false ※BS/CSアンテナへの給電が不要であれば、recpt1コマンドの --lnb 15 オプションは削除する ※recpt1コマンドでスクランブル解除する場合は --b25 オプションを追加、decoder行を削除 ※isDisabled を false に変更 ※PT3-S2、PT3-T1、PT3-T2 についても同様に変更
PX-S1UD を使う場合には下記を追記
# mirakurun config tuners - name: PX-S1UD-1 types: - GR command: recdvb --b25 --strip <channel> - - isDisabled: false
・チャンネル設定
# mirakurun config channels ※受信地域に合わせてチャンネル設定を修正する http://www.maspro.co.jp/contact/bro/bro_ch.html # mirakurun restart ※EPG受信するので、10分ほど待つ # rivarun --list | sed 's/},/},\n/g' ※チャンネル情報が表示されることを確認 ※要Rivarun
・Rivarun のインストール(任意)
公式ドキュメント:https://github.com/Chinachu/Rivarun
・動作確認 # rivarun --ch GR/27 10 test.m2ts
・Chinachu のインストール
公式ドキュメントに従いインストールする
https://github.com/Chinachu/Chinachu/wiki
・ログローテート設定(任意だが、そのままだとログが肥大化するので実施推奨)
# pm2 install pm2-logrotate ※PM2のログローテート # vi /etc/logrotate.d/mirakurun /usr/local/var/log/mirakurun.stdout.log /usr/local/var/log/mirakurun.stderr.log { daily compress rotate 7 missingok notifempty } # vi /etc/logrotate.d/chinachu /usr/local/var/log/chinachu-operator.stderr.log /usr/local/var/log/chinachu-operator.stdout.log /usr/local/var/log/chinachu-wui.stderr.log /usr/local/var/log/chinachu-wui.stdout.log { weekly compress rotate 4 missingok notifempty }
・録画ファイルの2バイト記号の削除(任意)
ファイル名に2バイト記号が含まれているとOSがファイル名を正しく取得できない場合があるため、「_」に置換するようにする。
# vi chinachu/common/lib/chinachu-common.js ※220行目あたり a = a.replace(/\//g, '/').replace(/\\/g, '\').replace(/:/g, ':').replace(/\*/g, '*').replace(/\?/g, '?'); a = a.replace(/"/g, '”').replace(/</g, '<').replace(/>/g, '>').replace(/\|/g, '|').replace(/≫/g, '>>'); a = a.replace(/\r\n/g, ' ').replace(/\n/g, ' ').replace(/\r/g, ' '); この行を追加 → a = a.replace(/〜/g, '_').replace(/−/g, '_').replace(/×/g, '_');
Linux OpenVPN 高速化チューニング
OpenVPNで通信速度に影響する下記設定について検証。
・udp or tcp
・comp-lzo の有無
・tcp-nodelay の有無(tcpのみ)
・mssfix、fragment のチューニング
mssfix … カプセル化されるTCPパケットのサイズ制限(デフォルト値:1450) fragment UDPで接続するときのカプセル化されるパケットのサイズ制限 tun-mtu … tunデバイスを使用する場合のMTUサイズの制限(デフォルト値:1500) ※tun-mtuも変更可能だが、1500以下にすると「mssfix、fragmentを指定する場合はtun-mtuは1500にしろ」という ワーニングが接続時に出るので、そのままとした ※各パラメータについて:https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage ※パケットサイズのチューニングは下記が参考になる https://wiki.archlinux.jp/index.php/OpenVPN#Fragment_.E3.81.A8_MSS_.E3.81.AB.E3.82.88.E3.82.8B_MTU_.E3.81.AE.E8.A8.AD.E5.AE.9A
検証1 ローカル接続
・通信経路 ノートPC <-> (無線LAN OpenVPN接続) <-> OpenVPN仮想サーバ <-> (KVM ブリッジ接続) <-> Web仮想サーバ ・ダウンロードするファイル 158MB の 映像ファイルのHTTPダウンロードにかかった時間を5回測定して中央値を採用
接続オプション | ダウンロード時間(中央値) |
---|---|
直接ダウンロード | 15秒 |
tcp接続 オプションなし | 18秒 |
tcp接続 comp-lzo | 19秒 |
tcp接続 tcp-nodelay | 22秒 |
tcp接続 mssfix:1280 | 19秒 |
tcp接続 comp-lzo mssfix:1280 tcp-nodelay | 25秒 |
udp接続 オプションなし | 16秒 |
udp接続 comp-lzo | 16秒 |
udp接続 mssfix:1280 fragment:1280 | 17秒 |
udp接続 comp-lzo mssfix:1280 fragment:1280 | 16秒 |
・udpの方が速く、直接ダウンロードと比べてもほとんどオーバーヘッドが無い ・tcp-nodelay が無い方がなぜか速い ・comp-lzo は速度にあまり影響しない(映像ファイルなので圧縮の余地がないから?) ・tun-mtu等は速度にあまり影響しない(ローカル接続だから?)
検証2 インターネット接続
測定タイミングによって速度が変わるため、定量的な測定ができなかった。
CentOS7 WAF(ModSecurity)のインストール
・apacheのインストール
# yum install httpd
・ModSecurityのインストール
# yum install mod_security mod_security_crs
・設定
# cp -p /etc/httpd/conf.d/mod_security.conf /etc/httpd/conf.d/mod_security.conf.org # vi /etc/httpd/conf.d/mod_security.conf # Default recommended configuration # SecRuleEngine On ←コメントアウト SecRuleEngine DetectionOnly ←検知はするが、遮断はしない
・apacheの再起動
# systemctl restart apache
・ログ確認
# less /var/log/httpd/modsec_audit.log
・ルールの場所
# cd /etc/httpd/modsecurity.d/
KVM VMの自動起動/自動シャットダウン設定
・ホスト側の設定
# vi /etc/sysconfig/libvirt-guests START_DELAY=30 ON_SHUTDOWN=shutdown SHUTDOWN_TIMEOUT=180 # virsh autostart <自動起動したいVM名> # ls /etc/libvirt/qemu/autostart 解除する場合は下記 # virsh autostart --disable <自動起動したいVM名> # ls /etc/libvirt/qemu/autostart
・ゲスト側の設定
ホストのシャットダウン命令を受け付けるようにする
# yum -y install acpid # systemctl start acpid # systemctl enable acpid
KVM libvirt で cdrom をマウントする
# virus edit vm_name <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/storage-1/application_installer/ISO/virtio-win-0.1.139.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk>