録画サーバのデータをテレビで見たかったので Raspberry Pi に LibreELEC を入れてみた

Raspberry Pi ガチ勢ではないんですが、
3Bで音楽再生機を作ってみたり、4Bをチューナーサーバとして使ってファンを燃やしたりしてきました。

今回は「録画サーバのデータをリビングのテレビで快適に再生したい」という目的で 最近使ってなかったRaspberry Pi 3B を使うことにしました。

BDプレイヤーでの再生は意外と制限が多い

自宅の録画サーバには、地デジなどを録画したファイルが大量に保存されています。形式はよくある H.264 + AAC の mp4 です。

普段はEPGStationにて再生しているので特に困ることはないのですが、
家族向けかつテレビ向けとはなりません。

これをテレビで見るために、最初はシンプルに

  • USBメモリにコピー
  • 家庭用BDプレイヤーに挿す

という方法を試しました。

しかし、これが意外とうまくいきません。
仕様上は対応しているはずの H.264 + AAC でも、音声がとぎれとぎれで正常に再生されないなど、実際には正常に扱えず音声をAC-3に変換しないと正常に再生できませんでした。

ファイルをいちいち変換するのも面倒なので、別の方法を探すことにしました。

余っていた Raspberry Pi 3B を活用

そこで思い出したのが、引き出しに眠っていた Raspberry Pi 3B です。

「何か再生専用機にできないかな」と調べていると、LibreELEC というディストリビューションの存在を知りました。

LibreELEC は、Kodi を動かすことに特化した軽量 Linux です。

インストールも非常に簡単で、Raspberri Pi Imagerが公式に対応しているため、

  • Raspberri Pi Imager で microSD に書き込み
  • Raspberry Pi に挿して起動

これだけです。
面倒なセットアップはほぼありません。

Kodi の UX はやはり優秀

Kodi 自体は以前使ったことがありましたが、改めて使ってみると UX は非常によくできています。

特に良い点:

  • リモコン操作との親和性が高い(既存のテレビリモコンで操作できる)
  • 動作が軽い(3Bでも問題なし)
  • 再生互換性が非常に高い
  • UIがテレビ向けに最適化されている

BDプレイヤーでは再生できなかったファイルも、問題なく再生できました。

やはりソフトウェアプレイヤーは強いです。

ファイルサーバ側は miniDLNA で問題なし

録画サーバ側では、以前から miniDLNA を使っていました。

DLNAサーバとして非常にシンプルで、

  • 軽量
  • 安定
  • 設定が簡単

という特徴があります。

Kodi からも問題なく認識でき、

ビデオ → UPnP → miniDLNA

と辿るだけで録画一覧にアクセスできます。
この時点で目的は達成できました。

ChatGPT に他の選択肢も聞いてみた

せっかくなので、他にモダンな選択肢があるのか ChatGPT に聞いてみました。

いくつか候補が挙がりましたが、その中でも
「今から新しく導入するなら Jellyfin 一択」
とのことでした。

Jellyfin は

  • オープンソース
  • メタデータ管理
  • サムネイル生成
  • Web UI
  • ユーザー管理
  • トランスコード

など、非常に多機能なメディアサーバです。

さっそくインストールしてみました。

Jellyfin は高機能だが今回はオーバースペック

実際に使ってみると、確かに非常に高機能です。

  • ブラウザから操作できる
  • 見た目が美しい
  • ライブラリ管理がしっかりしている

しかし、今回の用途は
「録画ファイルをそのまま再生したいだけ」
です。

その観点では、

  • WebUIでのライブラリ登録が面倒
  • 求められるディレクトリの階層構造が存在する
  • 配信時にトランスコードを前提としている

といった点が扱いづらく感じました。

Jellyfin は「Netflix のような体験を自宅で再現する」用途には最適ですが、
「ファイルをそのまま再生する」
という用途では miniDLNA の方がシンプルで適していると感じました。

結論:Raspberry Pi + LibreELEC は最高の再生機

最終的な構成は以下になりました:

  • 再生機:Raspberry Pi 3B + LibreELEC (Kodi)
  • サーバ:録画サーバ + miniDLNA

この構成のメリット:

  • 非常に安定
  • ほぼすべての形式を再生可能
  • 動作が軽い
  • 消費電力が低い
  • 余っている Raspberry Pi を活用できる

特に「専用機感」があるのが良いです。

電源を入れればすぐ Kodi が起動し、録画一覧にアクセスできます。
BDプレイヤーのような制限もなく、PCのような煩雑さもありません。

余談:Raspberry Pi の再利用先として優秀

Raspberry Pi は、使い道がなくなって引き出しに眠りがちですが、

LibreELEC を入れるだけで優秀なメディアプレイヤーになります。

余っている Raspberry Pi がある方には、かなりおすすめの用途です。

written with ChatGPT

[2025年最新] raspberry pi でmirakurunを動かす

What I did.

カーネルのアップデートを行ったらカーネルヘッダのインストールの問題でpx4-drvを正常に動作させられなくなったので、
クリーンインストールをして再構築することにした。
先に結果を書くが、現環境でゴニョゴニョ頑張るより新環境を用意したほうが楽だった。

HW

  • RPI 4 2GB
  • PX-Q3U4
  • Generic Smart Card Reader Interface

OSの準備

Ubuntu の Imager を使い、raspberry PI OS 64bitの最新を書き込む
初期設定はしてから書き込んだほうが良い
Ubuntuと迷ったが、デフォルトOSの方が信頼性が高く性能的にも優位ということで選択
久々にFlashしたが、結構時間かかった(具体的に把握してない)
インストールされたバージョンは↓
Linux raspberrypitv 6.6.51+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64

起動後

#locale を設定
sudo raspi-config
# update
sudo apt update
sudo apt upgrade
# 2025/1/2時点では6.6.62が入った
sudo apt autoremove
sudo reboot

# 作業用ディレクトリ作成
WORK=~/tv
mkdir $WORK
cd $WORK

カードリーダー関連インストール

sudo apt install pcsc-tools pcscd
sudo systemctl start pcscd
sudo systemctl enable pcscd
sudo systemctl status pcscd
pcsc_scan

px4-drv インストール(ドライバ)

wget https://github.com/tsukumijima/px4_drv/releases/download/v0.5.1/px4-drv-dkms_0.5.1_all.deb
# apt install だとエラーになるので強引にインストール
#sudo apt install -y ./px4-drv-dkms_0.5.1_all.deb
sudo dpkg -i ./px4-drv-dkms_0.5.1_all.deb
sudo modprobe px4_drv
# 結果が表示されたらOK
lsmod | grep -e ^px4_drv

b25 インストール(復号化)


cd $WORK
sudo apt-get install build-essential pkg-config git cmake libpcsclite-dev
git clone https://github.com/stz2012/libarib25.git
cd libarib25
mkdir build
cd build
cmake ..
make
sudo make install
which b25

recpt1 インストール(録画ソフト)

この方法の場合、b25のインストールが絶対に先。
そうでないと録画に失敗する。

cd $WORK
sudo apt install autoconf automake
git clone --depth 1 https://github.com/stz2012/recpt1.git
cd recpt1/recpt1
./autogen.sh 
./configure --enable-b25
make
sudo make install
which recpt1

mirakurun インストール

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt install build-essential
sudo npm install pm2 -g
sudo npm install mirakurun -g --unsafe-perm --foreground-scripts --production
sudo mirakurun config server
sudo mirakurun config tuners
sudo mirakurun config channels

再起動

sudo apt update
sudo apt upgrade
sudo apt reboot

動作確認

http://raspberrypi.local:40772/ にアクセス
EventsやLogsの確認を行う
sudo pm2 status でmirakurunの動作状況を確認できる。

学び

  • 自身の遊び環境とはいえ、準備なしにカーネルのアップデートすな(当然)
  • アップデートの前にバックアップとれ(当然)
  • そもそもカーネルのアップデートはせずに新しいsdカードに新環境用意した方が良さそう
  • px4-drv を(別の方が)メンテしていてすごく助かった
  • rpi-clone で定期的にsdカードのバックアップ取るのは良さそう
    • ということで、新しいmicrosdを買いました。

サーバを再起動したら ZFS が起動しなくなった。

はじまり

台風が来たので、昨夜サーバを停止し、
今朝(昼)サーバを起動したらファイルサーバが正常に動いていません。
といっても、シンプルなディスク構成の部分は動いていて、zfsプールの箇所だけ動いてないという、本気で嫌なやつ。

調査

調べてみると、zfsの起動ができていない。

[root@xfs ~]# zfs --version
The ZFS modules are not loaded.
Try running '/sbin/modprobe zfs' as root to load them.
[root@xfs ~]# /sbin/modprobe zfs
modprobe: ERROR: could not insert 'zfs': Invalid argument
[root@xfs ~]# dkms --version
dkms:2.6

dmesg

[    3.756206] zfs: disagrees about version of symbol vn_getattr
[    3.756210] zfs: Unknown symbol vn_getattr (err -22)
[    3.758575] zfs: disagrees about version of symbol vn_getattr
[    3.758577] zfs: Unknown symbol vn_getattr (err -22)
[    3.760831] zfs: disagrees about version of symbol vn_getattr
[    3.760835] zfs: Unknown symbol vn_getattr (err -22)
[    3.763547] zfs: disagrees about version of symbol vn_getattr
[    3.763550] zfs: Unknown symbol vn_getattr (err -22)
[    3.765624] zfs: disagrees about version of symbol vn_getattr
[    3.765627] zfs: Unknown symbol vn_getattr (err -22)
[    4.176160] zfs: disagrees about version of symbol vn_getattr
[    4.176163] zfs: Unknown symbol vn_getattr (err -22)

調べると、モジュールのバージョンがかみ合ってないとか情報が。。

対応

最終的にはこちらを実行
https://github.com/zfsonlinux/zfs/issues/3986

[root@xfs ~]# yum erase zfs zfs-dkms libzfs2 spl spl-dkms
[root@xfs ~]# yum install zfs
[root@xfs ~]# reboot

ちなみに

reboot前に

/sbin/modprobe zfs
zpool status

をしたところ、プールが存在しなくて変な汗が出ましたが、
再起動したらプールが存在していました。

変な汗をかくのは嫌なので、もうちょっと知識を付けたいところ。
公式GitHubに書いてあるとおり、DKMS style はアップグレード毎にbuildが必要ってことみたいです。
普通は kABI-tracking kmod でインストールしろとのこと。

Raspberry pi 3 と PIFI Digi DAC+HIFI DAC で Volumio を楽しんでみた

今回用意したのは、
ギアべで安かった PIFI Digi DAC+HIFI DAC

まずは無心でVolumio のダウンロード
https://volumio.org/get-started/

続いていつものように解凍。

Mac で microSD にイメージ焼き。
参考:Raspberry Pi 2 + Volumio + DAC でネットワークオーディオに挑戦(その2)

My-Mac:~ owners-name$ df
Filesystem    512-blocks      Used Available Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   489825072 100724872 381504880    21% 1085195 9223372036853690612    0%   /
devfs                378       378         0   100%     656                   0  100%   /dev
/dev/disk1s4   489825072   6291496 381504880     2%       3 9223372036854775804    0%   /private/var/vm
map -hosts             0         0         0   100%       0                   0  100%   /net
map auto_home          0         0         0   100%       0                   0  100%   /home
/dev/disk2s2    30260336      2128  30258208     1%       0                   0  100%   /Volumes/RPI
My-Mac:~ owners-name$ df
Filesystem    512-blocks      Used Available Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   489825072 100723464 381506288    21% 1085152 9223372036853690655    0%   /
devfs                378       378         0   100%     656                   0  100%   /dev
/dev/disk1s4   489825072   6291496 381506288     2%       3 9223372036854775804    0%   /private/var/vm
map -hosts             0         0         0   100%       0                   0  100%   /net
map auto_home          0         0         0   100%       0                   0  100%   /home
/dev/disk2s2    30260336      2144  30258192     1%       0                   0  100%   /Volumes/RPI
My-Mac:~ owners-name$ df
Filesystem    512-blocks      Used Available Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   489825072 100737080 381492672    21% 1085163 9223372036853690644    0%   /
devfs                378       378         0   100%     656                   0  100%   /dev
/dev/disk1s4   489825072   6291496 381492672     2%       3 9223372036854775804    0%   /private/var/vm
map -hosts             0         0         0   100%       0                   0  100%   /net
map auto_home          0         0         0   100%       0                   0  100%   /home
/dev/disk2s2    30260336      2480  30257856     1%       0                   0  100%   /Volumes/RPI
My-Mac:~ owners-name$ sudo diskutil unmount /dev/disk2s2
Password:
Volume RPI on disk2s2 unmounted
My-Mac:~ owners-name$ sudo dd bs=1m if=~/volumio-2.362-2018-02-12-pi.img of=/dev/rdisk2
2800+0 records in
2800+0 records out
2936012800 bytes transferred in 399.316915 secs (7352588 bytes/sec)
My-Mac:~ owners-name$ exit

ラズパイに microSD を挿す
ラズパイに オーディオボードを挿す

で、電源つなぐ(起動)

暫く待つと、 http://volumio.local で接続が可能になり、
ブラウザ上でセットアップが可能。

※I2Sデバイスの選択では、 Hifibetty DAC Plus を選ぶと良いらしい。
参考:Configure Volumio with PiFi DIGI DAC+

で、セットアップが完了したら動作確認へ。

DLNAからの再生もUSBメモリからの再生も問題なし。

ステレオミニ、RCAどちらも再生できました。

CentOS 6.7 に ReadyMedia (MiniDLNA) をインストールした

Mediatombがあまりにも更新されないので、
新しいDLNAサーバを入れてみることに。

調べてみると、ReadyMedia(旧miniDLNA)がよさげ。
早速入れてみた。

ReadyMedia(miniDLNA) on CentOS7
これをみて進めたらスクリプトのとこで 環境(CentOS 7) の差異が…

ってことで、
ReadyMedia (MiniDLNA) のインストール方法
CentOS6.0 に minidlna インストール
このあたりを参考に完了