Raspberry Pi3にDLNAサーバをインストールして利用してみようと思いました。minidlnaというサーバが利用できるようです。しかし、実際にapt-getでインストールして利用してみると、日本語のファイル名が文字化けして、????みたいになっていました。今回はこれを解消してみようと思います。
OSはRaspbian jessieを利用しています。
■何が原因?
いろいろ文献を確認して見ると、コンパイル時のオプションが足らないみたいでした。そのため、文字化けが発生しているみたいです。–disable-nlsというオプションを指定してバイナリを作成すると、ロケールの依存がなくなるみたいです。
今回は、パッケージを再構築して文字化けの対応してみます。
■コンパイルからインストールまで
対象のオプションを有効にして、minidlnadをコンパイルして、debパッケージを作成します。
debパッケージを作成できるパッケージ類をインストール
以下のコマンドを実行して、debパッケージが生成できるようにします。
sudo apt-get install dpkg-dev devscripts
minidlnaのソースコードを取得
/etc/apt/sources.listを編集して、apt-getで対象パッケージのソースコードを取得できるようにします。以下の行を追加すると、ソースコードのパッケージが取得できるようになります。
deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
次に、コンパイル用のディレクトリを作成して、そこにminidlnaのソースコードを取得します。今回は/tmpの下に作りました。
mkdir /tmp/minidlna
cd /tmp//minidlna
sudo apt-get update
sudo apt-get source minidlna
コンパイルオプションの変更
ダウンロードしてきたソースコードの中から、対象のファイルを変更します。
minidlna-1.1.2+dfsg/debian/rulesファイルの以下の行を変更します。
./configure --prefix=$(PREFIX) --sbindir=$(PREFIX)/bin
↓↓↓↓以下のように修正↓↓↓↓
./configure --prefix=$(PREFIX) --sbindir=$(PREFIX)/bin --disable-nls
コンパイルに必要な依存パッケージをインストール
コンパイルに必要な依存パッケージをインストールしておきます。まず、必要なパッケージを確認する必要があります。
以下のコマンドで確認することができます。以下のコマンドはminidlna-1.1.2+dfsgディレクトリに移動してから実行してください。バージョンが違う場合は、適宜ディレクトリ名を変更してください。
sudo dpkg-checkbuilddeps
sudo aptitude install 【表示されたパッケージ名一覧】
コンパイルをして、パッケージを作成
minidlna-1.1.2+dfsgディレクトリで、以下のコマンドを実行します。すると、コンパイルが実行されてminidlnaのdebパッケージが作成されます。しばらく待ってください。
sudo debuild -us -uc -d
パッケージのインストール
正しくコンパイルが終わると、debファイルがひとつ上のディレクトリに出来上がっているはずなので、インストールします。
sudo dpkg -i minidlna_1.1.2+dfsg-1.1_armhf.deb
minidlnaのDBファイルを削除してminidlnaを再起動
以下のコマンドで、dlnaサーバを停止、DBファイルの削除、サーバの起動をします。
sudo /etc/init.d/minidlna stop
sudo rm /var/cache/minidlna/files.db
sudo /etc/init.d/minidlna start
これで、日本語のファイル名の動画もDLNA経由で見れるようになりました。参考にしてみてください。では。