Raspberry Piを用いたDLNAホームサーバー

Raspberry Pi(ラズベリー・パイ)は、イギリスのラズベリーパイ財団 (Raspberry Pi Foundation) によって開発されているシングルボードコンピュータです。ARMプロセッサを搭載しており、 ハードディスクドライブHDDやソリッドステートドライブSSDを内部に搭載しない代わりに、 SDメモリーカード(SDカード)を起動と保存用のストレージに利用しています。

Raspberry Pi 2 Model B これまで仕様が異なる数種類のモデルが順に発売されてきましたが、2015年2月に発売された名刺サイズの「Raspberry Pi 2 Model B」 (右写真)は、前モデルに比べて、CPUが4コアになり、動作周波数も900MHzに拡大し、メモリは1GBに倍増するなど性能が大幅に向上しています。

Raspberry Piは、学校などで基本的なコンピュータ科学の教育を促進することを主な目的に開発されてきましたが、 UnixをOSとして使用し、各種センサーを接続できるインターフェースを備えているので、様々な使い方が提案されて利用されています。
例えば、センサーやカメラを接続して制御マシンとして用いたり、ロボットのコントロールなどにも用いられていますが、 家庭内のホームネットワークに接続すれば、図1のように、 DLNA対応のホームサーバーやファイル共有サーバーとしても利用することができます。 特に、消費電力が約3Wと通常のパソコンの1/10程度なので、電源を入れっぱなしにしておくサーバーに適しています。 また、ストレージの記憶容量はUSB-HDDを外付けすれば容易に大容量化できます。

ここでは、「Raspberry Pi 2 Model B」を家庭内のホームネットワークに接続して、DLNAサーバーとして用いる場合について紹介していきます。
主な紹介項目を以下に列挙しました。

  • Raspberry Pi 2 Model Bの構成と仕様
  • Raspberry Pi 2 Model Bの初期設定と操作
  • Raspberry Piを用いたDLNAサーバーの設定方法
  • Raspberry PiにUSB-HDDを接続してストレージ容量を増大
  • Raspberry PiにスマートフォンやPC、TV等からアクセス

図1 Raspberry Piを用いたDLNAホームサーバー

Raspberry Piを用いたホームサーバー


<最新情報>
「Raspberry Pi 2 Model B」に比べて、CPUが64bit対応となり、動作クロックも1.2GHzになった新モデル「Raspberry Pi 3 Model B」が2016年2月に発売されました。 新たにWi-FiとBluetooth 4.1がボードに標準搭載されています。

小型化、低価格化した5ドルの「Raspberry Pi Zero」が2015年11月25日(英国)に発表されており、 日本でも入手できるようになっています。

<価格情報>
Raspberry Pi 3 Model B (Element14) (4コア、64Bit、1.2GHz、1GB、USBx4)
Raspberry Pi 3 Model B ボード&ケースセット (Element14版, Clear) (4コア、64Bit、1.2GHz、1GB、USBx4)
Raspberry Pi 2 Model B (4コア、900MHz、1GB、USBx4)
Raspberry Pi 2 Model B ボード&ケースセット (4コア、900MHz、1GB、USBx4)
Raspberry Pi MODEL B+ &専用ケ-ス (1コア、700MHz、512MB、USBx4)






Raspberry Pi 2 Model Bの構成と仕様

Raspberry Pi 2 Model Bの上面写真を図2に掲載しました。中央部にクワッドコアのCPUやGPU等が集積されたBroadcom社のSoC「BCM2836」が配置されており、 その裏面には1GBのメモリが配置されています。 USB2.0のポートを4個備えているので、キーボード、マウス、USB-HDDなどを接続でき、 Wi-Fi無線LAN子機アダプタも取り付けられます。
出力ポートはHDMIとコンポジット信号端子が備えられているので、デジタルTVやディスプレイなどに直接に接続できます。
また、各種センサーを接続できるGPIO端子(40ピン)とDisplay Serial Interface(15ピンフラットケーブルコネクタ)、 カメラを接続するMIPIカメラインターフェース(15ピン)が備えられています。
電源は、USB電源アダプタをマイクロUSBポートに接続して供給します。

<SDカードとカードスロットについて>
Raspberry Pi 2 Model B の起動やストレージはマイクロSDカードを利用しています。少なくとも8GB以上の高速タイプが必要です。 これを挿入するためのカードスロットは裏面に配置されています。

図2 Raspberry Pi 2 Model B

Raspberry Pi 2 Model B


表1 Raspberry Pi 2 Model Bの主な仕様

項 目 仕 様

CPU

ARM Cortex-A7(900MHz、4コア)

メモリ

1GB SDRAM (LPDDR2)

ストレージ

マイクロSDカードを挿入
(8、16、32GB)

OS

Linux OS Raspbian

LANポート

IEEE802.3 10/100Mbpsイーサネット

HDMIポート

TVやディスプレイのHDMIポートに接続

コンポジットポート

3.5mmΦのミニジャックが備えられている

USBポート

USB2.0が4ポート
(マウス、キーボード、メモリ、HDD、Wi-Fiアダプタ等を接続)

MicroUSBポート

電源のACアダプタをUSBケーブルで接続

SDスロット

MicroSDカードに対応。
(8/16/32GBなど。高速なクラス10が適している)

低レベル周辺機器I/F

GPIO 40 ピン

ディスプレイコネクタ

Display Serial Interface(DSI)
15ピンフラットケーブルコネクタ

カメラコネクタ

15ピンMIPIカメラインターフェース

発熱対策

低消費電力なので特に対策は不要。





Raspberry Pi の初期設定と操作

Raspberry Piの起動はSDカードにインストールしたLinuxを用いて行うので、 最初にパソコンを用いてSDカードにOS設定ソフトをインストールする必要があります。
(Raspberry Pi 2 Model BではマイクロSDカードを使用)
次に、このSDカードをRaspberry Piに挿入して、専用OS(通常は、Raspbianを利用)をインストールします。
続いて、各種設定を行っていくと図3に示したようなトップ画面が表示されます。 左上と右上にはメニュー等が図4のように配置されています。

OSのインストール方法や各種設定方法は関連サイトや書籍等で詳しく解説・説明されているので、ここでは省略しますが、 次の点に注意しておく必要があります。

  • 日本語表示させる時に文字化けする場合がある。
  • 日本語フォントの選択(ゴシック表示はtakaoフォントが適している)。
  • ルート権限とユーザー権限の違い。
  • 階層構造に注意してディレクトリーを作成、移動。
  • 無線LANの設定。
  • パソコンとの連携(SSHで接続)。


<Raspberry Piの操作>
Raspberry Piの操作は図3の画面でマウスやキーボードで行えますが、ホームネットワークを介して接続したパソコンからリモート操作することもできます。 そのためには、次のような暗号通信のSSH(Secure Shell)を使用します。
Raspberry PiのOSであるRaspbianには、このSSHが搭載されているので、 リモートターミナルソフトの「Tera Term」や、 ファイル交換ソフトの「FileZilla」 をパソコンにインストールして利用すればRaspberry Piをリモート操作することができます。

Tera TermとFileZillaの画面を図5と図6に掲載しておきました。
Tera TermはRaspberry Piを操作するコマンドをパソコンから入力することができます。
また、FileZillaはパソコンのフォルダやファイルを左側に表示して、右側にはRaspberry Piのディレクトリー(フォルダ)やファイルを表示できるので、 パソコンとRaspberry Piの間でファイルを簡単にコピーすることができます。


図3 Raspberry Piの表示画面

Raspberry Pi 2の表示画面


図4 Raspberry Piの操作メニューを拡大

Raspberry Piの操作メニューを拡大1 Raspberry Piの操作メニューを拡大2


図5 パソコンからリモート操作(Tera Term)
(USB-HDD内のディレクトリーと動画コンテンツを表示)

パソコンからリモートアクセス(Tera Term)


図6 パソコンからリモート操作(FileZilla)

パソコンからリモートアクセス(FileZilla)




Raspberry Pi を用いたDLNAサーバーの設定方法

機器間相互接続方式のDLNAに対応するようにRaspberry Piを設定しておけば、 Raspberry Piのストレージ装置に保存した動画、画像、音楽などのコンテンツをホームネットワークに接続されたDLNA対応クライアント機器に配信することができます。
DLNA対応クライアント機器としては、パソコン、テレビ、BDレコーダー、ゲーム機(PS3/PS4、Xbox、他)、スマートフォン/タブレットなどが利用できます。

このようにRaspberry Piを用いてDLNAサーバーを構築するメリットとしては、

  • 低消費電力なので電源を付けっぱなしにできる。
  • NASに比べて低価格なUSB-HDDを利用できる。
  • USB-HDDを追加するだけで大容量化できる。

などが挙げられます。

DLNAサーバーの設定手順
1.DLNAサーバーソフトの「minidlna」をインストールする。
  $ sudo apt-get install minidlna

2.動画、画像、音楽を保存するためのDLNA対応のディレクトリーを作成する。
  $ cd /var/lib/minidlna (minidlnaディレクトリーに移動する)
  $ sudo mkdir movies (moviesディレクトリーを作成する)
  $ sudo mkdir photos (同上)
  $ sudo mkdir musics (同上)

3.各ディレクトリーがDLNAに対応するように設定ファイルを編集する。
  $ sudo nano /etc/minidlna.conf (minidlna.confを編集する)
minidlna.confファイルの中に、次の行を追記する。
  medir_dir = /var/lib/minidlna (minidlna.conf内にこの行を追記する)

4.各ディレクトリーにアクセスできるように所有者をユーザーのpiに変える。
  $ sudo chown pi:pi movies photos musics

以上で、各ディレクトリーに動画、画像、音楽のファイルを保存することができるので、 ファイル交換ソフトのFileZillaを用いてパソコンからRaspberry Piのmovies等の中にコンテンツをコピーすることができます。
moviesの中にMP4動画をコピーした事例を図7に掲載しました。ホームネットワークを介してDLNA対応クライアントでアクセスすれば、 この動画を再生・視聴することができます。



図7 Raspberry Piのディレクトリー内に動画コンテンツをコピー
(Raspberry Piのファイルマネージャで表示)

Raspberry Piのディレクトリー内に動画コンテンツをコピー




Raspberry PiにUSB-HDDを接続してストレージ容量を増大

Raspberry Piのストレージは起動用のSDカードを利用しているので、OSやアプリケーションソフト以外で自由に使えるストレージ用の容量は少なくなってしまいます。 従って、高画質な動画などを保存するには大容量のストレージ装置が別に必要になりますが、 USB-HDDを接続すれば大容量のストレージ装置として利用できます。

USB-HDDの接続と設定
1.USB-HDDを初期化するために情報を表示する。
  $ dmesg (USB-HDDのデバイスファイル名等が分かる。通常は、sda)

2.HDDのパーティションを再設定する。
  $ sudo umount /dev/sda1
  $ sudo fdisk /dev/sda (パーティションsdaの設定を開始)

3.設定を開始する。
  pを入力 (パーティションが一覧表示される)
  dを入力 (パーティションを削除)
  nを入力 (新しいパーティションを作成)
  pを入力、1を入力 (Partition typeを決める)
  Enterキーを2回押す (パーティションの先頭とサイズを決める)
  tを入力、83を入力 (パーティションタイプを指定)
  wを入力 (パーティションを書き換える)

4.上記のパーティションにファイルシステムを構築するために、下記を実行する。
  $ sudo mkfs.ext4 /dev/sda1

次に、このストレージを特定のフォルダ(ディレクトリー)にマウントする操作を行う。
ここでは、/var/shareの中に新しいディレクトリーhddを作っておいて、/var/share/hdd にマウントすることにします。
  $ cd /var/share
  $ sudo mkdir hdd
そのために、まずUSB-HDDの識別値UUIDを調べてコピーしておきます。
  $ sudo blkid /dev/sda1 (識別値UUIDが表示される)

続いて、マウントの設定fstabを編集するためにエディタnanoで開いて、その末尾にUUIDを追記する。
  $ sudo nano /etc/fstab
追記内容は、「UUID=調べたUUID /var/share/hdd ext4 defaults 0 0」

最後に、上記の設定をマウントする。
  $sudo mount -a

以上で、hddディレクトリー(USB-HDD)にコンテンツを保存できます。 なお、hdd内にmovies、photos、musicsなどのディレクトリーを更に作成しておくと便利です。
これらをDLNA対応にするには、DLNA設定ファイルのminidlna.confを編集して、
  medir_dir=/var/share/hdd (minidlna.conf内にこの行を追記する)
を追記しておきます。
  $ sudo nano /etc/minidlna.conf (minidlna.confを編集する)

FileZillaを用いて、動画コンテンツを2つパソコンからコピーした例を図8(Raspberry Piのファイルマネージャで表示)に掲載してあります。


図8 Raspberry Piに接続したUSB-HDD内のmoviesフォルダに動画ファイルを保存
(Raspberry Piのファイルマネージャで表示)

Raspberry Piに接続したUSB-HDDに動画コンテンツをコピー




Raspberry Pi にスマートフォン、PC、TVなどからアクセス

スマートフォンのDLNA対応アプリ「Twonky Beam」を用いると、 以下の図9-1のようにRaspberry PiがDLNA対応サーバーとして認識されています。 また、動画を選択すると、動画ファイルが保存されているhdd(USB-HDD)とminidlnaディレクトリー(マイクロSDカード内) が図9-2のように表示されています。



図9-1 Twonky Beamの画面

Twonky Beamの画面1

図9-2 DLNA対応フォルダ

Twonky Beamの画面2