Raspberry Pi 3でファイルサーバ兼iTunesサーバを作る
Raspberry PiとUSB HDDで家庭用サーバを作るにあたって、設定した内容のメモ。
用意するもの
- Raspberry Pi 3 Model B
- microSDカード 32GB
- USB電源アダプタ、USB-microUSBケーブル(2.4A対応)
- HDMIディスプレイ、HDMIケーブル
- USBキーボード
- USB HDD
- スピーカー
Raspbian Jessie Liteのダウンロード
公式サイトのダウンロードページから、Raspbianをダウンロードする。 今回GUIは不要なので、Liteを選択した。
Win32DiskImagerでmicroSDカードに書き込む
公式サイトから、Win32DiskImagerをダウンロードし、インストールする。 これを使い、RaspbianのイメージをmicroSDカードに書き込む。
Raspberry piを起動
microSDカードを入れ、HDMIディスプレイ、USBキーボードを接続した後、microSDケーブルからUSB電源に繋ぐ。
ログインコンソールが表示されるので、デフォルトアカウントのpi/raspberry
でログインする。
raspi-config
Raspberry Piには設定用コマンドとしてraspi-configが用意されている。
$ sudo raspi-config
上のコマンドで表示される設定画面から、以下の設定を行う。
1 Expand FileSystem 2 Change User Password 5-2 Change Timezone 5-4 Change Wifi Country
1を行うことで、microSDカードの容量すべてがルートに割り当てられるようになる。
$ df -h
無線LANの設定
Raspberry Pi 3にはIEEE 802.11 b/g/n 2.4GHzの無線LANアダプタがついているので、これを使うように設定する(802.11a 5GHzには対応していないことに注意)。
$ sudo iwlist wlan0 scan
SSIDが見つかったら、対応するパスフレーズと合わせて設定する。 ここで、設定ファイルにパスフレーズがコメントとして書き込まれるので、必要に応じて消しておく。
$ sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf' $ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
固定IPアドレスを使うようにネットワーク設定を変更する。
$ sudo vi /etc/network/interfaces allow-hotplug wlan0 #iface wlan0 inet manual iface wlan0 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
ネットワークを再起動し、IPアドレスが割り当てられていること、ゲートウェイに接続できることを確認する。
$ sudo /etc/init.d/networking restart $ ifconfig $ ping 192.168.0.1
パッケージアップデート
最初に、リポジトリを日本のサーバに変えておくとよい。
$ sudo vi /etc/apt/sources.list #deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi deb http://ftp.jaist.ac.jp/raspbian/ jessie main contrib non-free rpi # Uncomment line below then 'apt-get update' to enable 'apt-get source' #deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
apt-getコマンドでパッケージを最新のものにアップデートする。
$ sudo apt-get update $ sudo apt-get upgrade
USB HDDをマウント
NTFSでフォーマットされたUSB HDDを接続する。
まず、ntfs-3gパッケージをインストールする。
$ sudo apt-get install ntfs-3g
次に、lsblkコマンドで接続したHDDのUUIDを調べる。
$ sudo lsblk -f
マウントするディレクトリを作成し、/etc/fstabにUSB HDDを追加する。 ここでは、全ユーザが読み書きできるよう、デフォルトのパーミッションを777/666にしている。
$ sudo mkdir /mnt/usb1 $ sudo vi /etc/fstab UUID=5C9C8E069C8DDAC2 /mnt/usb1 ntfs-3g dmask=000,fmask=111 0 0 $ sudo reboot
再起動して、HDDが正常にマウントされていることを確認する。
$ ls -al /mnt/usb1
Sambaのインストール
Windowsからファイル共有できるように、Sambaをインストールする。
まず、sambaパッケージをインストールする。
$ sudo apt-get install samba
次に、設定ファイルに共有したいディレクトリの設定を追記する。
$ sudo vi /etc/samba/smb.conf [usb1] comment = usb1 path = /mnt/usb1 public = yes writable = yes printable = no
最後に、Windowsのエクスプローラから\\192.168.0.2
にアクセスし、共有されたディレクトリが見えているか確認する。
forked-daapdのインストール
iTunesサーバとして音楽をPCで再生(DAAP)、Raspberry Piで再生(MPDまたはDACP)できるように、forked-daapdをインストールする。
まず、リポジトリを追加し、forked-daapdパッケージをインストールする。
$ sudo vi /etc/apt/sources.list deb http://www.gyfgafguf.dk/raspbian jessie/armhf/ $ sudo apt-get update $ sudo apt-get install forked-daapd
設定ファイルに音楽ファイルの置かれたディレクトリを書き、サービスを再起動するとファイルのスキャンが行われる。
$ sudo vi /etc/forked-daapd.conf # Directories to index #directories = { "/srv/music" } directories = { "/mnt/usb1/music/mp3" } $ sudo /etc/init.d/forked-daapd restart $ tail -f /var/log/forked-daapd.log
Windows上のiTunesを起動し、Raspberry PiのDAAPサーバを参照できるようになっているか確認する。
また、必要に応じてMPDクライアントまたはDACPクライアントをインストールし、Raspberry Piに繋いだスピーカーから音楽を流せるか確認する。 Androidであれば、次のアプリケーションが使える。
最後に、起動時に自動実行されるようにしておく。
$ sudo systemctl enable forked-daapd.service
netdataのインストール
ブラウザからRaspberry PiのCPU利用率等を見れるように、モニタリングツールnetdataもインストールしてみる。
必要なパッケージをインストールした後、netdataをgitで取得しインストールする。
$ sudo apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make git autoconf autogen automake pkg-config $ git clone https://github.com/firehol/netdata.git --depth=1 $ cd netdata/ $ sudo ./netdata-installer.sh
インストールが終わったら、ブラウザからhttp://192.168.0.2:19999/
にアクセスする。
アクセスした際のスクリーンショットを次に示す。
最後に、起動時に自動実行されるようにしておく。
$ sudo cp system/netdata.service /etc/systemd/system/ $ sudo systemctl enable netdata.service