Fitbit ionic を買った
今使ってる Charge HR が限界だったのと Android Wear でなくてもいいなという感じがあったので買った。
日本での発売日は 2018 年 1 月なのだが、Amazon のサイバーマンデーで先行販売されていた。
こんなチャンス逃してはいけないと思い、少しだけ考えてからポチった。
一通りセットアップをして触ってみた感じだと、
- タッチパネルの感度は良い
- アクティビティトラッカーメインのものが欲しいのならあり
- Android Wear や Apple Watch みたいに対応アプリがたくさんあるわけでもない
- まあ向こうでも出てそんなにたってないはず
まだ装着して 1 日過ごしたわけではないので電池の持ちや就寝時の状態とかが分からないが、とりあえずここまで。
あと、ウォッチフェイスとアプリの開発はブラウザベースの環境が提供されているようなので、機会があったら試してみたいと思う。
Web ページを Github Pages で作り直した
この 2 つを参考に Github Pages でページを作り直してみた。
自分の場合は既に onamae.com の方でいろいろ設定していたので、それを削除したらうまく表示されるようになった。
2017/01/30 時点での録画サーバ構築手順
Raspberry Pi 2 で動かしていたけど安定しなかったので、X220 で作り直したときのメモである(と言っても手順としては同じ)。
参考にした記事をベースに自分の環境だとこうだったという感じにしている。
Ubuntu のセットアップ
USB メモリに iso を書き込む。
$ diskutil list $ diskutil umountDisk /dev/disk3 $ sudo dd if=ubuntu-16.04.1-desktop-amd64.iso of=/dev/disk3 bs=1m
例のごとく、disk3 の 3 は環境によって変わる。
dd で書き込むのは結構時間がかかる上に、進行状況がわからないので放置して別の作業を。
USB メモリをブートし、適当にセットアップしていく。
GUI も使いたかったので今回は普通の Ubuntu を使った。
録画に最低限必要なものをインストール
セットアップした Ubuntu にいろいろ接続したり、必要なソフトウェアをインストールしていく。
必要なパッケージをまとめてインストール
ビルドや IC カードリーダを扱うのに必要なパッケージをまとめていれておく。
sudo apt -y install unzip \ build-essential automake pkg-config \ pcscd libpcsclite-dev pcsc-tools
各デバイスの接続
B-CAS カードを挿した IC カードリーダと USB タイプのチューナーをマシンに接続する。
$ lsusb | grep VidzMedia Bus 002 Device 003: ID 3275:0080 VidzMedia Pte Ltd $ ls /dev/dvb adapter0
細かい数字は環境によって変わると思うが、だいたいこんな感じの出力があれば問題ないはず。
チューナーに PX-S1UD V2.0 を選んだ。 Windows でインストーラ経由でなんとかするしかないが、無印版のものをそのまま使えるので、
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 sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware
上で設置した inp ファイルは 64 bit OS の場合なので、 32 bit OS だとパスが変わる。
無印版のものがそのまま使えているが、V2.0 のもので検証してみるのもありかもしれない。
設置が完了したら、チューナーを挿し直す(reboot が確実か?)。
IC カードリーダの確認は
$ pcsc_scan
を実行し、
Japanese Chijou Digital B-CAS Card (pay TV)
が途中で出ていればよい。 pcscd が動いていない場合は、
$ sudo systemctl start pcscd
でスタートさせる。
arib25 のビルドとインストール
デコードするのに必要なライブラリである arib25 をビルドしてインストールする。
$ cd <適当な作業ディレクトリ> $ curl -sL https://github.com/stz2012/libarib25/archive/09770e3.tar.gz | sudo tar zxv $ cd libarib25-09770e334837f6c67268c41c1c15784373d35e5b $ sudo chown -R $(whoami) . $ make $ sudo make install
recdvb のビルドとインストール
チューナーの操作を行うソフトウェアである recdvb をビルドしてインストールする。
$ cd <適当な作業ディレクトリ> $ curl -sL http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.1.tgz | sudo tar zxv $ cd recdvb-1.3.1 $ sudo chown -R $(whoami) . $ ./autogen.sh $ ./configure --enable-b25 $ make $ sudo make install
ここまでで録画自体は可能となっているのでテストする。
$ recdvb --b25 --strip --sid hd <チャンネル> <秒数> <ファイル名>
※ チャンネルはマスプロなどの表を参考に。
ログがいろいろ出るが、エラー(failed などそれっぽいもの)が無く、生成された m2ts が VLC などで再生できれば成功している。
cannot open frontend device
というものが出た場合は、
$ sudo adduser <実行ユーザ> video
何度かセットアップした限りでは、adduser は必須と言っても良いかもしれない。
録画を楽にするものをセットアップ
コマンドラインでチャンネルを指定して、録画したいタイミングで実行するのは現実的でない。そのため、UI で録画予約するための必要なものをインストールしていく。
今回は Chinachu を採用することとした(参考にしたやつがそうだったのと、TL で使っている人がいたので安定してるのかなーという判断)。
下準備
これからインストールする 3 つのソフトウェアはすべて Node.js で動作するので、先にその環境を構築する。
Mirakurun は Node.js 6.x が必要で、Ubuntu でそのままインストールできない(2017/01/30 時点)ので、
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - $ sudo apt-get install -y nodejs
また、プロセスマネージャが必要なので、pm2 をインストールする。
$ sudo npm install pm2 -g
Mirakurun のインストールと設定
雑な説明をすると、録画をするための RESTful API でいろいろといい感じにやってくれるようだ。LAN 内でチューナーを共有するということも可能である。
$ sudo npm install mirakurun -g --unsafe --production
設定を変更するのは下記コマンドを実行する(実装を調べてないがラッパになってるっぽい)。
$ sudo mirakurun config tuners
下記を追記する。
type や command さえあっていれば name は適当で良さそう。
- name: PX-S1UD-1 types: - GR command: recdvb --b25 --strip <channel> - -
チャンネルの設定は、
$ sudo mirakurun config channels
で行う。チャンネル表を見ながらもともとある設定を参考にすればよい。スカイツリーの地域であればそのまま、23 区の西の方であれば MX をいじれば大丈夫そう(他は知らん)。
必要な設定を一通りやったあとは反映させるためにリスタートする。
$ sudo mirakurun restart
Rivarun
Mirakurun クライアントで、同じサーバにインストールしなくてもいいが、検証用に入れておく。
$ sudo npm install rivarun -g
Mirakurun が正しく設定できたかを Rivarun 経由で確認する。
$ rivarun --ch <放送種別>/<チャンネル> <秒数> <ファイル名>
status コードが 200 で返ってきていれば問題なく動いている。
Chinachu
γ 版(2017/01/31 時点)を入れる。
$ git clone -b gamma git://github.com/kanreisa/Chinachu.git ~/chinachu $ cd ~/chinachu $ ./chinachu installer
インストーラを実行したら、 1) Auto (full)
を選択する。
次に、録画予約用の設定ファイルを設置する。
$ echo "[]" > rules.json
Chinachu の設定ファイルを作成する。サンプルが同じディレクトリにあるので、これをベースにする。
$ cp config.sample.json config.json $ vim config.json
基本的にデフォルトのままで良いが、wuiPort
は何かを入れておかないとうまくいかなかった(要検証)。
録画データは外付け HDD に設置したいので、recordedDir
も変更した。
外付け HDD のマウントに関しては前に書いた記事を参考にする。
動作確認のために下記 2 つコマンドを実行する。1 つ目のコマンドは、出力が止まったら Ctrl-C で抜ける。
$ ./chinachu service operator execute $ ./chinachu update
/etc/init.d から起動できるようにし、コマンドを叩いてそのままログインしっぱなしで放置、ということをしなくていいようにする。
$ ./chinachu service operator initscript > /tmp/chinachu-operator $ ./chinachu service wui initscript > /tmp/chinachu-wui $ cd /tmp $ sudo chown root:root chinachu-* $ sudo chmod 755 chinachu-* $ sudo mv chinachu-* /etc/init.d/ $ sudo update-rc.d chinachu-operator defaults $ sudo update-rc.d chinachu-wui defaults $ sudo service chinachu-operator start $ sudo service chinachu-wui start
最後に、ブラウザからアクセスして番組表の確認や録画予約をしておわり。
このWeb UI はリアルタイム視聴や録画データの再生なども可能である。
参考
Swap 領域を追加
Raspberry Pi に Swap 領域がなかったので追加したときの雑なメモ。 (メモリが足りなくていろいろちゃんと動いてないんじゃね?ってなったときの検証の名残)
前は専用のパーティションを作って〜っていうのをやった気がするが、今回は多分別の方法でやった。
Swap 領域の作成
適当な場所に適当なサイズで作成する。
$ mkdir /var/swap $ dd if=/dev/zero of=/var/swap/swap0 bs=1M count=2048 $ chmod 600 /var/swap/swap0 $ mkswap /var/swap/swap0 $ swapon /var/swap/swap0
例のごとく起動時に使えるように
/etc/fstab に下記を追記する。
/var/swap/swap0 swap swap defaults 0 0
Swap 領域の確認
$ cat /proc/swaps Filename Type Size Used Priority /var/swap/swap0 file 2097148 32968 -1
Raspberry Pi に外付け HDD を追加
とりあえずのマウント
今回改めて調べて知ったのだが、
$ sudo parted -l
で接続したストレージが確認できる。
結果はこんな感じになった。
$ sudo parted -l Model: WD My Passport 25E1 (scsi) Disk /dev/sda: 1000GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 1000GB 1000GB ntfs My Passport msftdata Model: SD USDU1 (sd/mmc) Disk /dev/mmcblk0: 64.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 4194kB 138MB 134MB primary fat16 boot, lba 2 138MB 64.5GB 64.4GB primary ext4
接続した外付け HDD を特定できたので、マウントする。
$ sudo mount -t ntfs /dev/sda1 <マウントしたいところ>
起動時に自動でマウントするように
/etc/fstab に設定を追記する。 diff 的にはこんな感じで、
$ diff before.txt after.txt 2a3 > UUID="FE6EB6976EB64863" /mnt/data ntfs defaults 0 0
LABEL=cloudimg-rootfs / ext4 defaults 0 0 LABEL=system-boot /boot/firmware vfat defaults 0 1 UUID="FE6EB6976EB64863" /mnt/data ntfs defaults 0 0
という感じになる。
UUID は
$ blkid
で接続した HDD の UUID を取得する。 fstab に追記する時にあったほうがいいという感じの記事がいくつかあったので、今回は使ってみることにする。