Windowsのアップデートの影響か、元々[Shift]+[Space]でやっていた切り替えが最近できなくなったので、メモを兼ねて
結論から言うと、下画像のキーの割り当てがオフの状態になっていた。
その下の設定もデフォルトでは何か違うことになっていた。
英語キーボードなので、無変換とか変換キーとかそもそも物理的に存在しないので、
デフォルトそのまま。
Windowsのアップデートの影響か、元々[Shift]+[Space]でやっていた切り替えが最近できなくなったので、メモを兼ねて
結論から言うと、下画像のキーの割り当てがオフの状態になっていた。
その下の設定もデフォルトでは何か違うことになっていた。
英語キーボードなので、無変換とか変換キーとかそもそも物理的に存在しないので、
デフォルトそのまま。
root からのメール
11/23
CurrentPendingSector
Device: /dev/sdd [SAT], 8 Currently unreadable (pending) sectors
OfflineUncorrectableSector
Device: /dev/sdd [SAT], 8 Offline uncorrectable sectors
11/24
FailedReadSmartData
Device: /dev/sdd [SAT], failed to read SMART Attribute Data
12/3
CurrentPendingSector
Device: /dev/sdd [SAT], 16 Currently unreadable (pending) sectors
OfflineUncorrectableSector
Device: /dev/sdd [SAT], 16 Offline uncorrectable sectors
12/4
FailedReadSmartData
Device: /dev/sdd [SAT], failed to read SMART Attribute Data
ZFS の状況確認
# zpool status
pool: tank
state: DEGRADED
status: One or more devices has been removed by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scan: resilvered 55.5G in 0 days 00:15:39 with 0 errors on Thu Dec 3 16:27:00 2020
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX1 ONLINE 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX2 REMOVED 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX3 ONLINE 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX4 ONLINE 0 0 0
ata-ST4000DM004-2CV104_ZFN15XXr ONLINE 0 0 0
errors: No known data errors
隔離されてる。
2年半使っていて保証切れてるし、交換(4TB->8TB)することに。
まずは注文
SEAGATE 3.5インチ内蔵HDD8TB ST8000DM004 (8TB SATA) 代理店保証1年 価格:13816円(税込、送料別) (2020/12/9時点)楽天で購入 |
届いたら、電源を切り、HDD入れ替え
IDを確認
# ls -lh /dev/disk/by-id/
zpoolの状況を確認
$ zpool status
pool: tank
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
scan: resilvered 55.5G in 0 days 00:15:39 with 0 errors on Thu Dec 3 16:27:00 2020
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX1 ONLINE 0 0 0
9999999999999994100 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-ST4000DM004-2CV104_ZFN15XX2-part1
ata-ST4000DM004-2CV104_ZFN15XX3 ONLINE 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX4 ONLINE 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX5 ONLINE 0 0 0
errors: No known data errors
差し替え
# zpool replace tank ata-ST4000DM004-2CV104_ZFN15XX2 ata-ST8000DM004-2CX188_ZCTXXXXX
再同期中の様子
# zpool status
pool: tank
state: DEGRADED
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Tue Dec 8 17:23:26 2020
186G scanned at 9.80G/s, 9.62M issued at 519K/s, 12.3T total
0B resilvered, 0.00% done, no estimated completion time
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX1 ONLINE 0 0 0
replacing-1 DEGRADED 0 0 0
9999999999999994100 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-ST4000DM004-2CV104_ZFN15XX2-part1
ata-ST8000DM004-2CX188_ZCTXXXXX ONLINE 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX3 ONLINE 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX4 ONLINE 0 0 0
ata-ST4000DM004-2CV104_ZFN15XX5 ONLINE 0 0 0
errors: No known data errors
今現在、22時間経っていますが、半分くらいの時間は書き込みも読み込みも行っており、
こんな感じで半分が進んだ程度。
$ zpool status
pool: tank
state: DEGRADED
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Tue Dec 8 17:23:26 2020
8.79T scanned at 116M/s, 8.37T issued at 110M/s, 12.3T total
1.67T resilvered, 68.11% done, 0 days 10:22:24 to go
その後、再同期完了後にpoolを確認すると、エラーの表示が
$ zpool status -x
pool: tank
state: ONLINE
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-9P
scan: resilvered 2.43T in 1 days 07:34:55 with 0 errors on Thu Dec 10 00:58:21 2020
エラーをclearすることに
$ sudo zpool clear tank
$ zpool status -x
all pools are healthy
一回再起動しとこう。。
実運用というより今後のためのテスト目的だったが、そういった意味ではうまく行った。
苦労したくないなら、ハードウェアは新しいものを使ったほうが情報が集まりやすくて良いのではないかと思う。
NFSを使ってファイル鯖に動画を保存するようなことも試したが、
ラズパイ3のエンコードはおそすぎるので役割を分割し、
EPGStation は自作ファイル鯖で動作させるようにした。
また、ラズパイ3は100Mbpsの有線ネットワークなので、
Gigabit対応のUSBのLAN(ただしUSB2.0接続なので、480Mbpsが上限)を接続し、
有線の速度をマシにした。
テストは無事だったのでラズパイ4買うか。
# インストール
sudo apt install gcc g++ libboost-thread-dev libboost-system-dev libboost-filesystem-dev
git clone https://github.com/stz2012/recfsusb2n.git
cd recfsusb2n
make
sudo make install
sudo gpasswd -a pi video
sudo reboot
# 確認
lsusb | grep 0511
# => "Bus 001 Device 004: ID 0511:0029 N'Able (DataBook) Technologies, Inc."
# 録画テスト ※地域に合わせてチャンネル指定を。
# https://www.maspro.co.jp/contact/bro/bro_ch.html
# 下記の例だと、26チャンネルを30秒録画する
recfsusb2n -bv 26 30 test.ts
別の端末に持ってきて適当なプレイヤーで再生テストする。
scp user@ip:test.ts .
再生できたらもう作業の殆どが終わり。
当初Docker版を入れようとしてたが、
armは非対応だったため、npmでインストールすることになった。
公式ドキュメントはこちらだが、
nodejs ver.14 だとEPGStationが対応してないようなので、ver.12で以下のように入れた。
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install pm2 -g
sudo npm install mirakurun -g --unsafe-perm --production
# 必要であれば編集する
sudo mirakurun config server
# RECFSUSB2Nとの連携を設定する
sudo mirakurun config tuners
#- name: KTV-FSUSB2
# types:
# - GR
# command: recfsusb2n -bv <channel> - -
# isDisabled: false
# 東京タワー以外の方はチャンネルも更新する
# 先程のマスプロのリンク参照
sudo mirakurun config channels
# 起動
sudo mirakurun start
sudo mirakurun status
# テスト
curl http://localhost:40772/api/version
バージョンが返ってきたらOK
公式ドキュメント通り進める。
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation/
npm install --no-save
cp config/config.sample.json config/config.json
cp config/operatorLogConfig.sample.json config/operatorLogConfig.json
cp config/serviceLogConfig.sample.json config/serviceLogConfig.json
## ffmpeg ffprobe のパスの書き換え
vi config/config.json
# "ffmpeg": "/usr/bin/ffmpeg",
# "ffprobe": "/usr/bin/ffprobe",
# encoder はlibx264だと現実的な速度がでないので、h264_omx を利用したほうが良いと思われる。
# 下のブロックに変更内容を記載する。
# 自動起動設定
sudo pm2 startup
pm2 start dist/server/index.js --name "epgstation"
pm2 save
# 動作確認
curl -I http://localhost:8888/
$ # エンコードは最低レベルの変更で以下のように変更した。
$ #yadifを入れると、変換速度が半分ほどになり、15fpsほどしか出ないので速度重視なら抜いてもいいかも。
$ git diff
diff --git a/config/enc.js b/config/enc.js
index 81ae7c8..8e9191f 100644
--- a/config/enc.js
+++ b/config/enc.js
@@ -11,7 +11,8 @@ const videoHeight = parseInt(process.env.VIDEORESOLUTION, 10);
const isDualMono = parseInt(process.env.AUDIOCOMPONENTTYPE, 10) == 2;
const audioBitrate = videoHeight > 720 ? '192k' : '128k';
const preset = 'veryfast';
-const codec = 'libx264';
+const codec = 'h264_omx';
+const bitrate = '3000k';
const crf = 23;
const args = ['-y', '-analyzeduration', analyzedurationSize, '-probesize', probesizeSize];
@@ -32,9 +33,9 @@ Array.prototype.push.apply(args,['-movflags', 'faststart']);
// video filter 設定
let videoFilter = 'yadif';
-if (videoHeight > 720) {
- videoFilter += ',scale=-2:720'
-}
+//if (videoHeight > 720) {
+// videoFilter += ',scale=-2:720'
+//}
Array.prototype.push.apply(args, ['-vf', videoFilter]);
// その他設定
@@ -42,7 +43,8 @@ Array.prototype.push.apply(args,[
'-preset', preset,
'-aspect', '16:9',
'-c:v', codec,
- '-crf', crf,
+ '-b:v', bitrate,
+// '-crf', crf,
'-f', 'mp4',
'-c:a', 'aac',
'-ar', '48000',
ローカルネットワーク内のブラウザから
http://<IP of RaspberryPi>:8888/
にアクセスして表示されたら作業完了。
ファイルサーバにつながらなくてサーバを再起動したのですが、
やはりつながらない。
軽く確認したところ、
[root@xfs ~]# zpool list
The ZFS modules are not loaded.
Try running '/sbin/modprobe zfs' as root to load them.
[root@xfs ~]# /sbin/modprobe zfs
modprobe: FATAL: Module zfs not found.
また、このパターン
そして、
[root@xfs ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[root@xfs ~]# history | grep zfson
258 sudo yum install http://download.zfsonlinux.org/epel/zfs-release.el7_7.noarch.rpm
259 gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux
バージョンあってなさそう。。
公式リポジトリを確認したことろ、7.8対応のバージョンはまだなさそう。
ということで、CentOSのバージョンを落とすことに。
ダウングレードした後は、reboot
そして、zfsを最初からインストールし直し。
[root@xfs ~]# zpool list
The ZFS modules are not loaded.
Try running '/sbin/modprobe zfs' as root to load them.
[root@xfs ~]# /sbin/modprobe zfs
modprobe: FATAL: Module zfs not found.
まだ動かない。
カーネルのバージョンが問題の様子(7.8導入のカーネルが動いている)
[root@xfs ~]# uname -r
3.10.0-1127.el7.x86_64
ということで、古いカーネルをインストール(削除したので)
[root@xfs ~]# yum install kernel.x86_64 0:3.10.0-1062.el7
マシンを再起動し、起動中のカーネル選択画面で、1062を選択
無事起動したら、最新カーネルを削除する
[root@xfs ~]# yum remove kernel-3.10.0-1127.el7.x86_64
そして、改めてzfsの再インストール
再度、reboot
そして、、復活!!
自宅マシンとは言え、勝手にバージョンが上がるのは問題あるなと痛感。
公式サイトからdebファイルがDLできるのですが、
以下の通り、そのままではインストールできませんでした。
$ sudo apt install ~/Downloads/steam_latest.deb
[sudo] password for username:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Note, selecting 'steam-launcher' instead of '/home/username/Downloads/steam_latest.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
steam-launcher : Depends: python but it is not installable
E: Unable to correct problems, you have held broken packages.
書いてある通りなんですが、pythonというコマンドが使えないため、エラーとなっています。
というのも、デフォルトでpython3がインストールされており、
コマンドもpython3です。
$ which python
$ which python3
/usr/bin/python3
こちらに書いてありました。
$#ダウンロードする。
$ wget https://repo.steampowered.com/steam/archive/precise/steam-launcher_latest-beta_all.deb
$#インストールする
$ sudo apt install ~/Downloads/steam-launcher_latest-beta_all.deb
私の場合はこれで行けました。
またすぐに更新されると思うので、そのうち通常版でインストールできるようになると思いますが、念の為。