背景
子どもたちの成長の記録をDVDに記録している。
ただ、プレイヤーに毎回入れ替えて観るのが面倒になってきたので、DVDをISO形式に変換して取り込み、テレビで直接見る方法を検討。
自宅に眠っていたRaspberry PiにオープンソースのホームシアターソフトKodiをインストールして、テレビにHDMIで接続することで実現することに。
数年前に構築したが、時々ハードウェア更新などで再セットアップをしていて、その都度調べながら構築していたので、思い切って手順を書き起こした。
主に自分用に書いたものなので、ところどころ体裁が整っていない点はご容赦いただきたい。
ハードウェア
本体
- Raspberry Pi3 Model B
- 性能がアップした最新版の
Raspberry Pi4 Model B
もあるので、今から買うなら最新版でも可。 - 普通に買うと基板単体なのでケース付きがオススメ
- 性能がアップした最新版の
microSDカード
- 容量16GB以上が1枚あれば十分。
- ただし、class10規格対応必須。読み込み速度80MB/s以上だとGood。
- 相性問題について
- TOSHIBA製
推奨
- 相性問題の報告見つからず
- 我が家でも、現在はTOSHIBA製のmicroSDカードを使用しているが、半年以上使い続けても不具合なし
- SunDisk製
非推奨
- 相性問題の報告が多い
- 我が家でも、複数のSunDisk製microSDカードを使用したことがあるが、最初は問題なく使えていても数カ月後に起動しなくなるという事象を幾度となく経験した
- TOSHIBA製
USB電源とmicroUSBケーブル(5V、2.5A)
- 5V、2.5A程度を供給できるUSB電源とmicroUSBケーブルがあればOK。
- なければ、ラズベリーパイ公式の電源を用意する。
USBの外付けハードディスク
- DVDのデータを保存するハードディスク
HDMIケーブル
- ラズベリーパイ本体とテレビを接続するため
LANケーブル
- ラズベリーパイ本体をネットに繋げるため
(ルーターからテレビ付近に伸ばしておく)
ソフトウェア
Raspbianイメージの入手
国内ミラー:
http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/
Raspbianイメージのカスタマイズ
VMware Player上に、Ubuntu 18.04LTSのVMを構築して実施した。
# アーカイブを解凍する
$ unzip 2019-09-26-raspbian-buster.zip
$ ll 2019-09-26-raspbian-buster.img
-rw-r--r-- 1 user user 3829399552 Sep 25 17:31 2019-09-26-raspbian-buster.img
# イメージをマウントする
$ sudo apt install kpartx
$ sudo kpartx -a 2019-09-26-raspbian-buster.img
$ ll /dev/mapper/
合計 0
drwxr-xr-x 2 root root 100 Oct 4 06:28 ./
drwxr-xr-x 18 root root 4260 Oct 4 06:28 ../
crw------- 1 root root 10, 236 Oct 4 06:26 control
lrwxrwxrwx 1 root root 7 Oct 4 06:28 loop14p1 -> ../dm-0
lrwxrwxrwx 1 root root 7 Oct 4 06:28 loop14p2 -> ../dm-1
# bootパーティションをマウントしてSSHを有効化
$ sudo mkdir /mnt/pi
$ sudo mount /dev/mapper/loop14p1 /mnt/pi
$ sudo touch /mnt/pi/ssh
$ sudo umount /mnt/pi
# dataパーティションをマウント
$ sudo mount /dev/mapper/loop14p2 /mnt/pi
# 国内リポジトリに変更
# ping速度の早い順に記載しておくと良い
# 2019/10/04 22:48時点で(我が家の場合)
# - ftp.tsukuba.wide.ad.jp 8.284 ms
# - ftp.yz.yamagata-u.ac.jp 15.722 ms
# - ftp.jaist.ac.jp 16.049 ms
# ベースのDabianバージョンが変わっている場合は「buster」の部分を該当するコードネームに書き換える
$ sudo nano /mnt/pi/etc/apt/sources.list
deb http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/ buster main contrib non-free rpi
deb http://ftp.yz.yamagata-u.ac.jp/pub/linux/raspbian/raspbian/ buster main contrib non-free rpi
deb http://ftp.jaist.ac.jp/raspbian buster main contrib non-free rpi
# (任意)Wi-Fi設定
$ sudo nano /mnt/pi/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="HIKARI"
psk="takumana1014"
}
# dataパーティションのマウントを解除
$ sudo umount /mnt/pi
# イメージのマウントを解除する
$ sudo kpartx -d 2019-09-26-raspbian-buster.img
$ ll 2019-09-26-raspbian-buster.img
-rw-r--r-- 1 user user 3829399552 Oct 4 07:03 2019-09-26-raspbian-buster.img
# 転送用にイメージを再度圧縮
$ zip 2019-09-26-raspbian-buster.zip 2019-09-26-raspbian-buster.img
Raspbianイメージの書き込み
- 書き込みソフト:
https://www.balena.io/etcher/
Raspberry Piへの接続
コマンドプロンプト、PowerShell,WSLなど好みのターミナルから、Raspberry Piに接続する。
$ ping raspberrypi.local
$ ssh pi@raspberrypi.local
Raspberry Piの初期設定
# raspi-configによる初期設定
# 8 Update
# 1 Change User Password
# 4 Localisation Options > Change Locale
# 4 Localisation Options > Change Timezone
# 4 Localisation Options > Change Wi-fi Country
# 7 Advanced Options > Memory Split > 256
$ sudo raspi-config
# パッケージリストの更新&パッケージの更新
$ sudo apt update && sudo apt upgrade -y
# カーネルの更新
$ sudo apt dist-upgrade
# 不要パッケージ&ソースファイルの自動削除
$ sudo apt autoremove -y && sudo apt autoclean -y
# 再起動
$ sudo reboot
Kodiのセットアップ
# Kodiのインストール
$ sudo apt-get update && sudo apt-get install kodi -y
# 自動起動の設定
$ sudo nano /lib/systemd/system/kodi.service
[Unit]
Description = Kodi Media Center
After = remote-fs.target network-online.target
Wants = network-online.target
[Service]
User = pi
Group = pi
Type = simple
ExecStart = /usr/bin/kodi
Restart = on-abort
RestartSec = 5
[Install]
WantedBy = multi-user.target
$ sudo systemctl enable kodi.service
# 再起動
$ sudo reboot
USB接続した外付けHDDのマウント
# デバイス名を確認
$ sudo fdisk -l
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: HDP-U
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2B1D277F-A5FF-4D5A-8EFD-B19868879CA6
Device Start End Sectors Size Type
/dev/sda1 34 262177 262144 128M Microsoft reserved
/dev/sda2 264192 1953523711 1953259520 931.4G Microsoft basic data
# UUIDを確認
$ sudo blkid /dev/sda2
/dev/sda2: UUID="7CF45484F4544296" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c38a8a2e-f742-4dc6-bdec-13d0bf36688d"
# マウント先を作成
$ sudo mkdir /mnt/usb1
# 自動マウントの設定
$ sudo vi /etc/fstab
proc /proc proc defaults 0 0
PARTUUID=d9b3f436-01 /boot vfat defaults 0 2
PARTUUID=d9b3f436-02 / ext4 defaults,noatime 0 1
UUID="7CF45484F4544296" /mnt/usb1 ntfs defaults,noatime,nofail 0 0
# 再起動
$ sudo reboot
Kodi Tips
サムネイルの設定
フォルダのサムネイル
サムネイルを適用したいフォルダーの直下にfolder.jpg
を配置。
コンテンツのサムネイル
コンテンツと同じファイル名で拡張子を*.tbn
に変更した画像ファイルを配置。
例
[幼稚園]
+-- folder.jpg // フォルダのサムネイル画像
+-- 年少.iso
+-- 年少.tbn // "年少.iso"のサムネイル画像
+-- 年中.iso
+-- 年中.tbn // "年中.iso"のサムネイル画像
+-- 年長.iso
+-- 年長.tbn // "年長.iso"のサムネイル画像